From 506daaf7a4f8326a7356e31937e228169562dcd1 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Thu, 13 Apr 2023 11:29:45 +0530
Subject: [PATCH 001/187] Initial commit
---
.../src/main/resources/icons/yotpo.svg | 11 +++
.../src/main/resources/seed/oss_catalog.json | 37 +++++++
.../resources/seed/source_definitions.yaml | 8 ++
.../src/main/resources/seed/source_specs.yaml | 29 ++++++
.../connectors/source-yotpo/.dockerignore | 6 ++
.../connectors/source-yotpo/Dockerfile | 38 ++++++++
.../connectors/source-yotpo/README.md | 82 ++++++++++++++++
.../connectors/source-yotpo/__init__.py | 3 +
.../source-yotpo/acceptance-test-config.yml | 36 +++++++
.../source-yotpo/acceptance-test-docker.sh | 3 +
.../connectors/source-yotpo/build.gradle | 9 ++
.../integration_tests/__init__.py | 3 +
.../integration_tests/abnormal_state.json | 9 ++
.../integration_tests/acceptance.py | 16 +++
.../integration_tests/configured_catalog.json | 22 +++++
.../integration_tests/expected_records.jsonl | 1 +
.../integration_tests/invalid_config.json | 3 +
.../integration_tests/sample_config.json | 3 +
.../integration_tests/sample_state.json | 9 ++
.../connectors/source-yotpo/main.py | 13 +++
.../connectors/source-yotpo/requirements.txt | 2 +
.../connectors/source-yotpo/setup.py | 29 ++++++
.../source-yotpo/source_yotpo/__init__.py | 8 ++
.../source-yotpo/source_yotpo/manifest.yaml | 97 +++++++++++++++++++
.../source_yotpo/schemas/reviews.json | 60 ++++++++++++
.../source_yotpo/schemas/webhooks.json | 30 ++++++
.../source-yotpo/source_yotpo/source.py | 18 ++++
.../source-yotpo/source_yotpo/spec.yaml | 24 +++++
docs/integrations/sources/yotpo.md | 65 +++++++++++++
29 files changed, 674 insertions(+)
create mode 100644 airbyte-config-oss/init-oss/src/main/resources/icons/yotpo.svg
create mode 100644 airbyte-integrations/connectors/source-yotpo/.dockerignore
create mode 100644 airbyte-integrations/connectors/source-yotpo/Dockerfile
create mode 100644 airbyte-integrations/connectors/source-yotpo/README.md
create mode 100644 airbyte-integrations/connectors/source-yotpo/__init__.py
create mode 100644 airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
create mode 100755 airbyte-integrations/connectors/source-yotpo/acceptance-test-docker.sh
create mode 100644 airbyte-integrations/connectors/source-yotpo/build.gradle
create mode 100644 airbyte-integrations/connectors/source-yotpo/integration_tests/__init__.py
create mode 100644 airbyte-integrations/connectors/source-yotpo/integration_tests/abnormal_state.json
create mode 100644 airbyte-integrations/connectors/source-yotpo/integration_tests/acceptance.py
create mode 100644 airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
create mode 100644 airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl
create mode 100644 airbyte-integrations/connectors/source-yotpo/integration_tests/invalid_config.json
create mode 100644 airbyte-integrations/connectors/source-yotpo/integration_tests/sample_config.json
create mode 100644 airbyte-integrations/connectors/source-yotpo/integration_tests/sample_state.json
create mode 100644 airbyte-integrations/connectors/source-yotpo/main.py
create mode 100644 airbyte-integrations/connectors/source-yotpo/requirements.txt
create mode 100644 airbyte-integrations/connectors/source-yotpo/setup.py
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/__init__.py
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews.json
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/source.py
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
create mode 100644 docs/integrations/sources/yotpo.md
diff --git a/airbyte-config-oss/init-oss/src/main/resources/icons/yotpo.svg b/airbyte-config-oss/init-oss/src/main/resources/icons/yotpo.svg
new file mode 100644
index 000000000000..7c095613e535
--- /dev/null
+++ b/airbyte-config-oss/init-oss/src/main/resources/icons/yotpo.svg
@@ -0,0 +1,11 @@
+
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index 1f724199f054..c88672b1c49f 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -28402,6 +28402,43 @@
"allowedHosts": {
"hosts": [ "api-metrica.yandex.net" ]
}
+ }, {
+ "sourceDefinitionId": "",
+ "name": "Yotpo",
+ "dockerRepository": "airbyte/source-yotpo",
+ "dockerImageTag": "1.0.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/yotpo",
+ "icon": "yotpo.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/yotpo",
+ "connectionSpecification": {
+ "$schema": "https://json-schema.org/draft-07/schema#",
+ "title": "Yotpo Spec",
+ "type": "object",
+ "required": [ "auth_token", "counter_id", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "auth_token": {
+ "type": "string",
+ "title": "Authentication Token",
+ "description": "Your Yandex Metrica API access token",
+ "airbyte_secret": true,
+ "order": 0
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "api.yotpo.com" ]
+ }
}, {
"sourceDefinitionId": "9c74c2d7-531a-4ebf-b6d8-6181f805ecdc",
"name": "Younium",
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
index 9de994a9985a..bb0a0d63ee5e 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
@@ -2519,6 +2519,14 @@
allowedHosts:
hosts:
- api-metrica.yandex.net
+- name: Yotpo
+ sourceDefinitionId:
+ dockerRepository: airbyte/source-yotpo
+ dockerImageTag: 0.1.0
+ documentationUrl: https://docs.airbyte.com/integrations/sources/yotpo
+ icon: yotpo.svg
+ sourceType: api
+ releaseStage: alpha
- name: Younium
sourceDefinitionId: 9c74c2d7-531a-4ebf-b6d8-6181f805ecdc
dockerRepository: airbyte/source-younium
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
index 384263fd8c76..81893445a2bd 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
@@ -18339,6 +18339,35 @@
supportsNormalization: false
supportsDBT: false
supported_destination_sync_modes: []
+- dockerImage: "airbyte/source-yotpo:0.1.0"
+ spec:
+ documentationUrl: "https://docs.airbyte.com/integrations/sources/yotpo"
+ connectionSpecification:
+ $schema: "http://json-schema.org/draft-07/schema#"
+ title: Yotpo Spec
+ type: object
+ required:
+ - access_token
+ - app_key
+ - date_from
+ additionalProperties: true
+ properties:
+ access_token:
+ title: Access Token
+ type: string
+ description: Access token recieved as a result of API call to https://api.yotpo.com/oauth/token (Ref- https://apidocs.yotpo.com/reference/yotpo-authentication)
+ airbyte_secret: true
+ app_key:
+ title: App Key
+ type: string
+ description: App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)
+ date_from:
+ title: Date From Filter
+ type: string
+ description: Date time filter for incremental filter, Specify which date to extract from.
+ supportsNormalization: false
+ supportsDBT: false
+ supported_destination_sync_modes: []
- dockerImage: "airbyte/source-younium:0.1.0"
spec:
documentationUrl: "https://docs.airbyte.com/integrations/sources/younium"
diff --git a/airbyte-integrations/connectors/source-yotpo/.dockerignore b/airbyte-integrations/connectors/source-yotpo/.dockerignore
new file mode 100644
index 000000000000..7b7c00a7be1e
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/.dockerignore
@@ -0,0 +1,6 @@
+*
+!Dockerfile
+!main.py
+!source_yotpo
+!setup.py
+!secrets
diff --git a/airbyte-integrations/connectors/source-yotpo/Dockerfile b/airbyte-integrations/connectors/source-yotpo/Dockerfile
new file mode 100644
index 000000000000..2616324339ad
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/Dockerfile
@@ -0,0 +1,38 @@
+FROM python:3.9.11-alpine3.15 as base
+
+# build and load all requirements
+FROM base as builder
+WORKDIR /airbyte/integration_code
+
+# upgrade pip to the latest version
+RUN apk --no-cache upgrade \
+ && pip install --upgrade pip \
+ && apk --no-cache add tzdata build-base
+
+
+COPY setup.py ./
+# install necessary packages to a temporary folder
+RUN pip install --prefix=/install .
+
+# build a clean environment
+FROM base
+WORKDIR /airbyte/integration_code
+
+# copy all loaded and built libraries to a pure basic image
+COPY --from=builder /install /usr/local
+# add default timezone settings
+COPY --from=builder /usr/share/zoneinfo/Etc/UTC /etc/localtime
+RUN echo "Etc/UTC" > /etc/timezone
+
+# bash is installed for more convenient debugging.
+RUN apk --no-cache add bash
+
+# copy payload code only
+COPY main.py ./
+COPY source_yotpo ./source_yotpo
+
+ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
+ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
+
+LABEL io.airbyte.version=0.1.0
+LABEL io.airbyte.name=airbyte/source-yotpo
diff --git a/airbyte-integrations/connectors/source-yotpo/README.md b/airbyte-integrations/connectors/source-yotpo/README.md
new file mode 100644
index 000000000000..d0ba27b612ed
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/README.md
@@ -0,0 +1,82 @@
+# Yotpo Source
+
+This is the repository for the Yotpo configuration based source connector.
+For information about how to use this connector within Airbyte, see [the documentation](https://docs.airbyte.com/integrations/sources/yotpo).
+
+## Local development
+
+#### Building via Gradle
+You can also build the connector in Gradle. This is typically used in CI and not needed for your development workflow.
+
+To build using Gradle, from the Airbyte repository root, run:
+```
+./gradlew :airbyte-integrations:connectors:source-yotpo:build
+```
+
+#### Create credentials
+**If you are a community contributor**, follow the instructions in the [documentation](https://docs.airbyte.com/integrations/sources/yotpo)
+to generate the necessary credentials. Then create a file `secrets/config.json` conforming to the `source_yotpo/spec.yaml` file.
+Note that any directory named `secrets` is gitignored across the entire Airbyte repo, so there is no danger of accidentally checking in sensitive information.
+See `integration_tests/sample_config.json` for a sample config file.
+
+**If you are an Airbyte core member**, copy the credentials in Lastpass under the secret name `source yotpo test creds`
+and place them into `secrets/config.json`.
+
+### Locally running the connector docker image
+
+#### Build
+First, make sure you build the latest Docker image:
+```
+docker build . -t airbyte/source-yotpo:dev
+```
+
+You can also build the connector image via Gradle:
+```
+./gradlew :airbyte-integrations:connectors:source-yotpo:airbyteDocker
+```
+When building via Gradle, the docker image name and tag, respectively, are the values of the `io.airbyte.name` and `io.airbyte.version` `LABEL`s in
+the Dockerfile.
+
+#### Run
+Then run any of the connector commands as follows:
+```
+docker run --rm airbyte/source-yotpo:dev spec
+docker run --rm -v $(pwd)/secrets:/secrets airbyte/source-yotpo:dev check --config /secrets/config.json
+docker run --rm -v $(pwd)/secrets:/secrets airbyte/source-yotpo:dev discover --config /secrets/config.json
+docker run --rm -v $(pwd)/secrets:/secrets -v $(pwd)/integration_tests:/integration_tests airbyte/source-yotpo:dev read --config /secrets/config.json --catalog /integration_tests/configured_catalog.json
+```
+## Testing
+
+#### Acceptance Tests
+Customize `acceptance-test-config.yml` file to configure tests. See [Connector Acceptance Tests](https://docs.airbyte.com/connector-development/testing-connectors/connector-acceptance-tests-reference) for more information.
+If your connector requires to create or destroy resources for use during acceptance tests create fixtures for it and place them inside integration_tests/acceptance.py.
+
+To run your integration tests with Docker, run:
+```
+./acceptance-test-docker.sh
+```
+
+### Using gradle to run tests
+All commands should be run from airbyte project root.
+To run unit tests:
+```
+./gradlew :airbyte-integrations:connectors:source-yotpo:unitTest
+```
+To run acceptance and custom integration tests:
+```
+./gradlew :airbyte-integrations:connectors:source-yotpo:integrationTest
+```
+
+## Dependency Management
+All of your dependencies should go in `setup.py`, NOT `requirements.txt`. The requirements file is only used to connect internal Airbyte dependencies in the monorepo for local development.
+We split dependencies between two groups, dependencies that are:
+* required for your connector to work need to go to `MAIN_REQUIREMENTS` list.
+* required for the testing need to go to `TEST_REQUIREMENTS` list
+
+### Publishing a new version of the connector
+You've checked out the repo, implemented a million dollar feature, and you're ready to share your changes with the world. Now what?
+1. Make sure your changes are passing unit and integration tests.
+1. Bump the connector version in `Dockerfile` -- just increment the value of the `LABEL io.airbyte.version` appropriately (we use [SemVer](https://semver.org/)).
+1. Create a Pull Request.
+1. Pat yourself on the back for being an awesome contributor.
+1. Someone from Airbyte will take a look at your PR and iterate with you to merge it into master.
diff --git a/airbyte-integrations/connectors/source-yotpo/__init__.py b/airbyte-integrations/connectors/source-yotpo/__init__.py
new file mode 100644
index 000000000000..c941b3045795
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/__init__.py
@@ -0,0 +1,3 @@
+#
+# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
+#
diff --git a/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml b/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
new file mode 100644
index 000000000000..ecfcc4f72b63
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
@@ -0,0 +1,36 @@
+# See [Connector Acceptance Tests](https://docs.airbyte.com/connector-development/testing-connectors/connector-acceptance-tests-reference)
+# for more information about how to configure these tests
+connector_image: airbyte/source-yotpo:dev
+acceptance_tests:
+ spec:
+ tests:
+ - spec_path: "source_yotpo/spec.yaml"
+ connection:
+ tests:
+ - config_path: "secrets/config.json"
+ status: "succeed"
+ - config_path: "integration_tests/invalid_config.json"
+ status: "failed"
+ discovery:
+ tests:
+ - config_path: "secrets/config.json"
+ basic_read:
+ tests:
+ - config_path: "secrets/config.json"
+ configured_catalog_path: "integration_tests/configured_catalog.json"
+ empty_streams: []
+ expect_records:
+ path: "integration_tests/expected_records.jsonl"
+ extra_fields: no
+ exact_order: no
+ extra_records: yes
+ incremental:
+ tests:
+ - config_path: "secrets/config.json"
+ configured_catalog_path: "integration_tests/configured_catalog.json"
+ future_state:
+ future_state_path: "integration_tests/abnormal_state.json"
+ full_refresh:
+ tests:
+ - config_path: "secrets/config.json"
+ configured_catalog_path: "integration_tests/configured_catalog.json"
diff --git a/airbyte-integrations/connectors/source-yotpo/acceptance-test-docker.sh b/airbyte-integrations/connectors/source-yotpo/acceptance-test-docker.sh
new file mode 100755
index 000000000000..b6d65deeccb4
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/acceptance-test-docker.sh
@@ -0,0 +1,3 @@
+#!/usr/bin/env sh
+
+source "$(git rev-parse --show-toplevel)/airbyte-integrations/bases/connector-acceptance-test/acceptance-test-docker.sh"
diff --git a/airbyte-integrations/connectors/source-yotpo/build.gradle b/airbyte-integrations/connectors/source-yotpo/build.gradle
new file mode 100644
index 000000000000..83058c6777f4
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/build.gradle
@@ -0,0 +1,9 @@
+plugins {
+ id 'airbyte-python'
+ id 'airbyte-docker'
+ id 'airbyte-connector-acceptance-test'
+}
+
+airbytePython {
+ moduleDirectory 'source_yotpo'
+}
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/__init__.py b/airbyte-integrations/connectors/source-yotpo/integration_tests/__init__.py
new file mode 100644
index 000000000000..c941b3045795
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/__init__.py
@@ -0,0 +1,3 @@
+#
+# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
+#
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/abnormal_state.json
new file mode 100644
index 000000000000..d79c484ff6b4
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/abnormal_state.json
@@ -0,0 +1,9 @@
+[
+ {
+ "type": "STREAM",
+ "stream": {
+ "stream_state": { "updated_at": "2099-04-12T18:13:36.000Z" },
+ "stream_descriptor": { "name": "reviews" }
+ }
+ }
+]
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/acceptance.py b/airbyte-integrations/connectors/source-yotpo/integration_tests/acceptance.py
new file mode 100644
index 000000000000..9e6409236281
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/acceptance.py
@@ -0,0 +1,16 @@
+#
+# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
+#
+
+
+import pytest
+
+pytest_plugins = ("connector_acceptance_test.plugin",)
+
+
+@pytest.fixture(scope="session", autouse=True)
+def connector_setup():
+ """This fixture is a placeholder for external resources that acceptance test might require."""
+ # TODO: setup test dependencies if needed. otherwise remove the TODO comments
+ yield
+ # TODO: clean up test dependencies
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
new file mode 100644
index 000000000000..ec576442f20d
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -0,0 +1,22 @@
+{
+ "streams": [
+ {
+ "stream": {
+ "name": "reviews",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh", "incremental"]
+ },
+ "sync_mode": "incremental",
+ "destination_sync_mode": "append"
+ },
+ {
+ "stream": {
+ "name": "webhooks",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ }
+ ]
+}
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl
new file mode 100644
index 000000000000..f11f7ca46cb6
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl
@@ -0,0 +1 @@
+{"stream": "reviews", "data": {"id":460530094,"title":"Great Phone","content":"It’s really good","score":5,"votes_up":0,"votes_down":0,"created_at":"2023-04-13T05:06:00.000Z","updated_at":"2023-04-13T05:08:41.000Z","sentiment":0.960069,"sku":"19","name":"John S.","email":"moles57397@snowlash.com","reviewer_type":"verified_reviewer","deleted":false,"archived":false,"escalated":false,"is_incentivized":false}, "emitted_at": 1679051186833}
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/invalid_config.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/invalid_config.json
new file mode 100644
index 000000000000..34470dc18f00
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/invalid_config.json
@@ -0,0 +1,3 @@
+{
+ "access_token": ""
+}
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_config.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_config.json
new file mode 100644
index 000000000000..ccc9b992b901
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_config.json
@@ -0,0 +1,3 @@
+{
+ "access_token": "XXXXXXXXXXXXXXXXXXXXXXXXXX"
+}
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_state.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_state.json
new file mode 100644
index 000000000000..e572e343696f
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_state.json
@@ -0,0 +1,9 @@
+[
+ {
+ "type": "STREAM",
+ "stream": {
+ "stream_state": { "updated_at": "2023-04-12T18:13:36.000Z" },
+ "stream_descriptor": { "name": "reviews" }
+ }
+ }
+]
diff --git a/airbyte-integrations/connectors/source-yotpo/main.py b/airbyte-integrations/connectors/source-yotpo/main.py
new file mode 100644
index 000000000000..d456ca2abab3
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/main.py
@@ -0,0 +1,13 @@
+#
+# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
+#
+
+
+import sys
+
+from airbyte_cdk.entrypoint import launch
+from source_yotpo import SourceYotpo
+
+if __name__ == "__main__":
+ source = SourceYotpo()
+ launch(source, sys.argv[1:])
diff --git a/airbyte-integrations/connectors/source-yotpo/requirements.txt b/airbyte-integrations/connectors/source-yotpo/requirements.txt
new file mode 100644
index 000000000000..cc57334ef619
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/requirements.txt
@@ -0,0 +1,2 @@
+-e ../../bases/connector-acceptance-test
+-e .
diff --git a/airbyte-integrations/connectors/source-yotpo/setup.py b/airbyte-integrations/connectors/source-yotpo/setup.py
new file mode 100644
index 000000000000..4714ade53c35
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/setup.py
@@ -0,0 +1,29 @@
+#
+# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
+#
+
+
+from setuptools import find_packages, setup
+
+MAIN_REQUIREMENTS = [
+ "airbyte-cdk~=0.1",
+]
+
+TEST_REQUIREMENTS = [
+ "pytest~=6.2",
+ "pytest-mock~=3.6.1",
+ "connector-acceptance-test",
+]
+
+setup(
+ name="source_yotpo",
+ description="Source implementation for Yotpo.",
+ author="Airbyte",
+ author_email="contact@airbyte.io",
+ packages=find_packages(),
+ install_requires=MAIN_REQUIREMENTS,
+ package_data={"": ["*.json", "*.yaml", "schemas/*.json", "schemas/shared/*.json"]},
+ extras_require={
+ "tests": TEST_REQUIREMENTS,
+ },
+)
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/__init__.py b/airbyte-integrations/connectors/source-yotpo/source_yotpo/__init__.py
new file mode 100644
index 000000000000..ccbbe46ad976
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/__init__.py
@@ -0,0 +1,8 @@
+#
+# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
+#
+
+
+from .source import SourceYotpo
+
+__all__ = ["SourceYotpo"]
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
new file mode 100644
index 000000000000..d7cac7413daa
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -0,0 +1,97 @@
+version: "0.29.0"
+
+definitions:
+ requester:
+ type: HttpRequester
+ url_base: "https://api.yotpo.com/v1"
+ http_method: "GET"
+ authenticator:
+ type: BearerAuthenticator
+ api_token: "{{ config['access_token'] }}"
+
+ base_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: []
+ paginator:
+ type: NoPagination
+ requester:
+ $ref: "#/definitions/requester"
+
+ reviews_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["reviews"]
+ paginator:
+ type: NoPagination
+ requester:
+ type: HttpRequester
+ url_base: "https://api.yotpo.com/v1"
+ http_method: "GET"
+ request_parameters:
+ utoken: "{{ config['access_token'] }}"
+ authenticator:
+ type: BearerAuthenticator
+ api_token: "{{ config['access_token'] }}"
+ incremental_sync:
+ type: DatetimeBasedCursor
+ cursor_field: "updated_at"
+ datetime_format: "%Y-%m-%dT%H:%M:%S.%f%z"
+ cursor_granularity: "PT0.000001S"
+ lookback_window: "P31D"
+ start_datetime:
+ datetime: "{{ config['date_from'] }}"
+ datetime_format: "%Y-%m-%dT%H:%M:%S.%f%z"
+ end_datetime:
+ datetime: "{{ today_utc() }}"
+ datetime_format: "%Y-%m-%d"
+ step: "P1M"
+ name: "reviews"
+ primary_key: "id"
+ $parameters:
+ path: "/apps/{{ config['app_key'] }}/reviews"
+
+ webhooks_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["response"]
+ paginator:
+ type: NoPagination
+ requester:
+ type: HttpRequester
+ url_base: "https://api.yotpo.com/"
+ http_method: "GET"
+ request_parameters:
+ utoken: "{{ config['access_token'] }}"
+ authenticator:
+ type: BearerAuthenticator
+ api_token: "{{ config['access_token'] }}"
+ name: "webhooks"
+ $parameters:
+ path: "/apps/{{ config['app_key'] }}/webhooks"
+
+streams:
+ - "#/definitions/reviews_stream"
+ - "#/definitions/webhooks_stream"
+
+check:
+ type: CheckStream
+ stream_names:
+ - "reviews"
+ - "webhooks"
+
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews.json
new file mode 100644
index 000000000000..6d4eac1f090f
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews.json
@@ -0,0 +1,60 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Reviews Schema",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": ["null", "number"]
+ },
+ "title": {
+ "type": ["null", "string"]
+ },
+ "content": {
+ "type": ["null", "string"]
+ },
+ "score": {
+ "type": ["null", "number"]
+ },
+ "votes_up": {
+ "type": ["null", "number"]
+ },
+ "votes_down": {
+ "type": ["null", "number"]
+ },
+ "created_at": {
+ "type": ["null", "string"],
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": ["null", "string"],
+ "format": "date-time"
+ },
+ "sentiment": {
+ "type": ["null", "number"]
+ },
+ "sku": {
+ "type": ["null", "string"]
+ },
+ "name": {
+ "type": ["null", "string"]
+ },
+ "email": {
+ "type": ["null", "string"]
+ },
+ "reviewer_type": {
+ "type": ["null", "string"]
+ },
+ "deleted": {
+ "type": ["null", "boolean"]
+ },
+ "archived": {
+ "type": ["null", "boolean"]
+ },
+ "escalated": {
+ "type": ["null", "boolean"]
+ },
+ "is_incentivized": {
+ "type": ["null", "boolean"]
+ }
+ }
+}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json
new file mode 100644
index 000000000000..6d7e0f0e0af9
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json
@@ -0,0 +1,30 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Webhooks Schema",
+ "type": "object",
+ "properties": {
+ "webhooks": {
+ "type": ["null", "array"],
+ "items": {
+ "type": ["null", "object"],
+ "properties": {
+ "id": {
+ "type": ["null", "number"]
+ },
+ "webhook_event_id": {
+ "type": ["null", "number"]
+ },
+ "webhook_event_name": {
+ "type": ["null", "string"]
+ },
+ "url": {
+ "type": ["null", "string"]
+ },
+ "version": {
+ "type": ["null", "number"]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/source.py b/airbyte-integrations/connectors/source-yotpo/source_yotpo/source.py
new file mode 100644
index 000000000000..dc275c06fdcd
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/source.py
@@ -0,0 +1,18 @@
+#
+# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
+#
+
+from airbyte_cdk.sources.declarative.yaml_declarative_source import YamlDeclarativeSource
+
+"""
+This file provides the necessary constructs to interpret a provided declarative YAML configuration file into
+source connector.
+
+WARNING: Do not modify this file.
+"""
+
+
+# Declarative Source
+class SourceYotpo(YamlDeclarativeSource):
+ def __init__(self):
+ super().__init__(**{"path_to_yaml": "manifest.yaml"})
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
new file mode 100644
index 000000000000..1d31374cde73
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
@@ -0,0 +1,24 @@
+documentationUrl: https://docs.airbyte.com/integrations/sources/pingdom
+connectionSpecification:
+ $schema: http://json-schema.org/draft-07/schema#
+ title: Yotpo Spec
+ type: object
+ required:
+ - access_token
+ - app_key
+ - date_from
+ additionalProperties: true
+ properties:
+ access_token:
+ title: Access Token
+ type: string
+ description: Access token recieved as a result of API call to https://api.yotpo.com/oauth/token (Ref- https://apidocs.yotpo.com/reference/yotpo-authentication)
+ airbyte_secret: true
+ app_key:
+ title: App Key
+ type: string
+ description: App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)
+ date_from:
+ title: Date From Filter
+ type: string
+ description: Date time filter for incremental filter, Specify which date to extract from.
\ No newline at end of file
diff --git a/docs/integrations/sources/yotpo.md b/docs/integrations/sources/yotpo.md
new file mode 100644
index 000000000000..fe305d6b75a9
--- /dev/null
+++ b/docs/integrations/sources/yotpo.md
@@ -0,0 +1,65 @@
+# Yotpo
+
+This page contains the setup guide and reference information for the [Yotpo](https://apidocs.yotpo.com/reference/welcome) source
+
+## Prerequisites
+
+Access Token (which acts as bearer token) is mandate for this connector to work, It could be generated from the auth token call (ref - https://apidocs.yotpo.com/reference/yotpo-authentication).
+
+## Setup guide
+
+### Step 1: Set up Yotpo connection
+
+- Generate an Yotpo access token via auth endpoint (ref - https://apidocs.yotpo.com/reference/yotpo-authentication)
+- Setup params (All params are required)
+- Available params
+ - access_token: The generated access token
+ - app_key: Seen at the yotpo settings (ref - https://settings.yotpo.com/#/general_settings)
+
+## Step 2: Set up the Yotpo connector in Airbyte
+
+### For Airbyte Cloud:
+
+1. [Log into your Airbyte Cloud](https://cloud.airbyte.io/workspaces) account.
+2. In the left navigation bar, click **Sources**. In the top-right corner, click **+new source**.
+3. On the Set up the source page, enter the name for the Yotpo connector and select **Yotpo** from the Source type dropdown.
+4. Enter your `api_key`.
+5. Click **Set up source**.
+
+### For Airbyte OSS:
+
+1. Navigate to the Airbyte Open Source dashboard.
+2. Set the name for your source.
+3. Enter your `api_key`.
+5. Click **Set up source**.
+
+## Supported sync modes
+
+The Yotpo source connector supports the following [sync modes](https://docs.airbyte.com/cloud/core-concepts#connection-sync-modes):
+
+| Feature | Supported? |
+| :---------------------------- | :--------- |
+| Full Refresh Sync | Yes |
+| Incremental Sync | Yes |
+| Replicate Incremental Deletes | No |
+| SSL connection | Yes |
+| Namespaces | No |
+
+## Supported Streams
+
+- reviews
+- webhooks
+
+## API method example
+
+GET https://api.yotpo.com/v1/apps/APPAAAAAATTTTTTDDDDDD/reviews?utoken=abcdefghikjlimls
+
+## Performance considerations
+
+Yotpo [API reference](https://api.yotpo.com/v1/) has v1 at present. The connector as default uses v1 and changed according to different endpoints.
+
+## Changelog
+
+| Version | Date | Pull Request | Subject |
+| :------ | :--------- | :----------------------------------------------------- | :------------- |
+| 0.1.0 | 2023-04-14 | [Init](https://github.com/airbytehq/airbyte/pull/)| Initial commit |
\ No newline at end of file
From a4aa2512b97f69d4f0e60a8af89c6f37947eb208 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Thu, 13 Apr 2023 11:40:57 +0530
Subject: [PATCH 002/187] Add stream top_reviews
---
.../integration_tests/configured_catalog.json | 9 +++++++
.../source-yotpo/source_yotpo/manifest.yaml | 27 ++++++++++++++++++-
.../source_yotpo/schemas/top_reviews.json | 26 ++++++++++++++++++
docs/integrations/sources/yotpo.md | 1 +
4 files changed, 62 insertions(+), 1 deletion(-)
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index ec576442f20d..423461ec8b2a 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -9,6 +9,15 @@
"sync_mode": "incremental",
"destination_sync_mode": "append"
},
+ {
+ "stream": {
+ "name": "top_reviews",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
{
"stream": {
"name": "webhooks",
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index d7cac7413daa..85845d0848d0 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -61,6 +61,30 @@ definitions:
$parameters:
path: "/apps/{{ config['app_key'] }}/reviews"
+ top_reviews_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["reviews"]
+ paginator:
+ type: NoPagination
+ requester:
+ type: HttpRequester
+ url_base: "https://api.yotpo.com/"
+ http_method: "GET"
+ request_parameters:
+ utoken: "{{ config['access_token'] }}"
+ authenticator:
+ type: BearerAuthenticator
+ api_token: "{{ config['access_token'] }}"
+ name: "top_reviews"
+ $parameters:
+ path: "/apps/{{ config['app_key'] }}/top_reviews"
+
webhooks_stream:
type: DeclarativeStream
retriever:
@@ -87,11 +111,12 @@ definitions:
streams:
- "#/definitions/reviews_stream"
+ - "#/definitions/top_reviews_stream"
- "#/definitions/webhooks_stream"
check:
type: CheckStream
stream_names:
- "reviews"
+ - "top_reviews"
- "webhooks"
-
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
new file mode 100644
index 000000000000..a5021d309b7a
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
@@ -0,0 +1,26 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Top Reviews Schema",
+ "type": "object",
+ "properties": {
+ "image_url": {
+ "type": ["null", "string"]
+ },
+ "score": {
+ "type": ["null", "number"]
+ },
+ "title": {
+ "type": ["null", "string"]
+ },
+ "content": {
+ "type": ["null", "string"]
+ },
+ "product_url": {
+ "type": ["null", "string"]
+ },
+ "created_at": {
+ "type": ["null", "string"],
+ "format": "date-time"
+ }
+ }
+}
diff --git a/docs/integrations/sources/yotpo.md b/docs/integrations/sources/yotpo.md
index fe305d6b75a9..9aadc32279f8 100644
--- a/docs/integrations/sources/yotpo.md
+++ b/docs/integrations/sources/yotpo.md
@@ -48,6 +48,7 @@ The Yotpo source connector supports the following [sync modes](https://docs.airb
## Supported Streams
- reviews
+- top_reviews
- webhooks
## API method example
From b6f0a3d70c0b4e3d5cd0b7efff2974cfe5a845b0 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Thu, 13 Apr 2023 13:28:36 +0530
Subject: [PATCH 003/187] Add new stream: privacy_data
---
.../integration_tests/configured_catalog.json | 9 +++++++
.../source-yotpo/source_yotpo/manifest.yaml | 27 +++++++++++++++++++
.../source_yotpo/schemas/privacy_data.json | 10 +++++++
.../source-yotpo/source_yotpo/spec.yaml | 8 +++++-
docs/integrations/sources/yotpo.md | 1 +
5 files changed, 54 insertions(+), 1 deletion(-)
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index 423461ec8b2a..72b72de37f63 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -1,5 +1,14 @@
{
"streams": [
+ {
+ "stream": {
+ "name": "privacy_data",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
{
"stream": {
"name": "reviews",
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index 85845d0848d0..ef21492e6054 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -23,6 +23,31 @@ definitions:
requester:
$ref: "#/definitions/requester"
+ privacy_data_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["response"]
+ paginator:
+ type: NoPagination
+ requester:
+ type: HttpRequester
+ url_base: "https://api.yotpo.com/privacy"
+ http_method: "GET"
+ request_parameters:
+ utoken: "{{ config['access_token'] }}"
+ email: "{{ config['email'] }}"
+ authenticator:
+ type: BearerAuthenticator
+ api_token: "{{ config['access_token'] }}"
+ name: "privacy_data"
+ $parameters:
+ path: "/data/exists"
+
reviews_stream:
type: DeclarativeStream
retriever:
@@ -110,6 +135,7 @@ definitions:
path: "/apps/{{ config['app_key'] }}/webhooks"
streams:
+ - "#/definitions/privacy_data_stream"
- "#/definitions/reviews_stream"
- "#/definitions/top_reviews_stream"
- "#/definitions/webhooks_stream"
@@ -117,6 +143,7 @@ streams:
check:
type: CheckStream
stream_names:
+ - "privacy_data"
- "reviews"
- "top_reviews"
- "webhooks"
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json
new file mode 100644
index 000000000000..552feb4e7ef6
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json
@@ -0,0 +1,10 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Privacy Data",
+ "type": "object",
+ "properties": {
+ "has_data": {
+ "type": ["null", "boolean"]
+ }
+ }
+}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
index 1d31374cde73..046e27710579 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
@@ -7,6 +7,7 @@ connectionSpecification:
- access_token
- app_key
- date_from
+ - email
additionalProperties: true
properties:
access_token:
@@ -21,4 +22,9 @@ connectionSpecification:
date_from:
title: Date From Filter
type: string
- description: Date time filter for incremental filter, Specify which date to extract from.
\ No newline at end of file
+ description: Date time filter for incremental filter, Specify which date to extract from.
+ email:
+ title: Registered email address
+ type: string
+ description: Email address registered with yotpo.
+ default: example@gmail.com
\ No newline at end of file
diff --git a/docs/integrations/sources/yotpo.md b/docs/integrations/sources/yotpo.md
index 9aadc32279f8..73fe4aa5f641 100644
--- a/docs/integrations/sources/yotpo.md
+++ b/docs/integrations/sources/yotpo.md
@@ -47,6 +47,7 @@ The Yotpo source connector supports the following [sync modes](https://docs.airb
## Supported Streams
+- privacy_data
- reviews
- top_reviews
- webhooks
From 0ca3b33c45998aa36226d47fcad76e27bcc761c5 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Thu, 13 Apr 2023 14:00:51 +0530
Subject: [PATCH 004/187] add new stream: privacy user, refactor
---
.../integration_tests/configured_catalog.json | 9 ++++
.../source-yotpo/source_yotpo/manifest.yaml | 44 ++++++++-----------
.../source_yotpo/schemas/privacy_user.json | 13 ++++++
3 files changed, 41 insertions(+), 25 deletions(-)
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index 72b72de37f63..a52846939dd6 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -9,6 +9,15 @@
"sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
},
+ {
+ "stream": {
+ "name": "privacy_user",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
{
"stream": {
"name": "reviews",
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index ef21492e6054..cbd11470f2b3 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -1,15 +1,15 @@
version: "0.29.0"
definitions:
- requester:
+ privacy_stream_requester:
type: HttpRequester
- url_base: "https://api.yotpo.com/v1"
+ url_base: "https://api.yotpo.com/privacy"
http_method: "GET"
- authenticator:
- type: BearerAuthenticator
- api_token: "{{ config['access_token'] }}"
+ request_parameters:
+ utoken: "{{ config['access_token'] }}"
+ email: "{{ config['email'] }}"
- base_stream:
+ privacy_data_stream:
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -17,13 +17,16 @@ definitions:
type: RecordSelector
extractor:
type: DpathExtractor
- field_path: []
+ field_path: ["response"]
paginator:
type: NoPagination
requester:
- $ref: "#/definitions/requester"
-
- privacy_data_stream:
+ $ref: "#/definitions/privacy_stream_requester"
+ name: "privacy_data"
+ $parameters:
+ path: "/data/exists"
+
+ privacy_user_stream:
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -31,22 +34,14 @@ definitions:
type: RecordSelector
extractor:
type: DpathExtractor
- field_path: ["response"]
+ field_path: ["status"]
paginator:
type: NoPagination
requester:
- type: HttpRequester
- url_base: "https://api.yotpo.com/privacy"
- http_method: "GET"
- request_parameters:
- utoken: "{{ config['access_token'] }}"
- email: "{{ config['email'] }}"
- authenticator:
- type: BearerAuthenticator
- api_token: "{{ config['access_token'] }}"
- name: "privacy_data"
+ $ref: "#/definitions/privacy_stream_requester"
+ name: "privacy_user"
$parameters:
- path: "/data/exists"
+ path: "/data"
reviews_stream:
type: DeclarativeStream
@@ -127,15 +122,13 @@ definitions:
http_method: "GET"
request_parameters:
utoken: "{{ config['access_token'] }}"
- authenticator:
- type: BearerAuthenticator
- api_token: "{{ config['access_token'] }}"
name: "webhooks"
$parameters:
path: "/apps/{{ config['app_key'] }}/webhooks"
streams:
- "#/definitions/privacy_data_stream"
+ - "#/definitions/privacy_user_stream"
- "#/definitions/reviews_stream"
- "#/definitions/top_reviews_stream"
- "#/definitions/webhooks_stream"
@@ -144,6 +137,7 @@ check:
type: CheckStream
stream_names:
- "privacy_data"
+ - "privacy_user"
- "reviews"
- "top_reviews"
- "webhooks"
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json
new file mode 100644
index 000000000000..7e2817c09be2
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json
@@ -0,0 +1,13 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Privacy User",
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": ["null", "number"]
+ },
+ "message": {
+ "type": ["null", "string"]
+ }
+ }
+}
From cb6a1ef6205f8976e98c04a7fc7a4d62091ab9b9 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Thu, 13 Apr 2023 14:30:03 +0530
Subject: [PATCH 005/187] Add new streams, update docs, update definitions
---
.../src/main/resources/seed/oss_catalog.json | 32 +++++++++++++++----
.../src/main/resources/seed/source_specs.yaml | 12 ++++++-
.../integration_tests/configured_catalog.json | 9 ++++++
.../source-yotpo/source_yotpo/manifest.yaml | 27 ++++++++++++++++
.../schemas/reviews_bottomline.json | 18 +++++++++++
.../source-yotpo/source_yotpo/spec.yaml | 6 +++-
docs/integrations/sources/yotpo.md | 8 +++--
7 files changed, 102 insertions(+), 10 deletions(-)
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index c88672b1c49f..ff8a38a89362 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -28416,15 +28416,35 @@
"$schema": "https://json-schema.org/draft-07/schema#",
"title": "Yotpo Spec",
"type": "object",
- "required": [ "auth_token", "counter_id", "start_date" ],
+ "required": [ "access_token", "app_key", "date_from", "email" ],
"additionalProperties": true,
"properties": {
- "auth_token": {
+ "access_token": {
+ "title": "Access Token",
"type": "string",
- "title": "Authentication Token",
- "description": "Your Yandex Metrica API access token",
- "airbyte_secret": true,
- "order": 0
+ "description": "Access token recieved as a result of API call to https://api.yotpo.com/oauth/token (Ref- https://apidocs.yotpo.com/reference/yotpo-authentication)",
+ "airbyte_secret": true
+ },
+ "app_key": {
+ "title": "App Key",
+ "type": "string",
+ "description": "App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)"
+ },
+ "date_from": {
+ "title": "Date-From Filter",
+ "type": "string",
+ "description": "Date time filter for incremental filter, Specify which date to extract from.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
+ "examples": [
+ "2022-03-01T00:00:00.000Z"
+ ],
+ "format": "date-time"
+ },
+ "email": {
+ "title": "Registered email address",
+ "type": "string",
+ "description": "Email address registered with yotpo.",
+ "default": "example@gmail.com"
}
}
},
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
index 81893445a2bd..6ad04de392d8 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
@@ -18350,6 +18350,7 @@
- access_token
- app_key
- date_from
+ - email
additionalProperties: true
properties:
access_token:
@@ -18362,9 +18363,18 @@
type: string
description: App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)
date_from:
- title: Date From Filter
+ title: Date-From Filter
type: string
description: Date time filter for incremental filter, Specify which date to extract from.
+ pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$"
+ examples:
+ - "2022-03-01T00:00:00.000Z"
+ format: "date-time"
+ email:
+ title: Registered email address
+ type: string
+ description: Email address registered with yotpo.
+ default: example@gmail.com
supportsNormalization: false
supportsDBT: false
supported_destination_sync_modes: []
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index a52846939dd6..2d7be78bcee3 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -27,6 +27,15 @@
"sync_mode": "incremental",
"destination_sync_mode": "append"
},
+ {
+ "stream": {
+ "name": "reviews_bottomline",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
{
"stream": {
"name": "top_reviews",
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index cbd11470f2b3..251fef833a58 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -81,6 +81,31 @@ definitions:
$parameters:
path: "/apps/{{ config['app_key'] }}/reviews"
+ reviews_bottomline_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["response"]
+ paginator:
+ type: NoPagination
+ requester:
+ type: HttpRequester
+ url_base: "https://api.yotpo.com"
+ http_method: "GET"
+ request_parameters:
+ utoken: "{{ config['access_token'] }}"
+ authenticator:
+ type: BearerAuthenticator
+ api_token: "{{ config['access_token'] }}"
+ name: "reviews_bottomline"
+ $parameters:
+ path: "/products/{{ config['app_key'] }}/yotpo_site_reviews/bottomline"
+
+
top_reviews_stream:
type: DeclarativeStream
retriever:
@@ -130,6 +155,7 @@ streams:
- "#/definitions/privacy_data_stream"
- "#/definitions/privacy_user_stream"
- "#/definitions/reviews_stream"
+ - "#/definitions/reviews_bottomline_stream"
- "#/definitions/top_reviews_stream"
- "#/definitions/webhooks_stream"
@@ -139,5 +165,6 @@ check:
- "privacy_data"
- "privacy_user"
- "reviews"
+ - "reviews_bottomline"
- "top_reviews"
- "webhooks"
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
new file mode 100644
index 000000000000..8188f59bb5ae
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
@@ -0,0 +1,18 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Reviews Bottomline",
+ "type": "object",
+ "properties": {
+ "bottomline": {
+ "type": "object",
+ "properties": {
+ "average_score": {
+ "type": ["null", "number"]
+ },
+ "total_reviews": {
+ "type": ["null", "number"]
+ }
+ }
+ }
+ }
+}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
index 046e27710579..c17a1ef8afc2 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
@@ -20,9 +20,13 @@ connectionSpecification:
type: string
description: App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)
date_from:
- title: Date From Filter
+ title: Date-From Filter
type: string
description: Date time filter for incremental filter, Specify which date to extract from.
+ pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$"
+ examples:
+ - "2022-03-01T00:00:00.000Z"
+ format: "date-time"
email:
title: Registered email address
type: string
diff --git a/docs/integrations/sources/yotpo.md b/docs/integrations/sources/yotpo.md
index 73fe4aa5f641..63e6448c2f14 100644
--- a/docs/integrations/sources/yotpo.md
+++ b/docs/integrations/sources/yotpo.md
@@ -15,6 +15,8 @@ Access Token (which acts as bearer token) is mandate for this connector to work,
- Available params
- access_token: The generated access token
- app_key: Seen at the yotpo settings (ref - https://settings.yotpo.com/#/general_settings)
+ - date_from: Date filter for eligible streams, enter
+ - email
## Step 2: Set up the Yotpo connector in Airbyte
@@ -23,14 +25,14 @@ Access Token (which acts as bearer token) is mandate for this connector to work,
1. [Log into your Airbyte Cloud](https://cloud.airbyte.io/workspaces) account.
2. In the left navigation bar, click **Sources**. In the top-right corner, click **+new source**.
3. On the Set up the source page, enter the name for the Yotpo connector and select **Yotpo** from the Source type dropdown.
-4. Enter your `api_key`.
+4. Enter your `access_token`.
5. Click **Set up source**.
### For Airbyte OSS:
1. Navigate to the Airbyte Open Source dashboard.
2. Set the name for your source.
-3. Enter your `api_key`.
+3. Enter your `access_token`.
5. Click **Set up source**.
## Supported sync modes
@@ -48,7 +50,9 @@ The Yotpo source connector supports the following [sync modes](https://docs.airb
## Supported Streams
- privacy_data
+- privacy_user
- reviews
+- reviews_bottomline
- top_reviews
- webhooks
From a1c5cd0d1d50c5ff02ef576a00d0f4271276dd07 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Thu, 13 Apr 2023 14:42:31 +0530
Subject: [PATCH 006/187] EOF
---
.../connectors/source-yotpo/source_yotpo/spec.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
index c17a1ef8afc2..8408215c011d 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
@@ -31,4 +31,4 @@ connectionSpecification:
title: Registered email address
type: string
description: Email address registered with yotpo.
- default: example@gmail.com
\ No newline at end of file
+ default: example@gmail.com
From db5c9476ef07c319c7e1c364b57b716dad1fa92a Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Sat, 15 Apr 2023 16:49:24 +0530
Subject: [PATCH 007/187] Update spec.yaml
---
.../connectors/source-yotpo/source_yotpo/spec.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
index 8408215c011d..b639af52aba4 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
@@ -1,4 +1,4 @@
-documentationUrl: https://docs.airbyte.com/integrations/sources/pingdom
+documentationUrl: https://docs.airbyte.com/integrations/sources/yotpo
connectionSpecification:
$schema: http://json-schema.org/draft-07/schema#
title: Yotpo Spec
From 7e32be81455ec3e3de7e359746642173d27b5154 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Mon, 17 Apr 2023 23:11:51 +0530
Subject: [PATCH 008/187] fix date_from, optimize manifest, update docs
---
.../src/main/resources/seed/oss_catalog.json | 4 +-
.../src/main/resources/seed/source_specs.yaml | 4 +-
.../integration_tests/expected_records.jsonl | 2 +-
.../integration_tests/invalid_config.json | 5 +-
.../integration_tests/sample_config.json | 5 +-
.../source-yotpo/source_yotpo/manifest.yaml | 56 +++++++++----------
.../source_yotpo/schemas/privacy_data.json | 1 +
.../source_yotpo/schemas/privacy_user.json | 1 +
.../source_yotpo/schemas/reviews.json | 4 ++
.../schemas/reviews_bottomline.json | 1 +
.../source_yotpo/schemas/top_reviews.json | 1 +
.../source_yotpo/schemas/webhooks.json | 1 +
.../source-yotpo/source_yotpo/spec.yaml | 6 +-
docs/integrations/sources/yotpo.md | 8 +--
14 files changed, 55 insertions(+), 44 deletions(-)
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index 66dc718b5496..97364d507cb5 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -28416,7 +28416,7 @@
"$schema": "https://json-schema.org/draft-07/schema#",
"title": "Yotpo Spec",
"type": "object",
- "required": [ "access_token", "app_key", "date_from", "email" ],
+ "required": [ "access_token", "app_key", "start_date", "email" ],
"additionalProperties": true,
"properties": {
"access_token": {
@@ -28430,7 +28430,7 @@
"type": "string",
"description": "App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)"
},
- "date_from": {
+ "start_date": {
"title": "Date-From Filter",
"type": "string",
"description": "Date time filter for incremental filter, Specify which date to extract from.",
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
index 7581bb85df00..c72feec908da 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
@@ -18349,7 +18349,7 @@
required:
- access_token
- app_key
- - date_from
+ - start_date
- email
additionalProperties: true
properties:
@@ -18362,7 +18362,7 @@
title: App Key
type: string
description: App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)
- date_from:
+ start_date:
title: Date-From Filter
type: string
description: Date time filter for incremental filter, Specify which date to extract from.
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl
index f11f7ca46cb6..b4a93e4c2d9f 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl
@@ -1 +1 @@
-{"stream": "reviews", "data": {"id":460530094,"title":"Great Phone","content":"It’s really good","score":5,"votes_up":0,"votes_down":0,"created_at":"2023-04-13T05:06:00.000Z","updated_at":"2023-04-13T05:08:41.000Z","sentiment":0.960069,"sku":"19","name":"John S.","email":"moles57397@snowlash.com","reviewer_type":"verified_reviewer","deleted":false,"archived":false,"escalated":false,"is_incentivized":false}, "emitted_at": 1679051186833}
+{"stream": "reviews", "data":{"id":460312221,"title":"Great Phone","content":"It’s really good","score":5,"votes_up":0,"votes_down":0,"created_at":"2023-04-12T18:13:47.000Z","updated_at":"2023-04-17T17:10:34.000Z","sentiment":0.960069,"sku":"13","name":"John S.","email":"john@shop.com","reviewer_type":"anonymous_user","deleted":false,"archived":false,"escalated":false,"is_incentivized":false}, "emitted_at": 1679051186833}
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/invalid_config.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/invalid_config.json
index 34470dc18f00..c266c8bd0766 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/invalid_config.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/invalid_config.json
@@ -1,3 +1,6 @@
{
- "access_token": ""
+ "app_key": "",
+ "access_token": "",
+ "start_date": "2099-04-12T18:42:50.000Z",
+ "email": ""
}
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_config.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_config.json
index ccc9b992b901..11b1fda38bac 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_config.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_config.json
@@ -1,3 +1,6 @@
{
- "access_token": "XXXXXXXXXXXXXXXXXXXXXXXXXX"
+ "app_key": "XXXXXXXXXXXXXXXXXXX",
+ "access_token": "YYYYYYYYYYYYYYYY",
+ "start_date": "2020-04-12T18:42:50.000Z",
+ "email": "example@gmail.com"
}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index 251fef833a58..aaa1e147f66f 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -1,6 +1,27 @@
version: "0.29.0"
definitions:
+
+ yotpo_stream_requester:
+ type: HttpRequester
+ url_base: "https://api.yotpo.com/v1"
+ http_method: "GET"
+ request_parameters:
+ utoken: "{{ config['access_token'] }}"
+ authenticator:
+ type: BearerAuthenticator
+ api_token: "{{ config['access_token'] }}"
+
+ yotpo_stream_plain_requester:
+ type: HttpRequester
+ url_base: "https://api.yotpo.com"
+ http_method: "GET"
+ request_parameters:
+ utoken: "{{ config['access_token'] }}"
+ authenticator:
+ type: BearerAuthenticator
+ api_token: "{{ config['access_token'] }}"
+
privacy_stream_requester:
type: HttpRequester
url_base: "https://api.yotpo.com/privacy"
@@ -55,14 +76,7 @@ definitions:
paginator:
type: NoPagination
requester:
- type: HttpRequester
- url_base: "https://api.yotpo.com/v1"
- http_method: "GET"
- request_parameters:
- utoken: "{{ config['access_token'] }}"
- authenticator:
- type: BearerAuthenticator
- api_token: "{{ config['access_token'] }}"
+ $ref: "#/definitions/yotpo_stream_requester"
incremental_sync:
type: DatetimeBasedCursor
cursor_field: "updated_at"
@@ -70,7 +84,7 @@ definitions:
cursor_granularity: "PT0.000001S"
lookback_window: "P31D"
start_datetime:
- datetime: "{{ config['date_from'] }}"
+ datetime: "{{ config['start_date'] }}"
datetime_format: "%Y-%m-%dT%H:%M:%S.%f%z"
end_datetime:
datetime: "{{ today_utc() }}"
@@ -93,14 +107,7 @@ definitions:
paginator:
type: NoPagination
requester:
- type: HttpRequester
- url_base: "https://api.yotpo.com"
- http_method: "GET"
- request_parameters:
- utoken: "{{ config['access_token'] }}"
- authenticator:
- type: BearerAuthenticator
- api_token: "{{ config['access_token'] }}"
+ $ref: "#/definitions/yotpo_stream_plain_requester"
name: "reviews_bottomline"
$parameters:
path: "/products/{{ config['app_key'] }}/yotpo_site_reviews/bottomline"
@@ -118,14 +125,7 @@ definitions:
paginator:
type: NoPagination
requester:
- type: HttpRequester
- url_base: "https://api.yotpo.com/"
- http_method: "GET"
- request_parameters:
- utoken: "{{ config['access_token'] }}"
- authenticator:
- type: BearerAuthenticator
- api_token: "{{ config['access_token'] }}"
+ $ref: "#/definitions/yotpo_stream_plain_requester"
name: "top_reviews"
$parameters:
path: "/apps/{{ config['app_key'] }}/top_reviews"
@@ -142,11 +142,7 @@ definitions:
paginator:
type: NoPagination
requester:
- type: HttpRequester
- url_base: "https://api.yotpo.com/"
- http_method: "GET"
- request_parameters:
- utoken: "{{ config['access_token'] }}"
+ $ref: "#/definitions/yotpo_stream_plain_requester"
name: "webhooks"
$parameters:
path: "/apps/{{ config['app_key'] }}/webhooks"
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json
index 552feb4e7ef6..3d6ecf69ffac 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json
@@ -1,6 +1,7 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Privacy Data",
+ "additionalProperties": true,
"type": "object",
"properties": {
"has_data": {
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json
index 7e2817c09be2..3603d55f04da 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json
@@ -1,6 +1,7 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Privacy User",
+ "additionalProperties": true,
"type": "object",
"properties": {
"code": {
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews.json
index 6d4eac1f090f..3710a009987c 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews.json
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews.json
@@ -1,6 +1,7 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Reviews Schema",
+ "additionalProperties": true,
"type": "object",
"properties": {
"id": {
@@ -9,6 +10,9 @@
"title": {
"type": ["null", "string"]
},
+ "incentive_type": {
+ "type": ["null", "string"]
+ },
"content": {
"type": ["null", "string"]
},
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
index 8188f59bb5ae..796cda50d838 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
@@ -1,6 +1,7 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Reviews Bottomline",
+ "additionalProperties": true,
"type": "object",
"properties": {
"bottomline": {
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
index a5021d309b7a..a9048548d365 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
@@ -1,6 +1,7 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Top Reviews Schema",
+ "additionalProperties": true,
"type": "object",
"properties": {
"image_url": {
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json
index 6d7e0f0e0af9..e4fc677f852e 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json
@@ -1,6 +1,7 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Webhooks Schema",
+ "additionalProperties": true,
"type": "object",
"properties": {
"webhooks": {
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
index 8408215c011d..496dca04cc80 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
@@ -3,12 +3,12 @@ connectionSpecification:
$schema: http://json-schema.org/draft-07/schema#
title: Yotpo Spec
type: object
+ additionalProperties: true
required:
- access_token
- app_key
- - date_from
+ - start_date
- email
- additionalProperties: true
properties:
access_token:
title: Access Token
@@ -19,7 +19,7 @@ connectionSpecification:
title: App Key
type: string
description: App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)
- date_from:
+ start_date:
title: Date-From Filter
type: string
description: Date time filter for incremental filter, Specify which date to extract from.
diff --git a/docs/integrations/sources/yotpo.md b/docs/integrations/sources/yotpo.md
index 63e6448c2f14..d4a6a19e42d1 100644
--- a/docs/integrations/sources/yotpo.md
+++ b/docs/integrations/sources/yotpo.md
@@ -15,8 +15,8 @@ Access Token (which acts as bearer token) is mandate for this connector to work,
- Available params
- access_token: The generated access token
- app_key: Seen at the yotpo settings (ref - https://settings.yotpo.com/#/general_settings)
- - date_from: Date filter for eligible streams, enter
- - email
+ - start_date: Date filter for eligible streams, enter
+ - email: Registered email address
## Step 2: Set up the Yotpo connector in Airbyte
@@ -25,14 +25,14 @@ Access Token (which acts as bearer token) is mandate for this connector to work,
1. [Log into your Airbyte Cloud](https://cloud.airbyte.io/workspaces) account.
2. In the left navigation bar, click **Sources**. In the top-right corner, click **+new source**.
3. On the Set up the source page, enter the name for the Yotpo connector and select **Yotpo** from the Source type dropdown.
-4. Enter your `access_token`.
+4. Enter your `access_token, app_key, start_date and email`.
5. Click **Set up source**.
### For Airbyte OSS:
1. Navigate to the Airbyte Open Source dashboard.
2. Set the name for your source.
-3. Enter your `access_token`.
+3. Enter your `access_token, app_key, start_date and email`.
5. Click **Set up source**.
## Supported sync modes
From 5f00233a616b2130dfb001ec9a3f1d209ce9291b Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Mon, 17 Apr 2023 23:29:49 +0530
Subject: [PATCH 009/187] delete privacy streams, refactor webhooks
---
.../integration_tests/configured_catalog.json | 18 ---------
.../source-yotpo/source_yotpo/manifest.yaml | 39 +------------------
.../source_yotpo/schemas/privacy_data.json | 11 ------
.../source_yotpo/schemas/privacy_user.json | 14 -------
.../source_yotpo/schemas/webhooks.json | 38 +++++++-----------
docs/integrations/sources/yotpo.md | 2 -
6 files changed, 16 insertions(+), 106 deletions(-)
delete mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json
delete mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index 2d7be78bcee3..6bbc5aec3ab5 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -1,23 +1,5 @@
{
"streams": [
- {
- "stream": {
- "name": "privacy_data",
- "json_schema": {},
- "supported_sync_modes": ["full_refresh"]
- },
- "sync_mode": "full_refresh",
- "destination_sync_mode": "overwrite"
- },
- {
- "stream": {
- "name": "privacy_user",
- "json_schema": {},
- "supported_sync_modes": ["full_refresh"]
- },
- "sync_mode": "full_refresh",
- "destination_sync_mode": "overwrite"
- },
{
"stream": {
"name": "reviews",
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index aaa1e147f66f..f1eaf0233310 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -29,40 +29,7 @@ definitions:
request_parameters:
utoken: "{{ config['access_token'] }}"
email: "{{ config['email'] }}"
-
- privacy_data_stream:
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["response"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/privacy_stream_requester"
- name: "privacy_data"
- $parameters:
- path: "/data/exists"
- privacy_user_stream:
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["status"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/privacy_stream_requester"
- name: "privacy_user"
- $parameters:
- path: "/data"
reviews_stream:
type: DeclarativeStream
@@ -138,7 +105,7 @@ definitions:
type: RecordSelector
extractor:
type: DpathExtractor
- field_path: ["response"]
+ field_path: ["response", "webhooks"]
paginator:
type: NoPagination
requester:
@@ -148,8 +115,6 @@ definitions:
path: "/apps/{{ config['app_key'] }}/webhooks"
streams:
- - "#/definitions/privacy_data_stream"
- - "#/definitions/privacy_user_stream"
- "#/definitions/reviews_stream"
- "#/definitions/reviews_bottomline_stream"
- "#/definitions/top_reviews_stream"
@@ -158,8 +123,6 @@ streams:
check:
type: CheckStream
stream_names:
- - "privacy_data"
- - "privacy_user"
- "reviews"
- "reviews_bottomline"
- "top_reviews"
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json
deleted file mode 100644
index 3d6ecf69ffac..000000000000
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Privacy Data",
- "additionalProperties": true,
- "type": "object",
- "properties": {
- "has_data": {
- "type": ["null", "boolean"]
- }
- }
-}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json
deleted file mode 100644
index 3603d55f04da..000000000000
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Privacy User",
- "additionalProperties": true,
- "type": "object",
- "properties": {
- "code": {
- "type": ["null", "number"]
- },
- "message": {
- "type": ["null", "string"]
- }
- }
-}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json
index e4fc677f852e..b93f4e074aea 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json
@@ -2,30 +2,22 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Webhooks Schema",
"additionalProperties": true,
- "type": "object",
+ "type": ["null", "object"],
"properties": {
- "webhooks": {
- "type": ["null", "array"],
- "items": {
- "type": ["null", "object"],
- "properties": {
- "id": {
- "type": ["null", "number"]
- },
- "webhook_event_id": {
- "type": ["null", "number"]
- },
- "webhook_event_name": {
- "type": ["null", "string"]
- },
- "url": {
- "type": ["null", "string"]
- },
- "version": {
- "type": ["null", "number"]
- }
- }
- }
+ "id": {
+ "type": ["null", "number"]
+ },
+ "webhook_event_id": {
+ "type": ["null", "number"]
+ },
+ "webhook_event_name": {
+ "type": ["null", "string"]
+ },
+ "url": {
+ "type": ["null", "string"]
+ },
+ "version": {
+ "type": ["null", "number"]
}
}
}
diff --git a/docs/integrations/sources/yotpo.md b/docs/integrations/sources/yotpo.md
index d4a6a19e42d1..21c25765ecac 100644
--- a/docs/integrations/sources/yotpo.md
+++ b/docs/integrations/sources/yotpo.md
@@ -49,8 +49,6 @@ The Yotpo source connector supports the following [sync modes](https://docs.airb
## Supported Streams
-- privacy_data
-- privacy_user
- reviews
- reviews_bottomline
- top_reviews
From 8ee1957e51080f864fbfdabd6d93bd3f9aafd39f Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Mon, 17 Apr 2023 23:44:52 +0530
Subject: [PATCH 010/187] add pagination
---
.../source-yotpo/source_yotpo/manifest.yaml | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index f1eaf0233310..5c494f907fbb 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -41,7 +41,18 @@ definitions:
type: DpathExtractor
field_path: ["reviews"]
paginator:
- type: NoPagination
+ type: "DefaultPaginator"
+ page_size_option:
+ type: "RequestOption"
+ inject_into: "request_parameter"
+ field_name: "per_page"
+ pagination_strategy:
+ type: "PageIncrement"
+ page_size: 5
+ page_token_option:
+ type: "RequestOption"
+ inject_into: "request_parameter"
+ field_name: "page"
requester:
$ref: "#/definitions/yotpo_stream_requester"
incremental_sync:
From 38e2fe1e27694e12a929a676139b78bfb6b8810c Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Tue, 18 Apr 2023 15:55:34 +0530
Subject: [PATCH 011/187] add streams raw_data, email_analytics
---
.../source-yotpo/acceptance-test-config.yml | 4 +-
.../integration_tests/configured_catalog.json | 18 +++++
.../source-yotpo/source_yotpo/manifest.yaml | 47 +++++++++++-
.../source_yotpo/schemas/email_analytics.json | 18 +++++
.../source_yotpo/schemas/raw_data.json | 71 +++++++++++++++++++
5 files changed, 155 insertions(+), 3 deletions(-)
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/email_analytics.json
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/raw_data.json
diff --git a/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml b/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
index ecfcc4f72b63..a3b095b9bde1 100644
--- a/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
+++ b/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
@@ -18,7 +18,9 @@ acceptance_tests:
tests:
- config_path: "secrets/config.json"
configured_catalog_path: "integration_tests/configured_catalog.json"
- empty_streams: []
+ empty_streams:
+ - name: "raw_data"
+ bypass_reason: "Sandbox account cannot seed the endpoint"
expect_records:
path: "integration_tests/expected_records.jsonl"
extra_fields: no
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index 6bbc5aec3ab5..83e04cee3701 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -1,5 +1,23 @@
{
"streams": [
+ {
+ "stream": {
+ "name": "email_analytics",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
+ {
+ "stream": {
+ "name": "raw_data",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
{
"stream": {
"name": "reviews",
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index 5c494f907fbb..7eece70ccc58 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -29,7 +29,13 @@ definitions:
request_parameters:
utoken: "{{ config['access_token'] }}"
email: "{{ config['email'] }}"
-
+
+ analytics_stream_requester:
+ type: HttpRequester
+ url_base: "https://api.yotpo.com/analytics/v1"
+ http_method: "GET"
+ request_parameters:
+ utoken: "{{ config['access_token'] }}"
reviews_stream:
type: DeclarativeStream
@@ -73,6 +79,40 @@ definitions:
$parameters:
path: "/apps/{{ config['app_key'] }}/reviews"
+ email_analytics_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["date_series_points"]
+ paginator:
+ type: NoPagination
+ requester:
+ $ref: "#/definitions/analytics_stream_requester"
+ name: "email_analytics"
+ $parameters:
+ path: "/emails/{{ config['app_key'] }}/emails_sent?token={{ config['access_token'] }}"
+
+ raw_data_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["records"]
+ paginator:
+ type: NoPagination
+ requester:
+ $ref: "#/definitions/analytics_stream_requester"
+ name: "raw_data"
+ $parameters:
+ path: "/emails/{{ config['app_key'] }}/export/raw_data?token={{ config['access_token'] }}"
+
reviews_bottomline_stream:
type: DeclarativeStream
retriever:
@@ -90,7 +130,6 @@ definitions:
$parameters:
path: "/products/{{ config['app_key'] }}/yotpo_site_reviews/bottomline"
-
top_reviews_stream:
type: DeclarativeStream
retriever:
@@ -126,6 +165,8 @@ definitions:
path: "/apps/{{ config['app_key'] }}/webhooks"
streams:
+ - "#/definitions/email_analytics_stream"
+ - "#/definitions/raw_data_stream"
- "#/definitions/reviews_stream"
- "#/definitions/reviews_bottomline_stream"
- "#/definitions/top_reviews_stream"
@@ -134,6 +175,8 @@ streams:
check:
type: CheckStream
stream_names:
+ - "email_analytics"
+ - "raw_data"
- "reviews"
- "reviews_bottomline"
- "top_reviews"
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/email_analytics.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/email_analytics.json
new file mode 100644
index 000000000000..5c28d57a89a3
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/email_analytics.json
@@ -0,0 +1,18 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Email Analytics",
+ "additionalProperties": true,
+ "type": "object",
+ "properties": {
+ "since": {
+ "type": ["null", "string"]
+ },
+ "until": {
+ "type": ["null", "string"]
+ },
+ "values": {
+ "type": ["null", "object"],
+ "properties": {}
+ }
+ }
+}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/raw_data.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/raw_data.json
new file mode 100644
index 000000000000..ff2feeac9183
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/raw_data.json
@@ -0,0 +1,71 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Raw Data Schema",
+ "additionalProperties": true,
+ "type": "object",
+ "properties": {
+ "email_address": {
+ "type": ["null", "string"]
+ },
+ "order_id": {
+ "type": ["null", "string"]
+ },
+ "order_timestamp": {
+ "type": ["null", "string"]
+ },
+ "product_id": {
+ "type": ["null", "string"]
+ },
+ "sku": {
+ "type": ["null", "number"]
+ },
+ "email_type": {
+ "type": ["null", "string"]
+ },
+ "reminder_num": {
+ "type": ["null", "number"]
+ },
+ "trr_bundle_id": {
+ "type": ["null", "string"]
+ },
+ "trr_bundle_subject": {
+ "type": ["null", "string"]
+ },
+ "review_type": {
+ "type": ["null", "string"]
+ },
+ "coupon_code": {
+ "type": ["null", "number"]
+ },
+ "email_sent_timestamp": {
+ "type": ["null", "string"]
+ },
+ "opened_timestamp": {
+ "type": ["null", "string"]
+ },
+ "clicked_through_timestamp": {
+ "type": ["null", "string"]
+ },
+ "content_creation_timestamp": {
+ "type": ["null", "string"]
+ },
+ "platform": {
+ "type": ["null", "string"]
+ },
+ "invalid_address_timestamp": {
+ "type": ["null", "string"]
+ },
+ "failed_timestamp": {
+ "type": ["null", "string"]
+ },
+ "unsubscribed_timestamp": {
+ "type": ["null", "string"]
+ },
+ "marked_spam_timestamp": {
+ "type": ["null", "string"]
+ },
+ "arrived_early_timestamp": {
+ "type": ["null", "string"]
+ }
+ }
+}
From 976b1c511c5c8008c35e5e26f6d7fc7415f5b32f Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Tue, 18 Apr 2023 16:11:31 +0530
Subject: [PATCH 012/187] add streams unsubscribers, webhook_events
---
.../source-yotpo/acceptance-test-config.yml | 2 +
.../integration_tests/configured_catalog.json | 18 +++++++++
.../source-yotpo/source_yotpo/manifest.yaml | 38 +++++++++++++++++++
.../source_yotpo/schemas/unsubscribers.json | 20 ++++++++++
.../source_yotpo/schemas/webhook_events.json | 14 +++++++
docs/integrations/sources/yotpo.md | 4 ++
6 files changed, 96 insertions(+)
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/unsubscribers.json
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhook_events.json
diff --git a/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml b/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
index a3b095b9bde1..3d6623e9ee52 100644
--- a/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
+++ b/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
@@ -21,6 +21,8 @@ acceptance_tests:
empty_streams:
- name: "raw_data"
bypass_reason: "Sandbox account cannot seed the endpoint"
+ - name: "unsubscribers"
+ bypass_reason: "Sandbox account cannot seed the endpoint"
expect_records:
path: "integration_tests/expected_records.jsonl"
extra_fields: no
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index 83e04cee3701..5daffc44a90d 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -45,6 +45,15 @@
"sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
},
+ {
+ "stream": {
+ "name": "unsubscribers",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
{
"stream": {
"name": "webhooks",
@@ -53,6 +62,15 @@
},
"sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
+ },
+ {
+ "stream": {
+ "name": "webhook_events",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
}
]
}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index 7eece70ccc58..408fb61ed8b8 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -147,6 +147,40 @@ definitions:
$parameters:
path: "/apps/{{ config['app_key'] }}/top_reviews"
+ unsubscribers_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["response", "unsubscribers"]
+ paginator:
+ type: NoPagination
+ requester:
+ $ref: "#/definitions/yotpo_stream_plain_requester"
+ name: "unsubscribers"
+ $parameters:
+ path: "/apps/{{ config['app_key'] }}/unsubscribers?utoken={{ config['access_token'] }}"
+
+ webhook_events_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["response", "webhook_events"]
+ paginator:
+ type: NoPagination
+ requester:
+ $ref: "#/definitions/yotpo_stream_plain_requester"
+ name: "webhook_events"
+ $parameters:
+ path: "/webhook_events?utoken={{ config['access_token'] }}"
+
webhooks_stream:
type: DeclarativeStream
retriever:
@@ -171,6 +205,8 @@ streams:
- "#/definitions/reviews_bottomline_stream"
- "#/definitions/top_reviews_stream"
- "#/definitions/webhooks_stream"
+ - "#/definitions/unsubscribers_stream"
+ - "#/definitions/webhook_events_stream"
check:
type: CheckStream
@@ -180,4 +216,6 @@ check:
- "reviews"
- "reviews_bottomline"
- "top_reviews"
+ - "unsubscribers"
- "webhooks"
+ - "webhook_events"
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/unsubscribers.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/unsubscribers.json
new file mode 100644
index 000000000000..e3426d28a71f
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/unsubscribers.json
@@ -0,0 +1,20 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Unsubscribers Schema",
+ "additionalProperties": true,
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": ["null", "number"]
+ },
+ "user_email": {
+ "type": ["null", "string"]
+ },
+ "email_type_id": {
+ "type": ["null", "number"]
+ },
+ "unsubscribed_by_name": {
+ "type": ["null", "string"]
+ }
+ }
+}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhook_events.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhook_events.json
new file mode 100644
index 000000000000..58ff83078426
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhook_events.json
@@ -0,0 +1,14 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Webhook events Schema",
+ "additionalProperties": true,
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": ["null", "string"]
+ },
+ "description": {
+ "type": ["null", "string"]
+ }
+ }
+}
diff --git a/docs/integrations/sources/yotpo.md b/docs/integrations/sources/yotpo.md
index 21c25765ecac..eb9d657b4224 100644
--- a/docs/integrations/sources/yotpo.md
+++ b/docs/integrations/sources/yotpo.md
@@ -49,10 +49,14 @@ The Yotpo source connector supports the following [sync modes](https://docs.airb
## Supported Streams
+- email_analytics
+- raw_data
- reviews
- reviews_bottomline
- top_reviews
+- unsubscribers
- webhooks
+- webhook_events
## API method example
From 7e2a453a31763e3929ae417286fe32d2e4703930 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Sat, 22 Apr 2023 11:25:24 +0530
Subject: [PATCH 013/187] Fix pagination
---
.../connectors/source-yotpo/source_yotpo/manifest.yaml | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index 408fb61ed8b8..f950261ad2b0 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -1,7 +1,6 @@
version: "0.29.0"
definitions:
-
yotpo_stream_requester:
type: HttpRequester
url_base: "https://api.yotpo.com/v1"
@@ -51,14 +50,14 @@ definitions:
page_size_option:
type: "RequestOption"
inject_into: "request_parameter"
- field_name: "per_page"
+ field_name: "count"
pagination_strategy:
- type: "PageIncrement"
- page_size: 5
+ type: "OffsetIncrement"
+ page_size: 1
page_token_option:
type: "RequestOption"
- inject_into: "request_parameter"
field_name: "page"
+ inject_into: "request_parameter"
requester:
$ref: "#/definitions/yotpo_stream_requester"
incremental_sync:
From 9a2691a3c1165498f84174812b62a096e5c2238b Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Sat, 22 Apr 2023 15:18:14 +0530
Subject: [PATCH 014/187] revert doc
---
docs/integrations/sources/yotpo.md | 2 --
1 file changed, 2 deletions(-)
diff --git a/docs/integrations/sources/yotpo.md b/docs/integrations/sources/yotpo.md
index eb9d657b4224..037b1c09de38 100644
--- a/docs/integrations/sources/yotpo.md
+++ b/docs/integrations/sources/yotpo.md
@@ -52,8 +52,6 @@ The Yotpo source connector supports the following [sync modes](https://docs.airb
- email_analytics
- raw_data
- reviews
-- reviews_bottomline
-- top_reviews
- unsubscribers
- webhooks
- webhook_events
From 11769ae9d28d06176feebd94f6a335f2d93d53bf Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Sat, 22 Apr 2023 22:16:58 +0530
Subject: [PATCH 015/187] Merge branch 'yotpo' of
https://github.com/btkcodedev/airbyte into yotpo
---
.../integration_tests/configured_catalog.json | 18 ----
.../source-yotpo/source_yotpo/manifest.yaml | 102 ++++++------------
.../schemas/reviews_bottomline.json | 19 ----
.../source_yotpo/schemas/top_reviews.json | 27 -----
4 files changed, 34 insertions(+), 132 deletions(-)
delete mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
delete mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index 5daffc44a90d..4f5228e40e1d 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -27,24 +27,6 @@
"sync_mode": "incremental",
"destination_sync_mode": "append"
},
- {
- "stream": {
- "name": "reviews_bottomline",
- "json_schema": {},
- "supported_sync_modes": ["full_refresh"]
- },
- "sync_mode": "full_refresh",
- "destination_sync_mode": "overwrite"
- },
- {
- "stream": {
- "name": "top_reviews",
- "json_schema": {},
- "supported_sync_modes": ["full_refresh"]
- },
- "sync_mode": "full_refresh",
- "destination_sync_mode": "overwrite"
- },
{
"stream": {
"name": "unsubscribers",
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index f950261ad2b0..fe8bf6b187c4 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -21,6 +21,20 @@ definitions:
type: BearerAuthenticator
api_token: "{{ config['access_token'] }}"
+ yotpo_paginator:
+ type: "DefaultPaginator"
+ page_size_option:
+ type: "RequestOption"
+ inject_into: "request_parameter"
+ field_name: "count"
+ pagination_strategy:
+ type: "OffsetIncrement"
+ page_size: 1
+ page_token_option:
+ type: "RequestOption"
+ field_name: "page"
+ inject_into: "request_parameter"
+
privacy_stream_requester:
type: HttpRequester
url_base: "https://api.yotpo.com/privacy"
@@ -46,18 +60,7 @@ definitions:
type: DpathExtractor
field_path: ["reviews"]
paginator:
- type: "DefaultPaginator"
- page_size_option:
- type: "RequestOption"
- inject_into: "request_parameter"
- field_name: "count"
- pagination_strategy:
- type: "OffsetIncrement"
- page_size: 1
- page_token_option:
- type: "RequestOption"
- field_name: "page"
- inject_into: "request_parameter"
+ $ref: "#/definitions/yotpo_paginator"
requester:
$ref: "#/definitions/yotpo_stream_requester"
incremental_sync:
@@ -79,6 +82,9 @@ definitions:
path: "/apps/{{ config['app_key'] }}/reviews"
email_analytics_stream:
+ name: "email_analytics"
+ $parameters:
+ path: "/emails/{{ config['app_key'] }}/emails_sent"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -91,45 +97,12 @@ definitions:
type: NoPagination
requester:
$ref: "#/definitions/analytics_stream_requester"
- name: "email_analytics"
- $parameters:
- path: "/emails/{{ config['app_key'] }}/emails_sent?token={{ config['access_token'] }}"
+
raw_data_stream:
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["records"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/analytics_stream_requester"
name: "raw_data"
$parameters:
- path: "/emails/{{ config['app_key'] }}/export/raw_data?token={{ config['access_token'] }}"
-
- reviews_bottomline_stream:
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["response"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/yotpo_stream_plain_requester"
- name: "reviews_bottomline"
- $parameters:
- path: "/products/{{ config['app_key'] }}/yotpo_site_reviews/bottomline"
-
- top_reviews_stream:
+ path: "/emails/{{ config['app_key'] }}/export/raw_data"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -137,16 +110,16 @@ definitions:
type: RecordSelector
extractor:
type: DpathExtractor
- field_path: ["reviews"]
+ field_path: ["records"]
paginator:
type: NoPagination
requester:
- $ref: "#/definitions/yotpo_stream_plain_requester"
- name: "top_reviews"
- $parameters:
- path: "/apps/{{ config['app_key'] }}/top_reviews"
+ $ref: "#/definitions/analytics_stream_requester"
unsubscribers_stream:
+ name: "unsubscribers"
+ $parameters:
+ path: "/apps/{{ config['app_key'] }}/unsubscribers"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -156,14 +129,14 @@ definitions:
type: DpathExtractor
field_path: ["response", "unsubscribers"]
paginator:
- type: NoPagination
+ $ref: "#/definitions/yotpo_paginator"
requester:
$ref: "#/definitions/yotpo_stream_plain_requester"
- name: "unsubscribers"
- $parameters:
- path: "/apps/{{ config['app_key'] }}/unsubscribers?utoken={{ config['access_token'] }}"
webhook_events_stream:
+ name: "webhook_events"
+ $parameters:
+ path: "/webhook_events?utoken={{ config['access_token'] }}"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -173,14 +146,14 @@ definitions:
type: DpathExtractor
field_path: ["response", "webhook_events"]
paginator:
- type: NoPagination
+ $ref: "#/definitions/yotpo_paginator"
requester:
$ref: "#/definitions/yotpo_stream_plain_requester"
- name: "webhook_events"
- $parameters:
- path: "/webhook_events?utoken={{ config['access_token'] }}"
webhooks_stream:
+ name: "webhooks"
+ $parameters:
+ path: "/apps/{{ config['app_key'] }}/webhooks"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -190,19 +163,14 @@ definitions:
type: DpathExtractor
field_path: ["response", "webhooks"]
paginator:
- type: NoPagination
+ $ref: "#/definitions/yotpo_paginator"
requester:
$ref: "#/definitions/yotpo_stream_plain_requester"
- name: "webhooks"
- $parameters:
- path: "/apps/{{ config['app_key'] }}/webhooks"
streams:
- "#/definitions/email_analytics_stream"
- "#/definitions/raw_data_stream"
- "#/definitions/reviews_stream"
- - "#/definitions/reviews_bottomline_stream"
- - "#/definitions/top_reviews_stream"
- "#/definitions/webhooks_stream"
- "#/definitions/unsubscribers_stream"
- "#/definitions/webhook_events_stream"
@@ -213,8 +181,6 @@ check:
- "email_analytics"
- "raw_data"
- "reviews"
- - "reviews_bottomline"
- - "top_reviews"
- "unsubscribers"
- "webhooks"
- "webhook_events"
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
deleted file mode 100644
index 796cda50d838..000000000000
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Reviews Bottomline",
- "additionalProperties": true,
- "type": "object",
- "properties": {
- "bottomline": {
- "type": "object",
- "properties": {
- "average_score": {
- "type": ["null", "number"]
- },
- "total_reviews": {
- "type": ["null", "number"]
- }
- }
- }
- }
-}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
deleted file mode 100644
index a9048548d365..000000000000
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Top Reviews Schema",
- "additionalProperties": true,
- "type": "object",
- "properties": {
- "image_url": {
- "type": ["null", "string"]
- },
- "score": {
- "type": ["null", "number"]
- },
- "title": {
- "type": ["null", "string"]
- },
- "content": {
- "type": ["null", "string"]
- },
- "product_url": {
- "type": ["null", "string"]
- },
- "created_at": {
- "type": ["null", "string"],
- "format": "date-time"
- }
- }
-}
From c1005f1707042d328b14720aef561e6a998bdb89 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Sat, 22 Apr 2023 22:17:03 +0530
Subject: [PATCH 016/187] Revert "remove top_reviews and reviews_bottomline,
Make common paginator"
This reverts commit 6615288b6d2441d9fdde2d927a5eb77b5d788442.
---
.../integration_tests/configured_catalog.json | 18 ++++
.../source-yotpo/source_yotpo/manifest.yaml | 102 ++++++++++++------
.../schemas/reviews_bottomline.json | 19 ++++
.../source_yotpo/schemas/top_reviews.json | 27 +++++
docs/integrations/sources/yotpo.md | 2 +
5 files changed, 134 insertions(+), 34 deletions(-)
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index 4f5228e40e1d..5daffc44a90d 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -27,6 +27,24 @@
"sync_mode": "incremental",
"destination_sync_mode": "append"
},
+ {
+ "stream": {
+ "name": "reviews_bottomline",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
+ {
+ "stream": {
+ "name": "top_reviews",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
{
"stream": {
"name": "unsubscribers",
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index fe8bf6b187c4..f950261ad2b0 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -21,20 +21,6 @@ definitions:
type: BearerAuthenticator
api_token: "{{ config['access_token'] }}"
- yotpo_paginator:
- type: "DefaultPaginator"
- page_size_option:
- type: "RequestOption"
- inject_into: "request_parameter"
- field_name: "count"
- pagination_strategy:
- type: "OffsetIncrement"
- page_size: 1
- page_token_option:
- type: "RequestOption"
- field_name: "page"
- inject_into: "request_parameter"
-
privacy_stream_requester:
type: HttpRequester
url_base: "https://api.yotpo.com/privacy"
@@ -60,7 +46,18 @@ definitions:
type: DpathExtractor
field_path: ["reviews"]
paginator:
- $ref: "#/definitions/yotpo_paginator"
+ type: "DefaultPaginator"
+ page_size_option:
+ type: "RequestOption"
+ inject_into: "request_parameter"
+ field_name: "count"
+ pagination_strategy:
+ type: "OffsetIncrement"
+ page_size: 1
+ page_token_option:
+ type: "RequestOption"
+ field_name: "page"
+ inject_into: "request_parameter"
requester:
$ref: "#/definitions/yotpo_stream_requester"
incremental_sync:
@@ -82,9 +79,6 @@ definitions:
path: "/apps/{{ config['app_key'] }}/reviews"
email_analytics_stream:
- name: "email_analytics"
- $parameters:
- path: "/emails/{{ config['app_key'] }}/emails_sent"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -97,12 +91,11 @@ definitions:
type: NoPagination
requester:
$ref: "#/definitions/analytics_stream_requester"
-
+ name: "email_analytics"
+ $parameters:
+ path: "/emails/{{ config['app_key'] }}/emails_sent?token={{ config['access_token'] }}"
raw_data_stream:
- name: "raw_data"
- $parameters:
- path: "/emails/{{ config['app_key'] }}/export/raw_data"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -115,11 +108,45 @@ definitions:
type: NoPagination
requester:
$ref: "#/definitions/analytics_stream_requester"
+ name: "raw_data"
+ $parameters:
+ path: "/emails/{{ config['app_key'] }}/export/raw_data?token={{ config['access_token'] }}"
- unsubscribers_stream:
- name: "unsubscribers"
+ reviews_bottomline_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["response"]
+ paginator:
+ type: NoPagination
+ requester:
+ $ref: "#/definitions/yotpo_stream_plain_requester"
+ name: "reviews_bottomline"
+ $parameters:
+ path: "/products/{{ config['app_key'] }}/yotpo_site_reviews/bottomline"
+
+ top_reviews_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["reviews"]
+ paginator:
+ type: NoPagination
+ requester:
+ $ref: "#/definitions/yotpo_stream_plain_requester"
+ name: "top_reviews"
$parameters:
- path: "/apps/{{ config['app_key'] }}/unsubscribers"
+ path: "/apps/{{ config['app_key'] }}/top_reviews"
+
+ unsubscribers_stream:
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -129,14 +156,14 @@ definitions:
type: DpathExtractor
field_path: ["response", "unsubscribers"]
paginator:
- $ref: "#/definitions/yotpo_paginator"
+ type: NoPagination
requester:
$ref: "#/definitions/yotpo_stream_plain_requester"
+ name: "unsubscribers"
+ $parameters:
+ path: "/apps/{{ config['app_key'] }}/unsubscribers?utoken={{ config['access_token'] }}"
webhook_events_stream:
- name: "webhook_events"
- $parameters:
- path: "/webhook_events?utoken={{ config['access_token'] }}"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -146,14 +173,14 @@ definitions:
type: DpathExtractor
field_path: ["response", "webhook_events"]
paginator:
- $ref: "#/definitions/yotpo_paginator"
+ type: NoPagination
requester:
$ref: "#/definitions/yotpo_stream_plain_requester"
+ name: "webhook_events"
+ $parameters:
+ path: "/webhook_events?utoken={{ config['access_token'] }}"
webhooks_stream:
- name: "webhooks"
- $parameters:
- path: "/apps/{{ config['app_key'] }}/webhooks"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -163,14 +190,19 @@ definitions:
type: DpathExtractor
field_path: ["response", "webhooks"]
paginator:
- $ref: "#/definitions/yotpo_paginator"
+ type: NoPagination
requester:
$ref: "#/definitions/yotpo_stream_plain_requester"
+ name: "webhooks"
+ $parameters:
+ path: "/apps/{{ config['app_key'] }}/webhooks"
streams:
- "#/definitions/email_analytics_stream"
- "#/definitions/raw_data_stream"
- "#/definitions/reviews_stream"
+ - "#/definitions/reviews_bottomline_stream"
+ - "#/definitions/top_reviews_stream"
- "#/definitions/webhooks_stream"
- "#/definitions/unsubscribers_stream"
- "#/definitions/webhook_events_stream"
@@ -181,6 +213,8 @@ check:
- "email_analytics"
- "raw_data"
- "reviews"
+ - "reviews_bottomline"
+ - "top_reviews"
- "unsubscribers"
- "webhooks"
- "webhook_events"
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
new file mode 100644
index 000000000000..796cda50d838
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
@@ -0,0 +1,19 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Reviews Bottomline",
+ "additionalProperties": true,
+ "type": "object",
+ "properties": {
+ "bottomline": {
+ "type": "object",
+ "properties": {
+ "average_score": {
+ "type": ["null", "number"]
+ },
+ "total_reviews": {
+ "type": ["null", "number"]
+ }
+ }
+ }
+ }
+}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
new file mode 100644
index 000000000000..a9048548d365
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
@@ -0,0 +1,27 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Top Reviews Schema",
+ "additionalProperties": true,
+ "type": "object",
+ "properties": {
+ "image_url": {
+ "type": ["null", "string"]
+ },
+ "score": {
+ "type": ["null", "number"]
+ },
+ "title": {
+ "type": ["null", "string"]
+ },
+ "content": {
+ "type": ["null", "string"]
+ },
+ "product_url": {
+ "type": ["null", "string"]
+ },
+ "created_at": {
+ "type": ["null", "string"],
+ "format": "date-time"
+ }
+ }
+}
diff --git a/docs/integrations/sources/yotpo.md b/docs/integrations/sources/yotpo.md
index 037b1c09de38..eb9d657b4224 100644
--- a/docs/integrations/sources/yotpo.md
+++ b/docs/integrations/sources/yotpo.md
@@ -52,6 +52,8 @@ The Yotpo source connector supports the following [sync modes](https://docs.airb
- email_analytics
- raw_data
- reviews
+- reviews_bottomline
+- top_reviews
- unsubscribers
- webhooks
- webhook_events
From 29ee85743ec70c1e3f040907fdbb3bfa63805620 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Sun, 23 Apr 2023 01:26:28 +0530
Subject: [PATCH 017/187] remove streams top_reviews, reviews_bottomline
---
.../integration_tests/configured_catalog.json | 18 ---------
.../source-yotpo/source_yotpo/manifest.yaml | 38 -------------------
docs/integrations/sources/yotpo.md | 2 -
3 files changed, 58 deletions(-)
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index 5daffc44a90d..4f5228e40e1d 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -27,24 +27,6 @@
"sync_mode": "incremental",
"destination_sync_mode": "append"
},
- {
- "stream": {
- "name": "reviews_bottomline",
- "json_schema": {},
- "supported_sync_modes": ["full_refresh"]
- },
- "sync_mode": "full_refresh",
- "destination_sync_mode": "overwrite"
- },
- {
- "stream": {
- "name": "top_reviews",
- "json_schema": {},
- "supported_sync_modes": ["full_refresh"]
- },
- "sync_mode": "full_refresh",
- "destination_sync_mode": "overwrite"
- },
{
"stream": {
"name": "unsubscribers",
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index f950261ad2b0..bd4393f0f51a 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -112,40 +112,6 @@ definitions:
$parameters:
path: "/emails/{{ config['app_key'] }}/export/raw_data?token={{ config['access_token'] }}"
- reviews_bottomline_stream:
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["response"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/yotpo_stream_plain_requester"
- name: "reviews_bottomline"
- $parameters:
- path: "/products/{{ config['app_key'] }}/yotpo_site_reviews/bottomline"
-
- top_reviews_stream:
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["reviews"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/yotpo_stream_plain_requester"
- name: "top_reviews"
- $parameters:
- path: "/apps/{{ config['app_key'] }}/top_reviews"
-
unsubscribers_stream:
type: DeclarativeStream
retriever:
@@ -201,8 +167,6 @@ streams:
- "#/definitions/email_analytics_stream"
- "#/definitions/raw_data_stream"
- "#/definitions/reviews_stream"
- - "#/definitions/reviews_bottomline_stream"
- - "#/definitions/top_reviews_stream"
- "#/definitions/webhooks_stream"
- "#/definitions/unsubscribers_stream"
- "#/definitions/webhook_events_stream"
@@ -213,8 +177,6 @@ check:
- "email_analytics"
- "raw_data"
- "reviews"
- - "reviews_bottomline"
- - "top_reviews"
- "unsubscribers"
- "webhooks"
- "webhook_events"
diff --git a/docs/integrations/sources/yotpo.md b/docs/integrations/sources/yotpo.md
index eb9d657b4224..037b1c09de38 100644
--- a/docs/integrations/sources/yotpo.md
+++ b/docs/integrations/sources/yotpo.md
@@ -52,8 +52,6 @@ The Yotpo source connector supports the following [sync modes](https://docs.airb
- email_analytics
- raw_data
- reviews
-- reviews_bottomline
-- top_reviews
- unsubscribers
- webhooks
- webhook_events
From 8dfcadbadb430735b855a52eb883aae258561008 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Sun, 23 Apr 2023 09:33:16 +0530
Subject: [PATCH 018/187] make common base and extractor
---
.../source-yotpo/source_yotpo/manifest.yaml | 39 ++++++++++++-------
1 file changed, 24 insertions(+), 15 deletions(-)
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index bd4393f0f51a..edaca95b3326 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -1,6 +1,10 @@
version: "0.29.0"
definitions:
+ yotpo_extractor:
+ type: DpathExtractor
+ field_path: ["reviews"]
+
yotpo_stream_requester:
type: HttpRequester
url_base: "https://api.yotpo.com/v1"
@@ -36,30 +40,35 @@ definitions:
request_parameters:
utoken: "{{ config['access_token'] }}"
- reviews_stream:
+ yotpo_paginator:
+ type: "DefaultPaginator"
+ page_size_option:
+ type: "RequestOption"
+ inject_into: "request_parameter"
+ field_name: "count"
+ pagination_strategy:
+ type: "OffsetIncrement"
+ page_size: 1
+ page_token_option:
+ type: "RequestOption"
+ field_name: "page"
+ inject_into: "request_parameter"
+
+ yotpo_base:
type: DeclarativeStream
retriever:
type: SimpleRetriever
record_selector:
type: RecordSelector
extractor:
- type: DpathExtractor
- field_path: ["reviews"]
+ $ref: "#/definitions/yotpo_extractor"
paginator:
- type: "DefaultPaginator"
- page_size_option:
- type: "RequestOption"
- inject_into: "request_parameter"
- field_name: "count"
- pagination_strategy:
- type: "OffsetIncrement"
- page_size: 1
- page_token_option:
- type: "RequestOption"
- field_name: "page"
- inject_into: "request_parameter"
+ $ref: "#/definitions/yotpo_paginator"
requester:
$ref: "#/definitions/yotpo_stream_requester"
+
+ reviews_stream:
+ $ref: "#/definitions/yotpo_base"
incremental_sync:
type: DatetimeBasedCursor
cursor_field: "updated_at"
From 9295a4679cd65a55aa3826ca39899805a2072bd3 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Sun, 23 Apr 2023 12:25:50 +0530
Subject: [PATCH 019/187] refactor, Checkpoint for full test passed
---
.../integration_tests/abnormal_state.json | 2 +-
.../integration_tests/expected_records.jsonl | 2 +-
.../integration_tests/sample_state.json | 2 +-
.../source-yotpo/source_yotpo/manifest.yaml | 34 +++++++++----------
.../schemas/reviews_bottomline.json | 19 -----------
.../source_yotpo/schemas/top_reviews.json | 27 ---------------
6 files changed, 19 insertions(+), 67 deletions(-)
delete mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
delete mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/abnormal_state.json
index d79c484ff6b4..c044edae2326 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/abnormal_state.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/abnormal_state.json
@@ -2,7 +2,7 @@
{
"type": "STREAM",
"stream": {
- "stream_state": { "updated_at": "2099-04-12T18:13:36.000Z" },
+ "stream_state": { "created_at": "2099-04-12T18:13:36.000Z" },
"stream_descriptor": { "name": "reviews" }
}
}
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl
index b4a93e4c2d9f..b1a5d4649bc6 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl
@@ -1 +1 @@
-{"stream": "reviews", "data":{"id":460312221,"title":"Great Phone","content":"It’s really good","score":5,"votes_up":0,"votes_down":0,"created_at":"2023-04-12T18:13:47.000Z","updated_at":"2023-04-17T17:10:34.000Z","sentiment":0.960069,"sku":"13","name":"John S.","email":"john@shop.com","reviewer_type":"anonymous_user","deleted":false,"archived":false,"escalated":false,"is_incentivized":false}, "emitted_at": 1679051186833}
+{"stream": "reviews", "data":{"id":463555946,"title":"Great Phone","content":"It’s really good","score":5,"votes_up":0,"votes_down":0,"created_at":"2023-04-23T06:14:19.000Z","updated_at":"2023-04-23T06:16:57.000Z","sentiment":0.960069,"sku":"23","name":"John S.","email":"moles57397@snowlash.com","reviewer_type":"verified_reviewer","deleted":false,"archived":false,"escalated":false,"is_incentivized":false}, "emitted_at": 1679051186823}
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_state.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_state.json
index e572e343696f..0c018bd01cfc 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_state.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_state.json
@@ -2,7 +2,7 @@
{
"type": "STREAM",
"stream": {
- "stream_state": { "updated_at": "2023-04-12T18:13:36.000Z" },
+ "stream_state": { "created_at": "2023-04-12T18:13:36.000Z" },
"stream_descriptor": { "name": "reviews" }
}
}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index edaca95b3326..92bfe6504ccc 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -3,7 +3,7 @@ version: "0.29.0"
definitions:
yotpo_extractor:
type: DpathExtractor
- field_path: ["reviews"]
+ field_path: ["{{ parameters['extractorPath'] }}"]
yotpo_stream_requester:
type: HttpRequester
@@ -25,14 +25,6 @@ definitions:
type: BearerAuthenticator
api_token: "{{ config['access_token'] }}"
- privacy_stream_requester:
- type: HttpRequester
- url_base: "https://api.yotpo.com/privacy"
- http_method: "GET"
- request_parameters:
- utoken: "{{ config['access_token'] }}"
- email: "{{ config['email'] }}"
-
analytics_stream_requester:
type: HttpRequester
url_base: "https://api.yotpo.com/analytics/v1"
@@ -68,10 +60,14 @@ definitions:
$ref: "#/definitions/yotpo_stream_requester"
reviews_stream:
+ $parameters:
+ extractorPath: "reviews"
+ paginatorAvailability: "true"
+ path: "/apps/{{ config['app_key'] }}/reviews"
$ref: "#/definitions/yotpo_base"
incremental_sync:
type: DatetimeBasedCursor
- cursor_field: "updated_at"
+ cursor_field: "created_at"
datetime_format: "%Y-%m-%dT%H:%M:%S.%f%z"
cursor_granularity: "PT0.000001S"
lookback_window: "P31D"
@@ -84,10 +80,12 @@ definitions:
step: "P1M"
name: "reviews"
primary_key: "id"
- $parameters:
- path: "/apps/{{ config['app_key'] }}/reviews"
email_analytics_stream:
+ $parameters:
+ extractorPath: "date_series_points"
+ paginatorAvailability: "false"
+ path: "/emails/{{ config['app_key'] }}/emails_sent"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -101,10 +99,12 @@ definitions:
requester:
$ref: "#/definitions/analytics_stream_requester"
name: "email_analytics"
- $parameters:
- path: "/emails/{{ config['app_key'] }}/emails_sent?token={{ config['access_token'] }}"
raw_data_stream:
+ $parameters:
+ extractorPath: "records"
+ paginatorAvailability: "false"
+ path: "/emails/{{ config['app_key'] }}/export/raw_data"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -118,8 +118,6 @@ definitions:
requester:
$ref: "#/definitions/analytics_stream_requester"
name: "raw_data"
- $parameters:
- path: "/emails/{{ config['app_key'] }}/export/raw_data?token={{ config['access_token'] }}"
unsubscribers_stream:
type: DeclarativeStream
@@ -136,7 +134,7 @@ definitions:
$ref: "#/definitions/yotpo_stream_plain_requester"
name: "unsubscribers"
$parameters:
- path: "/apps/{{ config['app_key'] }}/unsubscribers?utoken={{ config['access_token'] }}"
+ path: "/apps/{{ config['app_key'] }}/unsubscribers"
webhook_events_stream:
type: DeclarativeStream
@@ -153,7 +151,7 @@ definitions:
$ref: "#/definitions/yotpo_stream_plain_requester"
name: "webhook_events"
$parameters:
- path: "/webhook_events?utoken={{ config['access_token'] }}"
+ path: "/webhook_events"
webhooks_stream:
type: DeclarativeStream
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
deleted file mode 100644
index 796cda50d838..000000000000
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Reviews Bottomline",
- "additionalProperties": true,
- "type": "object",
- "properties": {
- "bottomline": {
- "type": "object",
- "properties": {
- "average_score": {
- "type": ["null", "number"]
- },
- "total_reviews": {
- "type": ["null", "number"]
- }
- }
- }
- }
-}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
deleted file mode 100644
index a9048548d365..000000000000
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Top Reviews Schema",
- "additionalProperties": true,
- "type": "object",
- "properties": {
- "image_url": {
- "type": ["null", "string"]
- },
- "score": {
- "type": ["null", "number"]
- },
- "title": {
- "type": ["null", "string"]
- },
- "content": {
- "type": ["null", "string"]
- },
- "product_url": {
- "type": ["null", "string"]
- },
- "created_at": {
- "type": ["null", "string"],
- "format": "date-time"
- }
- }
-}
From 4e738c7e721857aa7065c0b977803782272bb73d Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Mon, 24 Apr 2023 00:06:30 +0530
Subject: [PATCH 020/187] refactor base, requester, paginator
---
.../source-yotpo/acceptance-test-config.yml | 4 +
.../source-yotpo/source_yotpo/manifest.yaml | 121 ++++++------------
2 files changed, 41 insertions(+), 84 deletions(-)
diff --git a/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml b/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
index 3d6623e9ee52..1d6d15b88725 100644
--- a/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
+++ b/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
@@ -23,6 +23,10 @@ acceptance_tests:
bypass_reason: "Sandbox account cannot seed the endpoint"
- name: "unsubscribers"
bypass_reason: "Sandbox account cannot seed the endpoint"
+ - name: "webhooks"
+ bypass_reason: "Sandbox account cannot seed the endpoint"
+ - name: "webhook_events"
+ bypass_reason: "Sandbox account cannot seed the endpoint"
expect_records:
path: "integration_tests/expected_records.jsonl"
extra_fields: no
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index 92bfe6504ccc..64fdf9e9e908 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -7,27 +7,7 @@ definitions:
yotpo_stream_requester:
type: HttpRequester
- url_base: "https://api.yotpo.com/v1"
- http_method: "GET"
- request_parameters:
- utoken: "{{ config['access_token'] }}"
- authenticator:
- type: BearerAuthenticator
- api_token: "{{ config['access_token'] }}"
-
- yotpo_stream_plain_requester:
- type: HttpRequester
- url_base: "https://api.yotpo.com"
- http_method: "GET"
- request_parameters:
- utoken: "{{ config['access_token'] }}"
- authenticator:
- type: BearerAuthenticator
- api_token: "{{ config['access_token'] }}"
-
- analytics_stream_requester:
- type: HttpRequester
- url_base: "https://api.yotpo.com/analytics/v1"
+ url_base: "{{ parameters['requesterUrl'] }}"
http_method: "GET"
request_parameters:
utoken: "{{ config['access_token'] }}"
@@ -59,11 +39,25 @@ definitions:
requester:
$ref: "#/definitions/yotpo_stream_requester"
+ yotpo_base_without_pagination:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ $ref: "#/definitions/yotpo_extractor"
+ paginator:
+ type: NoPagination
+ requester:
+ $ref: "#/definitions/yotpo_stream_requester"
+
reviews_stream:
$parameters:
extractorPath: "reviews"
paginatorAvailability: "true"
path: "/apps/{{ config['app_key'] }}/reviews"
+ requesterUrl: "https://api.yotpo.com/v1"
$ref: "#/definitions/yotpo_base"
incremental_sync:
type: DatetimeBasedCursor
@@ -86,18 +80,8 @@ definitions:
extractorPath: "date_series_points"
paginatorAvailability: "false"
path: "/emails/{{ config['app_key'] }}/emails_sent"
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["date_series_points"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/analytics_stream_requester"
+ requesterUrl: "https://api.yotpo.com/analytics/v1"
+ $ref: "#/definitions/yotpo_base_without_pagination"
name: "email_analytics"
raw_data_stream:
@@ -105,70 +89,39 @@ definitions:
extractorPath: "records"
paginatorAvailability: "false"
path: "/emails/{{ config['app_key'] }}/export/raw_data"
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["records"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/analytics_stream_requester"
+ requesterUrl: "https://api.yotpo.com/analytics/v1"
+ $ref: "#/definitions/yotpo_base_without_pagination"
name: "raw_data"
unsubscribers_stream:
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["response", "unsubscribers"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/yotpo_stream_plain_requester"
- name: "unsubscribers"
$parameters:
+ extractorPath: |
+ "response", "unsubscribers"
+ paginatorAvailability: "true"
+ requesterUrl: "https://api.yotpo.com"
path: "/apps/{{ config['app_key'] }}/unsubscribers"
+ $ref: "#/definitions/yotpo_base"
+ name: "unsubscribers"
webhook_events_stream:
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["response", "webhook_events"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/yotpo_stream_plain_requester"
- name: "webhook_events"
$parameters:
+ extractorPath: |
+ "response", "webhook_events"
+ paginatorAvailability: "false"
+ requesterUrl: "https://api.yotpo.com"
path: "/webhook_events"
+ $ref: "#/definitions/yotpo_base_without_pagination"
+ name: "webhook_events"
webhooks_stream:
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["response", "webhooks"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/yotpo_stream_plain_requester"
- name: "webhooks"
$parameters:
+ extractorPath: |
+ "response", "webhooks"
+ paginatorAvailability: "false"
+ requesterUrl: "https://api.yotpo.com"
path: "/apps/{{ config['app_key'] }}/webhooks"
+ $ref: "#/definitions/yotpo_base_without_pagination"
+ name: "webhooks"
streams:
- "#/definitions/email_analytics_stream"
From 2464cf9c1c06dfeca1d2a230b01329d1697af7e1 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Mon, 24 Apr 2023 00:07:33 +0530
Subject: [PATCH 021/187] remove extra paginator property
---
.../connectors/source-yotpo/source_yotpo/manifest.yaml | 6 ------
1 file changed, 6 deletions(-)
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index 64fdf9e9e908..518ebaf4bbca 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -55,7 +55,6 @@ definitions:
reviews_stream:
$parameters:
extractorPath: "reviews"
- paginatorAvailability: "true"
path: "/apps/{{ config['app_key'] }}/reviews"
requesterUrl: "https://api.yotpo.com/v1"
$ref: "#/definitions/yotpo_base"
@@ -78,7 +77,6 @@ definitions:
email_analytics_stream:
$parameters:
extractorPath: "date_series_points"
- paginatorAvailability: "false"
path: "/emails/{{ config['app_key'] }}/emails_sent"
requesterUrl: "https://api.yotpo.com/analytics/v1"
$ref: "#/definitions/yotpo_base_without_pagination"
@@ -87,7 +85,6 @@ definitions:
raw_data_stream:
$parameters:
extractorPath: "records"
- paginatorAvailability: "false"
path: "/emails/{{ config['app_key'] }}/export/raw_data"
requesterUrl: "https://api.yotpo.com/analytics/v1"
$ref: "#/definitions/yotpo_base_without_pagination"
@@ -97,7 +94,6 @@ definitions:
$parameters:
extractorPath: |
"response", "unsubscribers"
- paginatorAvailability: "true"
requesterUrl: "https://api.yotpo.com"
path: "/apps/{{ config['app_key'] }}/unsubscribers"
$ref: "#/definitions/yotpo_base"
@@ -107,7 +103,6 @@ definitions:
$parameters:
extractorPath: |
"response", "webhook_events"
- paginatorAvailability: "false"
requesterUrl: "https://api.yotpo.com"
path: "/webhook_events"
$ref: "#/definitions/yotpo_base_without_pagination"
@@ -117,7 +112,6 @@ definitions:
$parameters:
extractorPath: |
"response", "webhooks"
- paginatorAvailability: "false"
requesterUrl: "https://api.yotpo.com"
path: "/apps/{{ config['app_key'] }}/webhooks"
$ref: "#/definitions/yotpo_base_without_pagination"
From dab3d79bbcc509a7268f3c6b759eb63ff42cc3b8 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Mon, 24 Apr 2023 00:34:38 +0530
Subject: [PATCH 022/187] Update oss_catalog.json
---
.../src/main/resources/seed/oss_catalog.json | 58176 ++++++++--------
1 file changed, 29088 insertions(+), 29088 deletions(-)
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index 6bfafd35410b..46ddbb304c26 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -1,29088 +1,29088 @@
-{
- "destinations": [ {
- "destinationDefinitionId": "b4c5d105-31fd-4817-96b6-cb923bfc04cb",
- "name": "Azure Blob Storage",
- "dockerRepository": "airbyte/destination-azure-blob-storage",
- "dockerImageTag": "0.2.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/azureblobstorage",
- "icon": "azureblobstorage.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/azureblobstorage",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "AzureBlobStorage Destination Spec",
- "type": "object",
- "required": [ "azure_blob_storage_account_name", "azure_blob_storage_account_key", "format" ],
- "additionalProperties": false,
- "properties": {
- "azure_blob_storage_endpoint_domain_name": {
- "title": "Endpoint Domain Name",
- "type": "string",
- "default": "blob.core.windows.net",
- "description": "This is Azure Blob Storage endpoint domain name. Leave default value (or leave it empty if run container from command line) to use Microsoft native from example.",
- "examples": [ "blob.core.windows.net" ]
- },
- "azure_blob_storage_container_name": {
- "title": "Azure blob storage container (Bucket) Name",
- "type": "string",
- "description": "The name of the Azure blob storage container. If not exists - will be created automatically. May be empty, then will be created automatically airbytecontainer+timestamp",
- "examples": [ "airbytetescontainername" ]
- },
- "azure_blob_storage_account_name": {
- "title": "Azure Blob Storage account name",
- "type": "string",
- "description": "The account's name of the Azure Blob Storage.",
- "examples": [ "airbyte5storage" ]
- },
- "azure_blob_storage_account_key": {
- "title": "Azure Blob Storage account key",
- "description": "The Azure blob storage account key.",
- "airbyte_secret": true,
- "type": "string",
- "examples": [ "Z8ZkZpteggFx394vm+PJHnGTvdRncaYS+JhLKdj789YNmD+iyGTnG+PV+POiuYNhBg/ACS+LKjd%4FG3FHGN12Nd==" ]
- },
- "azure_blob_storage_output_buffer_size": {
- "title": "Azure Blob Storage output buffer size (Megabytes)",
- "type": "integer",
- "description": "The amount of megabytes to buffer for the output stream to Azure. This will impact memory footprint on workers, but may need adjustment for performance and appropriate block size in Azure.",
- "minimum": 1,
- "maximum": 2047,
- "default": 5,
- "examples": [ 5 ]
- },
- "azure_blob_storage_spill_size": {
- "title": "Azure Blob Storage file spill size",
- "type": "integer",
- "description": "The amount of megabytes after which the connector should spill the records in a new blob object. Make sure to configure size greater than individual records. Enter 0 if not applicable",
- "default": 500,
- "examples": [ 500 ]
- },
- "format": {
- "title": "Output Format",
- "type": "object",
- "description": "Output data format",
- "oneOf": [ {
- "title": "CSV: Comma-Separated Values",
- "required": [ "format_type", "flattening" ],
- "properties": {
- "format_type": {
- "type": "string",
- "const": "CSV"
- },
- "flattening": {
- "type": "string",
- "title": "Normalization (Flattening)",
- "description": "Whether the input json data should be normalized (flattened) in the output CSV. Please refer to docs for details.",
- "default": "No flattening",
- "enum": [ "No flattening", "Root level flattening" ]
- }
- }
- }, {
- "title": "JSON Lines: newline-delimited JSON",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "type": "string",
- "const": "JSONL"
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "resourceRequirements": {
- "jobSpecific": [ {
- "jobType": "sync",
- "resourceRequirements": {
- "memory_request": "1Gi",
- "memory_limit": "1Gi"
- }
- } ]
- }
- }, {
- "destinationDefinitionId": "0eeee7fb-518f-4045-bacc-9619e31c43ea",
- "name": "Amazon SQS",
- "dockerRepository": "airbyte/destination-amazon-sqs",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/amazon-sqs",
- "icon": "awssqs.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/amazon-sqs",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Amazon Sqs",
- "type": "object",
- "required": [ "queue_url", "region" ],
- "additionalProperties": false,
- "properties": {
- "queue_url": {
- "title": "Queue URL",
- "description": "URL of the SQS Queue",
- "type": "string",
- "examples": [ "https://sqs.eu-west-1.amazonaws.com/1234567890/my-example-queue" ],
- "order": 0
- },
- "region": {
- "title": "AWS Region",
- "description": "AWS Region of the SQS Queue",
- "type": "string",
- "enum": [ "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
- "order": 1
- },
- "message_delay": {
- "title": "Message Delay",
- "description": "Modify the Message Delay of the individual message from the Queue's default (seconds).",
- "type": "integer",
- "examples": [ "15" ],
- "order": 2
- },
- "access_key": {
- "title": "AWS IAM Access Key ID",
- "description": "The Access Key ID of the AWS IAM Role to use for sending messages",
- "type": "string",
- "examples": [ "xxxxxHRNxxx3TBxxxxxx" ],
- "order": 3,
- "airbyte_secret": true
- },
- "secret_key": {
- "title": "AWS IAM Secret Key",
- "description": "The Secret Key of the AWS IAM Role to use for sending messages",
- "type": "string",
- "examples": [ "hu+qE5exxxxT6o/ZrKsxxxxxxBhxxXLexxxxxVKz" ],
- "order": 4,
- "airbyte_secret": true
- },
- "message_body_key": {
- "title": "Message Body Key",
- "description": "Use this property to extract the contents of the named key in the input record to use as the SQS message body. If not set, the entire content of the input record data is used as the message body.",
- "type": "string",
- "examples": [ "myDataPath" ],
- "order": 5
- },
- "message_group_id": {
- "title": "Message Group Id",
- "description": "The tag that specifies that a message belongs to a specific message group. This parameter applies only to, and is REQUIRED by, FIFO queues.",
- "type": "string",
- "examples": [ "my-fifo-group" ],
- "order": 6
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "05c161bf-ca73-4d48-b524-d392be417002",
- "name": "Apache Doris",
- "dockerRepository": "airbyte/destination-doris",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/doris",
- "icon": "apachedoris.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/destinations/doris",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Doris Destination Spec",
- "type": "object",
- "required": [ "host", "httpport", "queryport", "username", "database" ],
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database",
- "type": "string",
- "order": 0
- },
- "httpport": {
- "title": "HttpPort",
- "description": "Http Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 8030,
- "examples": [ "8030" ],
- "order": 1
- },
- "queryport": {
- "title": "QueryPort",
- "description": "Query(SQL) Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 9030,
- "examples": [ "9030" ],
- "order": 2
- },
- "database": {
- "title": "DataBase Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 3
- },
- "username": {
- "title": "UserName",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 4
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 5
- }
- }
- },
- "supportsIncremental": false,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append", "overwrite" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "df65a8f3-9908-451b-aa9b-445462803560",
- "name": "Apache Iceberg",
- "dockerRepository": "airbyte/destination-iceberg",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/iceberg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/iceberg",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Iceberg Destination Spec",
- "type": "object",
- "required": [ "catalog_config", "storage_config", "format_config" ],
- "properties": {
- "catalog_config": {
- "title": "Iceberg catalog config",
- "type": "object",
- "description": "Catalog config of Iceberg.",
- "oneOf": [ {
- "title": "HiveCatalog: Use Apache Hive MetaStore",
- "required": [ "catalog_type", "hive_thrift_uri" ],
- "properties": {
- "catalog_type": {
- "title": "Catalog Type",
- "type": "string",
- "default": "Hive",
- "enum": [ "Hive" ],
- "order": 0
- },
- "hive_thrift_uri": {
- "title": "Hive Metastore thrift uri",
- "type": "string",
- "description": "Hive MetaStore thrift server uri of iceberg catalog.",
- "examples": [ "host:port" ],
- "order": 1
- },
- "database": {
- "title": "Default database",
- "description": "The default database tables are written to if the source does not specify a namespace. The usual value for this field is \"default\".",
- "type": "string",
- "default": "default",
- "examples": [ "default" ],
- "order": 2
- }
- }
- }, {
- "title": "HadoopCatalog: Use hierarchical file systems as same as storage config",
- "description": "A Hadoop catalog doesn’t need to connect to a Hive MetaStore, but can only be used with HDFS or similar file systems that support atomic rename.",
- "required": [ "catalog_type" ],
- "properties": {
- "catalog_type": {
- "title": "Catalog Type",
- "type": "string",
- "default": "Hadoop",
- "enum": [ "Hadoop" ],
- "order": 0
- },
- "database": {
- "title": "Default database",
- "description": "The default database tables are written to if the source does not specify a namespace. The usual value for this field is \"default\".",
- "type": "string",
- "default": "default",
- "examples": [ "default" ],
- "order": 1
- }
- }
- }, {
- "title": "JdbcCatalog: Use relational database",
- "description": "Using a table in a relational database to manage Iceberg tables through JDBC. Read more here. Supporting: PostgreSQL",
- "required": [ "catalog_type" ],
- "properties": {
- "catalog_type": {
- "title": "Catalog Type",
- "type": "string",
- "default": "Jdbc",
- "enum": [ "Jdbc" ],
- "order": 0
- },
- "database": {
- "title": "Default schema",
- "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
- "type": "string",
- "default": "public",
- "examples": [ "public" ],
- "order": 1
- },
- "jdbc_url": {
- "title": "Jdbc url",
- "type": "string",
- "examples": [ "jdbc:postgresql://{host}:{port}/{database}" ],
- "order": 2
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL. When activating SSL, please select one of the connection modes.",
- "type": "boolean",
- "default": false,
- "order": 5
- },
- "catalog_schema": {
- "title": "schema for Iceberg catalog",
- "description": "Iceberg catalog metadata tables are written to catalog schema. The usual value for this field is \"public\".",
- "type": "string",
- "default": "public",
- "examples": [ "public" ],
- "order": 6
- }
- }
- } ],
- "order": 0
- },
- "storage_config": {
- "title": "Storage config",
- "type": "object",
- "description": "Storage config of Iceberg.",
- "oneOf": [ {
- "title": "S3",
- "type": "object",
- "description": "S3 object storage",
- "required": [ "storage_type", "access_key_id", "secret_access_key", "s3_warehouse_uri" ],
- "properties": {
- "storage_type": {
- "title": "Storage Type",
- "type": "string",
- "default": "S3",
- "enum": [ "S3" ],
- "order": 0
- },
- "access_key_id": {
- "type": "string",
- "description": "The access key ID to access the S3 bucket. Airbyte requires Read and Write permissions to the given bucket. Read more here.",
- "title": "S3 Key ID",
- "airbyte_secret": true,
- "examples": [ "A012345678910EXAMPLE" ],
- "order": 0
- },
- "secret_access_key": {
- "type": "string",
- "description": "The corresponding secret to the access key ID. Read more here",
- "title": "S3 Access Key",
- "airbyte_secret": true,
- "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ],
- "order": 1
- },
- "s3_warehouse_uri": {
- "title": "S3 Warehouse Uri for Iceberg",
- "type": "string",
- "description": "The Warehouse Uri for Iceberg",
- "examples": [ "s3a://my-bucket/path/to/warehouse", "s3://my-bucket/path/to/warehouse" ],
- "order": 2
- },
- "s3_bucket_region": {
- "title": "S3 Bucket Region",
- "type": "string",
- "default": "",
- "description": "The region of the S3 bucket. See here for all region codes.",
- "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
- "order": 3
- },
- "s3_endpoint": {
- "title": "Endpoint",
- "type": "string",
- "default": "",
- "description": "Your S3 endpoint url. Read more here",
- "examples": [ "http://localhost:9000", "localhost:9000" ],
- "order": 4
- },
- "s3_path_style_access": {
- "type": "boolean",
- "description": "Use path style access",
- "examples": [ true, false ],
- "default": true,
- "order": 5
- }
- }
- } ],
- "order": 1
- },
- "format_config": {
- "title": "File format",
- "type": "object",
- "required": [ "format" ],
- "description": "File format of Iceberg storage.",
- "properties": {
- "format": {
- "title": "File storage format",
- "type": "string",
- "default": "Parquet",
- "description": "",
- "enum": [ "Parquet", "Avro" ],
- "order": 0
- },
- "flush_batch_size": {
- "title": "Data file flushing batch size",
- "description": "Iceberg data file flush batch size. Incoming rows write to cache firstly; When cache size reaches this 'batch size', flush into real Iceberg data file.",
- "type": "integer",
- "default": 10000,
- "order": 1
- },
- "auto_compact": {
- "title": "Auto compact data files",
- "description": "Auto compact data files when stream close",
- "type": "boolean",
- "default": false,
- "order": 2
- },
- "compact_target_file_size_in_mb": {
- "title": "Target size of compacted data file",
- "description": "Specify the target size of Iceberg data file when performing a compaction action. ",
- "type": "integer",
- "default": 100,
- "order": 3
- }
- },
- "order": 2
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "99878c90-0fbd-46d3-9d98-ffde879d17fc",
- "name": "AWS Datalake",
- "dockerRepository": "airbyte/destination-aws-datalake",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/aws-datalake",
- "icon": "awsdatalake.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/aws-datalake",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "AWS Datalake Destination Spec",
- "type": "object",
- "required": [ "credentials", "region", "bucket_name", "lakeformation_database_name" ],
- "additionalProperties": false,
- "properties": {
- "aws_account_id": {
- "type": "string",
- "title": "AWS Account Id",
- "description": "target aws account id",
- "examples": [ "111111111111" ],
- "order": 1
- },
- "credentials": {
- "title": "Authentication mode",
- "description": "Choose How to Authenticate to AWS.",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "IAM Role",
- "required": [ "role_arn", "credentials_title" ],
- "properties": {
- "credentials_title": {
- "type": "string",
- "title": "Credentials Title",
- "description": "Name of the credentials",
- "const": "IAM Role",
- "enum": [ "IAM Role" ],
- "default": "IAM Role",
- "order": 0
- },
- "role_arn": {
- "title": "Target Role Arn",
- "type": "string",
- "description": "Will assume this role to write data to s3",
- "airbyte_secret": false
- }
- }
- }, {
- "type": "object",
- "title": "IAM User",
- "required": [ "credentials_title", "aws_access_key_id", "aws_secret_access_key" ],
- "properties": {
- "credentials_title": {
- "type": "string",
- "title": "Credentials Title",
- "description": "Name of the credentials",
- "const": "IAM User",
- "enum": [ "IAM User" ],
- "default": "IAM User",
- "order": 0
- },
- "aws_access_key_id": {
- "title": "Access Key Id",
- "type": "string",
- "description": "AWS User Access Key Id",
- "airbyte_secret": true
- },
- "aws_secret_access_key": {
- "title": "Secret Access Key",
- "type": "string",
- "description": "Secret Access Key",
- "airbyte_secret": true
- }
- }
- } ],
- "order": 2
- },
- "region": {
- "title": "S3 Bucket Region",
- "type": "string",
- "default": "",
- "description": "The region of the S3 bucket. See here for all region codes.",
- "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
- "order": 3
- },
- "bucket_name": {
- "title": "S3 Bucket Name",
- "type": "string",
- "description": "The name of the S3 bucket. Read more here.",
- "order": 4
- },
- "bucket_prefix": {
- "title": "Target S3 Bucket Prefix",
- "type": "string",
- "description": "S3 prefix",
- "order": 5
- },
- "lakeformation_database_name": {
- "title": "Lake Formation Database Name",
- "type": "string",
- "description": "The default database this destination will use to create tables in per stream. Can be changed per connection by customizing the namespace.",
- "order": 6
- },
- "lakeformation_database_default_tag_key": {
- "title": "Lake Formation Database Tag Key",
- "description": "Add a default tag key to databases created by this destination",
- "examples": [ "pii_level" ],
- "type": "string",
- "order": 7
- },
- "lakeformation_database_default_tag_values": {
- "title": "Lake Formation Database Tag Values",
- "description": "Add default values for the `Tag Key` to databases created by this destination. Comma separate for multiple values.",
- "examples": [ "private,public" ],
- "type": "string",
- "order": 8
- },
- "lakeformation_governed_tables": {
- "title": "Lake Formation Governed Tables",
- "description": "Whether to create tables as LF governed tables.",
- "type": "boolean",
- "default": false,
- "order": 9
- },
- "format": {
- "title": "Output Format *",
- "type": "object",
- "description": "Format of the data output.",
- "oneOf": [ {
- "title": "JSON Lines: Newline-delimited JSON",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "title": "Format Type *",
- "type": "string",
- "enum": [ "JSONL" ],
- "default": "JSONL"
- },
- "compression_codec": {
- "title": "Compression Codec (Optional)",
- "description": "The compression algorithm used to compress data.",
- "type": "string",
- "enum": [ "UNCOMPRESSED", "GZIP" ],
- "default": "UNCOMPRESSED"
- }
- }
- }, {
- "title": "Parquet: Columnar Storage",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "title": "Format Type *",
- "type": "string",
- "enum": [ "Parquet" ],
- "default": "Parquet"
- },
- "compression_codec": {
- "title": "Compression Codec (Optional)",
- "description": "The compression algorithm used to compress data.",
- "type": "string",
- "enum": [ "UNCOMPRESSED", "SNAPPY", "GZIP", "ZSTD" ],
- "default": "SNAPPY"
- }
- }
- } ],
- "order": 10
- },
- "partitioning": {
- "title": "Choose how to partition data",
- "description": "Partition data by cursor fields when a cursor field is a date",
- "type": "string",
- "enum": [ "NO PARTITIONING", "DATE", "YEAR", "MONTH", "DAY", "YEAR/MONTH", "YEAR/MONTH/DAY" ],
- "default": "NO PARTITIONING",
- "order": 11
- },
- "glue_catalog_float_as_decimal": {
- "title": "Glue Catalog: Float as Decimal",
- "description": "Cast float/double as decimal(38,18). This can help achieve higher accuracy and represent numbers correctly as received from the source.",
- "type": "boolean",
- "default": false,
- "order": 12
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "22f6c74f-5699-40ff-833c-4a879ea40133",
- "name": "BigQuery",
- "dockerRepository": "airbyte/destination-bigquery",
- "dockerImageTag": "1.3.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
- "icon": "bigquery.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "BigQuery Destination Spec",
- "type": "object",
- "required": [ "project_id", "dataset_location", "dataset_id" ],
- "additionalProperties": true,
- "properties": {
- "project_id": {
- "type": "string",
- "description": "The GCP project ID for the project containing the target BigQuery dataset. Read more here.",
- "title": "Project ID",
- "order": 0
- },
- "dataset_location": {
- "type": "string",
- "description": "The location of the dataset. Warning: Changes made after creation will not be applied. Read more here.",
- "title": "Dataset Location",
- "order": 1,
- "enum": [ "US", "EU", "asia-east1", "asia-east2", "asia-northeast1", "asia-northeast2", "asia-northeast3", "asia-south1", "asia-south2", "asia-southeast1", "asia-southeast2", "australia-southeast1", "australia-southeast2", "europe-central1", "europe-central2", "europe-north1", "europe-southwest1", "europe-west1", "europe-west2", "europe-west3", "europe-west4", "europe-west6", "europe-west7", "europe-west8", "europe-west9", "me-west1", "northamerica-northeast1", "northamerica-northeast2", "southamerica-east1", "southamerica-west1", "us-central1", "us-east1", "us-east2", "us-east3", "us-east4", "us-east5", "us-west1", "us-west2", "us-west3", "us-west4" ]
- },
- "dataset_id": {
- "type": "string",
- "description": "The default BigQuery Dataset ID that tables are replicated to if the source does not specify a namespace. Read more here.",
- "title": "Default Dataset ID",
- "order": 2
- },
- "loading_method": {
- "type": "object",
- "title": "Loading Method",
- "description": "Loading method used to send select the way data will be uploaded to BigQuery.
Standard Inserts - Direct uploading using SQL INSERT statements. This method is extremely inefficient and provided only for quick testing. In almost all cases, you should use staging.
GCS Staging - Writes large batches of records to a file, uploads the file to GCS, then uses COPY INTO table to upload the file. Recommended for most workloads for better speed and scalability. Read more about GCS Staging here.",
- "order": 3,
- "oneOf": [ {
- "title": "Standard Inserts",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "Standard"
- }
- }
- }, {
- "title": "GCS Staging",
- "required": [ "method", "gcs_bucket_name", "gcs_bucket_path", "credential" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "GCS Staging",
- "order": 0
- },
- "credential": {
- "title": "Credential",
- "description": "An HMAC key is a type of credential and can be associated with a service account or a user account in Cloud Storage. Read more here.",
- "type": "object",
- "order": 1,
- "oneOf": [ {
- "title": "HMAC key",
- "required": [ "credential_type", "hmac_key_access_id", "hmac_key_secret" ],
- "properties": {
- "credential_type": {
- "type": "string",
- "const": "HMAC_KEY",
- "order": 0
- },
- "hmac_key_access_id": {
- "type": "string",
- "description": "HMAC key access ID. When linked to a service account, this ID is 61 characters long; when linked to a user account, it is 24 characters long.",
- "title": "HMAC Key Access ID",
- "airbyte_secret": true,
- "examples": [ "1234567890abcdefghij1234" ],
- "order": 1
- },
- "hmac_key_secret": {
- "type": "string",
- "description": "The corresponding secret for the access ID. It is a 40-character base-64 encoded string.",
- "title": "HMAC Key Secret",
- "airbyte_secret": true,
- "examples": [ "1234567890abcdefghij1234567890ABCDEFGHIJ" ],
- "order": 2
- }
- }
- } ]
- },
- "gcs_bucket_name": {
- "title": "GCS Bucket Name",
- "type": "string",
- "description": "The name of the GCS bucket. Read more here.",
- "examples": [ "airbyte_sync" ],
- "order": 2
- },
- "gcs_bucket_path": {
- "title": "GCS Bucket Path",
- "description": "Directory under the GCS bucket where data will be written.",
- "type": "string",
- "examples": [ "data_sync/test" ],
- "order": 3
- },
- "keep_files_in_gcs-bucket": {
- "type": "string",
- "description": "This upload method is supposed to temporary store records in GCS bucket. By this select you can chose if these records should be removed from GCS when migration has finished. The default \"Delete all tmp files from GCS\" value is used if not set explicitly.",
- "title": "GCS Tmp Files Afterward Processing",
- "default": "Delete all tmp files from GCS",
- "enum": [ "Delete all tmp files from GCS", "Keep all tmp files in GCS" ],
- "order": 4
- },
- "file_buffer_count": {
- "title": "File Buffer Count",
- "type": "integer",
- "minimum": 10,
- "maximum": 50,
- "default": 10,
- "description": "Number of file buffers allocated for writing data. Increasing this number is beneficial for connections using Change Data Capture (CDC) and up to the number of streams within a connection. Increasing the number of file buffers past the maximum number of streams has deteriorating effects",
- "examples": [ "10" ],
- "order": 5
- }
- }
- } ]
- },
- "credentials_json": {
- "type": "string",
- "description": "The contents of the JSON service account key. Check out the docs if you need help generating this key. Default credentials will be used if this field is left empty.",
- "title": "Service Account Key JSON (Required for cloud, optional for open-source)",
- "airbyte_secret": true,
- "order": 4,
- "always_show": true
- },
- "transformation_priority": {
- "type": "string",
- "description": "Interactive run type means that the query is executed as soon as possible, and these queries count towards concurrent rate limit and daily limit. Read more about interactive run type here. Batch queries are queued and started as soon as idle resources are available in the BigQuery shared resource pool, which usually occurs within a few minutes. Batch queries don’t count towards your concurrent rate limit. Read more about batch queries here. The default \"interactive\" value is used if not set explicitly.",
- "title": "Transformation Query Run Type",
- "default": "interactive",
- "enum": [ "interactive", "batch" ],
- "order": 5
- },
- "big_query_client_buffer_size_mb": {
- "title": "Google BigQuery Client Chunk Size",
- "description": "Google BigQuery client's chunk (buffer) size (MIN=1, MAX = 15) for each table. The size that will be written by a single RPC. Written data will be buffered and only flushed upon reaching this size or closing the channel. The default 15MB value is used if not set explicitly. Read more here.",
- "type": "integer",
- "minimum": 1,
- "maximum": 15,
- "default": 15,
- "examples": [ "15" ],
- "order": 6
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "resourceRequirements": {
- "jobSpecific": [ {
- "jobType": "sync",
- "resourceRequirements": {
- "memory_request": "1Gi",
- "memory_limit": "1Gi"
- }
- } ]
- },
- "normalizationConfig": {
- "normalizationRepository": "airbyte/normalization",
- "normalizationTag": "0.4.0",
- "normalizationIntegrationType": "bigquery"
- },
- "supportsDbt": true
- }, {
- "destinationDefinitionId": "079d5540-f236-4294-ba7c-ade8fd918496",
- "name": "BigQuery (denormalized typed struct)",
- "dockerRepository": "airbyte/destination-bigquery-denormalized",
- "dockerImageTag": "1.3.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
- "icon": "bigquery.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "BigQuery Denormalized Typed Struct Destination Spec",
- "type": "object",
- "required": [ "project_id", "dataset_id" ],
- "additionalProperties": true,
- "properties": {
- "project_id": {
- "type": "string",
- "description": "The GCP project ID for the project containing the target BigQuery dataset. Read more here.",
- "title": "Project ID",
- "order": 0
- },
- "dataset_id": {
- "type": "string",
- "description": "The default BigQuery Dataset ID that tables are replicated to if the source does not specify a namespace. Read more here.",
- "title": "Default Dataset ID",
- "order": 1
- },
- "loading_method": {
- "type": "object",
- "title": "Loading Method",
- "description": "Loading method used to send select the way data will be uploaded to BigQuery.
Standard Inserts - Direct uploading using SQL INSERT statements. This method is extremely inefficient and provided only for quick testing. In almost all cases, you should use staging.
GCS Staging - Writes large batches of records to a file, uploads the file to GCS, then uses COPY INTO table to upload the file. Recommended for most workloads for better speed and scalability. Read more about GCS Staging here.",
- "order": 2,
- "oneOf": [ {
- "title": "Standard Inserts",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "Standard"
- }
- }
- }, {
- "title": "GCS Staging",
- "type": "object",
- "required": [ "method", "gcs_bucket_name", "gcs_bucket_path", "credential" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "GCS Staging",
- "order": 0
- },
- "credential": {
- "title": "Credential",
- "description": "An HMAC key is a type of credential and can be associated with a service account or a user account in Cloud Storage. Read more here.",
- "type": "object",
- "order": 1,
- "oneOf": [ {
- "title": "HMAC key",
- "order": 0,
- "required": [ "credential_type", "hmac_key_access_id", "hmac_key_secret" ],
- "properties": {
- "credential_type": {
- "type": "string",
- "const": "HMAC_KEY",
- "order": 0
- },
- "hmac_key_access_id": {
- "type": "string",
- "description": "HMAC key access ID. When linked to a service account, this ID is 61 characters long; when linked to a user account, it is 24 characters long.",
- "title": "HMAC Key Access ID",
- "airbyte_secret": true,
- "examples": [ "1234567890abcdefghij1234" ],
- "order": 1
- },
- "hmac_key_secret": {
- "type": "string",
- "description": "The corresponding secret for the access ID. It is a 40-character base-64 encoded string.",
- "title": "HMAC Key Secret",
- "airbyte_secret": true,
- "examples": [ "1234567890abcdefghij1234567890ABCDEFGHIJ" ],
- "order": 2
- }
- }
- } ]
- },
- "gcs_bucket_name": {
- "title": "GCS Bucket Name",
- "type": "string",
- "description": "The name of the GCS bucket. Read more here.",
- "examples": [ "airbyte_sync" ],
- "order": 2
- },
- "gcs_bucket_path": {
- "title": "GCS Bucket Path",
- "description": "Directory under the GCS bucket where data will be written. Read more here.",
- "type": "string",
- "examples": [ "data_sync/test" ],
- "order": 3
- },
- "keep_files_in_gcs-bucket": {
- "type": "string",
- "description": "This upload method is supposed to temporary store records in GCS bucket. By this select you can chose if these records should be removed from GCS when migration has finished. The default \"Delete all tmp files from GCS\" value is used if not set explicitly.",
- "title": "GCS Tmp Files Afterward Processing",
- "default": "Delete all tmp files from GCS",
- "enum": [ "Delete all tmp files from GCS", "Keep all tmp files in GCS" ],
- "order": 4
- },
- "file_buffer_count": {
- "title": "File Buffer Count",
- "type": "integer",
- "minimum": 10,
- "maximum": 50,
- "default": 10,
- "description": "Number of file buffers allocated for writing data. Increasing this number is beneficial for connections using Change Data Capture (CDC) and up to the number of streams within a connection. Increasing the number of file buffers past the maximum number of streams has deteriorating effects",
- "examples": [ "10" ],
- "order": 5
- }
- }
- } ]
- },
- "credentials_json": {
- "type": "string",
- "description": "The contents of the JSON service account key. Check out the docs if you need help generating this key. Default credentials will be used if this field is left empty.",
- "title": "Service Account Key JSON (Required for cloud, optional for open-source)",
- "airbyte_secret": true,
- "order": 3,
- "always_show": true
- },
- "dataset_location": {
- "type": "string",
- "description": "The location of the dataset. Warning: Changes made after creation will not be applied. The default \"US\" value is used if not set explicitly. Read more here.",
- "title": "Dataset Location",
- "default": "US",
- "order": 4,
- "enum": [ "US", "EU", "asia-east1", "asia-east2", "asia-northeast1", "asia-northeast2", "asia-northeast3", "asia-south1", "asia-south2", "asia-southeast1", "asia-southeast2", "australia-southeast1", "australia-southeast2", "europe-central1", "europe-central2", "europe-north1", "europe-southwest1", "europe-west1", "europe-west2", "europe-west3", "europe-west4", "europe-west6", "europe-west7", "europe-west8", "europe-west9", "me-west1", "northamerica-northeast1", "northamerica-northeast2", "southamerica-east1", "southamerica-west1", "us-central1", "us-east1", "us-east2", "us-east3", "us-east4", "us-east5", "us-west1", "us-west2", "us-west3", "us-west4" ]
- },
- "big_query_client_buffer_size_mb": {
- "title": "Google BigQuery Client Chunk Size",
- "description": "Google BigQuery client's chunk (buffer) size (MIN=1, MAX = 15) for each table. The size that will be written by a single RPC. Written data will be buffered and only flushed upon reaching this size or closing the channel. The default 15MB value is used if not set explicitly. Read more here.",
- "type": "integer",
- "minimum": 1,
- "maximum": 15,
- "default": 15,
- "examples": [ "15" ],
- "order": 5
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "resourceRequirements": {
- "jobSpecific": [ {
- "jobType": "sync",
- "resourceRequirements": {
- "memory_request": "1Gi",
- "memory_limit": "1Gi"
- }
- } ]
- }
- }, {
- "destinationDefinitionId": "707456df-6f4f-4ced-b5c6-03f73bcad1c5",
- "name": "Cassandra",
- "dockerRepository": "airbyte/destination-cassandra",
- "dockerImageTag": "0.1.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/cassandra",
- "icon": "cassandra.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/cassandra",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Cassandra Destination Spec",
- "type": "object",
- "required": [ "keyspace", "username", "password", "address", "port" ],
- "additionalProperties": true,
- "properties": {
- "keyspace": {
- "title": "Keyspace",
- "description": "Default Cassandra keyspace to create data in.",
- "type": "string",
- "order": 0
- },
- "username": {
- "title": "Username",
- "description": "Username to use to access Cassandra.",
- "type": "string",
- "order": 1
- },
- "password": {
- "title": "Password",
- "description": "Password associated with Cassandra.",
- "type": "string",
- "airbyte_secret": true,
- "order": 2
- },
- "address": {
- "title": "Address",
- "description": "Address to connect to.",
- "type": "string",
- "examples": [ "localhost,127.0.0.1" ],
- "order": 3
- },
- "port": {
- "title": "Port",
- "description": "Port of Cassandra.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 9042,
- "order": 4
- },
- "datacenter": {
- "title": "Datacenter",
- "description": "Datacenter of the cassandra cluster.",
- "type": "string",
- "default": "datacenter1",
- "order": 5
- },
- "replication": {
- "title": "Replication factor",
- "type": "integer",
- "description": "Indicates to how many nodes the data should be replicated to.",
- "default": 1,
- "order": 6
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "e088acb6-9780-4568-880c-54c2dd7f431b",
- "name": "Cumul.io",
- "dockerRepository": "airbyte/destination-cumulio",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/cumulio",
- "icon": "cumulio.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/cumulio",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Cumulio",
- "type": "object",
- "required": [ "api_host", "api_key", "api_token" ],
- "additionalProperties": true,
- "properties": {
- "api_host": {
- "title": "Cumul.io API Host URL",
- "description": "URL of the Cumul.io API (e.g. 'https://api.cumul.io', 'https://api.us.cumul.io', or VPC-specific API url). Defaults to 'https://api.cumul.io'.",
- "default": "https://api.cumul.io",
- "type": "string",
- "order": 0
- },
- "api_key": {
- "title": "Cumul.io API Key",
- "description": "An API key generated in Cumul.io's platform (can be generated here: https://app.cumul.io/start/profile/integration).",
- "type": "string",
- "airbyte_secret": true,
- "order": 1
- },
- "api_token": {
- "title": "Cumul.io API Token",
- "description": "The corresponding API token generated in Cumul.io's platform (can be generated here: https://app.cumul.io/start/profile/integration).",
- "type": "string",
- "airbyte_secret": true,
- "order": 2
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "81740ce8-d764-4ea7-94df-16bb41de36ae",
- "name": "Chargify (Keen)",
- "dockerRepository": "airbyte/destination-keen",
- "dockerImageTag": "0.2.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/keen",
- "icon": "chargify.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/keen",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Keen Spec",
- "type": "object",
- "required": [ "project_id", "api_key" ],
- "additionalProperties": false,
- "properties": {
- "project_id": {
- "description": "To get Keen Project ID, navigate to the Access tab from the left-hand, side panel and check the Project Details section.",
- "title": "Project ID",
- "type": "string",
- "examples": [ "58b4acc22ba938934e888322e" ]
- },
- "api_key": {
- "title": "API Key",
- "description": "To get Keen Master API Key, navigate to the Access tab from the left-hand, side panel and check the Project Details section.",
- "type": "string",
- "examples": [ "ABCDEFGHIJKLMNOPRSTUWXYZ" ],
- "airbyte_secret": true
- },
- "infer_timestamp": {
- "title": "Infer Timestamp",
- "description": "Allow connector to guess keen.timestamp value based on the streamed data.",
- "type": "boolean",
- "default": true
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "ce0d828e-1dc4-496c-b122-2da42e637e48",
- "name": "Clickhouse",
- "dockerRepository": "airbyte/destination-clickhouse",
- "dockerImageTag": "0.2.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/clickhouse",
- "icon": "clickhouse.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/clickhouse",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "ClickHouse Destination Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "HTTP port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 8123,
- "examples": [ "8123" ],
- "order": 1
- },
- "database": {
- "title": "DB Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 2
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 5
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL.",
- "type": "boolean",
- "default": false,
- "order": 6
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "normalizationConfig": {
- "normalizationRepository": "airbyte/normalization-clickhouse",
- "normalizationTag": "0.4.0",
- "normalizationIntegrationType": "clickhouse"
- },
- "supportsDbt": false
- }, {
- "destinationDefinitionId": "0fb07be9-7c3b-4336-850d-5efc006152ee",
- "name": "Cloudflare R2",
- "dockerRepository": "airbyte/destination-r2",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/r2",
- "icon": "cloudflare-r2.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/r2",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "R2 Destination Spec",
- "type": "object",
- "required": [ "account_id", "access_key_id", "secret_access_key", "s3_bucket_name", "s3_bucket_path", "format" ],
- "properties": {
- "account_id": {
- "type": "string",
- "description": "Cloudflare account ID",
- "title": "Cloudflare account ID",
- "examples": [ "12345678aa1a1a11111aaa1234567abc" ],
- "order": 0
- },
- "access_key_id": {
- "type": "string",
- "description": "The access key ID to access the R2 bucket. Airbyte requires Read and Write permissions to the given bucket. Read more here.",
- "title": "R2 Key ID",
- "airbyte_secret": true,
- "examples": [ "A012345678910EXAMPLE" ],
- "order": 1
- },
- "secret_access_key": {
- "type": "string",
- "description": "The corresponding secret to the access key ID. Read more here",
- "title": "R2 Access Key",
- "airbyte_secret": true,
- "examples": [ "a012345678910ABCDEFGHAbCdEfGhEXAMPLEKEY" ],
- "order": 2
- },
- "s3_bucket_name": {
- "title": "R2 Bucket Name",
- "type": "string",
- "description": "The name of the R2 bucket. Read more here.",
- "examples": [ "r2_sync" ],
- "order": 3
- },
- "s3_bucket_path": {
- "title": "R2 Bucket Path",
- "description": "Directory under the R2 bucket where data will be written.",
- "type": "string",
- "examples": [ "data_sync/test" ],
- "order": 4
- },
- "format": {
- "title": "Output Format",
- "type": "object",
- "description": "Format of the data output. See here for more details",
- "oneOf": [ {
- "title": "Avro: Apache Avro",
- "required": [ "format_type", "compression_codec" ],
- "properties": {
- "format_type": {
- "title": "Format Type",
- "type": "string",
- "enum": [ "Avro" ],
- "default": "Avro",
- "order": 0
- },
- "compression_codec": {
- "title": "Compression Codec",
- "description": "The compression algorithm used to compress data. Default to no compression.",
- "type": "object",
- "oneOf": [ {
- "title": "No Compression",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "no compression" ],
- "default": "no compression"
- }
- }
- }, {
- "title": "Deflate",
- "required": [ "codec", "compression_level" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "Deflate" ],
- "default": "Deflate"
- },
- "compression_level": {
- "title": "Deflate Level",
- "description": "0: no compression & fastest, 9: best compression & slowest.",
- "type": "integer",
- "default": 0,
- "minimum": 0,
- "maximum": 9
- }
- }
- }, {
- "title": "bzip2",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "bzip2" ],
- "default": "bzip2"
- }
- }
- }, {
- "title": "xz",
- "required": [ "codec", "compression_level" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "xz" ],
- "default": "xz"
- },
- "compression_level": {
- "title": "Compression Level",
- "description": "See here for details.",
- "type": "integer",
- "default": 6,
- "minimum": 0,
- "maximum": 9
- }
- }
- }, {
- "title": "zstandard",
- "required": [ "codec", "compression_level" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "zstandard" ],
- "default": "zstandard"
- },
- "compression_level": {
- "title": "Compression Level",
- "description": "Negative levels are 'fast' modes akin to lz4 or snappy, levels above 9 are generally for archival purposes, and levels above 18 use a lot of memory.",
- "type": "integer",
- "default": 3,
- "minimum": -5,
- "maximum": 22
- },
- "include_checksum": {
- "title": "Include Checksum",
- "description": "If true, include a checksum with each data block.",
- "type": "boolean",
- "default": false
- }
- }
- }, {
- "title": "snappy",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "snappy" ],
- "default": "snappy"
- }
- }
- } ],
- "order": 1
- }
- }
- }, {
- "title": "CSV: Comma-Separated Values",
- "required": [ "format_type", "flattening" ],
- "properties": {
- "format_type": {
- "title": "Format Type",
- "type": "string",
- "enum": [ "CSV" ],
- "default": "CSV"
- },
- "flattening": {
- "type": "string",
- "title": "Normalization (Flattening)",
- "description": "Whether the input json data should be normalized (flattened) in the output CSV. Please refer to docs for details.",
- "default": "No flattening",
- "enum": [ "No flattening", "Root level flattening" ]
- },
- "compression": {
- "title": "Compression",
- "type": "object",
- "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".csv.gz\").",
- "oneOf": [ {
- "title": "No Compression",
- "requires": [ "compression_type" ],
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "No Compression" ],
- "default": "No Compression"
- }
- }
- }, {
- "title": "GZIP",
- "requires": [ "compression_type" ],
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "GZIP" ],
- "default": "GZIP"
- }
- }
- } ]
- }
- }
- }, {
- "title": "JSON Lines: Newline-delimited JSON",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "title": "Format Type",
- "type": "string",
- "enum": [ "JSONL" ],
- "default": "JSONL"
- },
- "compression": {
- "title": "Compression",
- "type": "object",
- "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".jsonl.gz\").",
- "oneOf": [ {
- "title": "No Compression",
- "requires": "compression_type",
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "No Compression" ],
- "default": "No Compression"
- }
- }
- }, {
- "title": "GZIP",
- "requires": "compression_type",
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "GZIP" ],
- "default": "GZIP"
- }
- }
- } ]
- }
- }
- } ],
- "order": 5
- },
- "s3_path_format": {
- "title": "R2 Path Format",
- "description": "Format string on how data will be organized inside the R2 bucket directory. Read more here",
- "type": "string",
- "examples": [ "${NAMESPACE}/${STREAM_NAME}/${YEAR}_${MONTH}_${DAY}_${EPOCH}_" ],
- "order": 6
- },
- "file_name_pattern": {
- "type": "string",
- "description": "The pattern allows you to set the file-name format for the R2 staging file(s)",
- "title": "R2 Filename pattern",
- "examples": [ "{date}", "{date:yyyy_MM}", "{timestamp}", "{part_number}", "{sync_id}" ],
- "order": 7
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "3eb4d99c-11fa-4561-a259-fc88e0c2f8f4",
- "name": "Convex",
- "dockerRepository": "airbyte/destination-convex",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.io/integrations/destinations/convex",
- "icon": "convex.svg",
- "spec": {
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Convex",
- "type": "object",
- "required": [ "deployment_url", "access_key" ],
- "properties": {
- "deployment_url": {
- "type": "string",
- "title": "Deployment Url",
- "examples": [ "https://murky-swan-635.convex.cloud", "https://cluttered-owl-337.convex.cloud" ]
- },
- "access_key": {
- "type": "string",
- "title": "Access Key",
- "description": "API access key used to retrieve data from Convex.",
- "airbyte_secret": true
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "4528e960-6f7b-4412-8555-7e0097e1da17",
- "name": "Starburst Galaxy",
- "dockerRepository": "airbyte/destination-starburst-galaxy",
- "dockerImageTag": "0.0.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/starburst-galaxy",
- "icon": "starburst-galaxy.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/starburst-galaxy",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Starburst Galaxy Destination Spec",
- "type": "object",
- "required": [ "accept_terms", "server_hostname", "username", "password", "catalog", "staging_object_store" ],
- "properties": {
- "accept_terms": {
- "title": "Agree to the Starburst Galaxy terms & conditions",
- "type": "boolean",
- "description": "You must agree to the Starburst Galaxy terms & conditions to use this connector.",
- "default": false,
- "order": 1
- },
- "server_hostname": {
- "title": "Hostname",
- "type": "string",
- "description": "Starburst Galaxy cluster hostname.",
- "examples": [ "abc-12345678-wxyz.trino.galaxy-demo.io" ],
- "order": 2
- },
- "port": {
- "title": "Port",
- "type": "string",
- "description": "Starburst Galaxy cluster port.",
- "default": "443",
- "examples": [ "443" ],
- "order": 3
- },
- "username": {
- "title": "User",
- "type": "string",
- "description": "Starburst Galaxy user.",
- "examples": [ "user@example.com" ],
- "order": 4
- },
- "password": {
- "title": "Password",
- "type": "string",
- "description": "Starburst Galaxy password for the specified user.",
- "examples": [ "password" ],
- "airbyte_secret": true,
- "order": 5
- },
- "catalog": {
- "title": "Amazon S3 catalog",
- "type": "string",
- "description": "Name of the Starburst Galaxy Amazon S3 catalog.",
- "examples": [ "sample_s3_catalog" ],
- "order": 6
- },
- "catalog_schema": {
- "title": "Amazon S3 catalog schema",
- "type": "string",
- "description": "The default Starburst Galaxy Amazon S3 catalog schema where tables are written to if the source does not specify a namespace. Defaults to \"public\".",
- "default": "public",
- "examples": [ "public" ],
- "order": 7
- },
- "staging_object_store": {
- "title": "Staging object store",
- "type": "object",
- "description": "Temporary storage on which temporary Iceberg table is created.",
- "oneOf": [ {
- "title": "Amazon S3",
- "required": [ "object_store_type", "s3_bucket_name", "s3_bucket_path", "s3_bucket_region", "s3_access_key_id", "s3_secret_access_key" ],
- "properties": {
- "object_store_type": {
- "type": "string",
- "enum": [ "S3" ],
- "default": "S3",
- "order": 1
- },
- "s3_bucket_name": {
- "title": "S3 bucket name",
- "type": "string",
- "description": "Name of the S3 bucket",
- "examples": [ "airbyte_staging" ],
- "order": 1
- },
- "s3_bucket_path": {
- "title": "S3 bucket path",
- "type": "string",
- "description": "Directory in the S3 bucket where staging data is stored.",
- "examples": [ "temp_airbyte__sync/test" ],
- "order": 2
- },
- "s3_bucket_region": {
- "title": "S3 bucket region",
- "type": "string",
- "default": "us-east-1",
- "description": "The region of the S3 bucket.",
- "enum": [ "ap-northeast-1", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "eu-central-1", "eu-west-1", "eu-west-2", "eu-west-3", "us-east-1", "us-east-2", "us-west-1", "us-west-2" ],
- "order": 3
- },
- "s3_access_key_id": {
- "title": "Access key",
- "type": "string",
- "description": "Access key with access to the bucket. Airbyte requires read and write permissions to a given bucket.",
- "examples": [ "A012345678910EXAMPLE" ],
- "airbyte_secret": true,
- "order": 4
- },
- "s3_secret_access_key": {
- "title": "Secret key",
- "type": "string",
- "description": "Secret key used with the specified access key.",
- "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ],
- "airbyte_secret": true,
- "order": 5
- }
- }
- } ],
- "order": 8
- },
- "purge_staging_table": {
- "title": "Purge staging Iceberg table",
- "type": "boolean",
- "description": "Defaults to 'true'. Switch to 'false' for debugging purposes.",
- "default": true,
- "order": 9
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "072d5540-f236-4294-ba7c-ade8fd918496",
- "name": "Databricks Lakehouse",
- "dockerRepository": "airbyte/destination-databricks",
- "dockerImageTag": "1.0.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/databricks",
- "icon": "databricks.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/databricks",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Databricks Lakehouse Destination Spec",
- "type": "object",
- "required": [ "accept_terms", "databricks_server_hostname", "databricks_http_path", "databricks_personal_access_token", "data_source" ],
- "properties": {
- "accept_terms": {
- "title": "Agree to the Databricks JDBC Driver Terms & Conditions",
- "type": "boolean",
- "description": "You must agree to the Databricks JDBC Driver Terms & Conditions to use this connector.",
- "default": false,
- "order": 1
- },
- "databricks_server_hostname": {
- "title": "Server Hostname",
- "type": "string",
- "description": "Databricks Cluster Server Hostname.",
- "examples": [ "abc-12345678-wxyz.cloud.databricks.com" ],
- "order": 2
- },
- "databricks_http_path": {
- "title": "HTTP Path",
- "type": "string",
- "description": "Databricks Cluster HTTP Path.",
- "examples": [ "sql/protocolvx/o/1234567489/0000-1111111-abcd90" ],
- "order": 3
- },
- "databricks_port": {
- "title": "Port",
- "type": "string",
- "description": "Databricks Cluster Port.",
- "default": "443",
- "examples": [ "443" ],
- "order": 4
- },
- "databricks_personal_access_token": {
- "title": "Access Token",
- "type": "string",
- "description": "Databricks Personal Access Token for making authenticated requests.",
- "examples": [ "dapi0123456789abcdefghij0123456789AB" ],
- "airbyte_secret": true,
- "order": 5
- },
- "database": {
- "title": "Databricks catalog",
- "description": "The name of the catalog. If not specified otherwise, the \"hive_metastore\" will be used.",
- "type": "string",
- "order": 6
- },
- "schema": {
- "title": "Default Schema",
- "description": "The default schema tables are written. If not specified otherwise, the \"default\" will be used.",
- "type": "string",
- "examples": [ "default" ],
- "default": "default",
- "order": 7
- },
- "data_source": {
- "title": "Data Source",
- "type": "object",
- "description": "Storage on which the delta lake is built.",
- "default": "MANAGED_TABLES_STORAGE",
- "order": 8,
- "oneOf": [ {
- "title": "[Recommended] Managed tables",
- "required": [ "data_source_type" ],
- "properties": {
- "data_source_type": {
- "type": "string",
- "const": "MANAGED_TABLES_STORAGE",
- "order": 0
- }
- }
- }, {
- "title": "Amazon S3",
- "required": [ "data_source_type", "s3_bucket_name", "s3_bucket_path", "s3_bucket_region", "s3_access_key_id", "s3_secret_access_key" ],
- "properties": {
- "data_source_type": {
- "type": "string",
- "const": "S3_STORAGE",
- "order": 1
- },
- "s3_bucket_name": {
- "title": "S3 Bucket Name",
- "type": "string",
- "description": "The name of the S3 bucket to use for intermittent staging of the data.",
- "examples": [ "airbyte.staging" ],
- "order": 2
- },
- "s3_bucket_path": {
- "title": "S3 Bucket Path",
- "type": "string",
- "description": "The directory under the S3 bucket where data will be written.",
- "examples": [ "data_sync/test" ],
- "order": 3
- },
- "s3_bucket_region": {
- "title": "S3 Bucket Region",
- "type": "string",
- "default": "",
- "description": "The region of the S3 staging bucket to use if utilising a copy strategy.",
- "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
- "order": 4
- },
- "s3_access_key_id": {
- "type": "string",
- "description": "The Access Key Id granting allow one to access the above S3 staging bucket. Airbyte requires Read and Write permissions to the given bucket.",
- "title": "S3 Access Key ID",
- "examples": [ "A012345678910EXAMPLE" ],
- "airbyte_secret": true,
- "order": 5
- },
- "s3_secret_access_key": {
- "title": "S3 Secret Access Key",
- "type": "string",
- "description": "The corresponding secret to the above access key id.",
- "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ],
- "airbyte_secret": true,
- "order": 6
- },
- "file_name_pattern": {
- "type": "string",
- "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
- "title": "S3 Filename pattern",
- "examples": [ "{date}", "{date:yyyy_MM}", "{timestamp}", "{part_number}", "{sync_id}" ],
- "order": 7
- }
- }
- }, {
- "title": "Azure Blob Storage",
- "required": [ "data_source_type", "azure_blob_storage_account_name", "azure_blob_storage_container_name", "azure_blob_storage_sas_token" ],
- "properties": {
- "data_source_type": {
- "type": "string",
- "const": "AZURE_BLOB_STORAGE",
- "order": 0
- },
- "azure_blob_storage_endpoint_domain_name": {
- "title": "Endpoint Domain Name",
- "type": "string",
- "default": "blob.core.windows.net",
- "description": "This is Azure Blob Storage endpoint domain name. Leave default value (or leave it empty if run container from command line) to use Microsoft native from example.",
- "examples": [ "blob.core.windows.net" ],
- "order": 1
- },
- "azure_blob_storage_account_name": {
- "title": "Azure Blob Storage Account Name",
- "type": "string",
- "description": "The account's name of the Azure Blob Storage.",
- "examples": [ "airbyte5storage" ],
- "order": 2
- },
- "azure_blob_storage_container_name": {
- "title": "Azure Blob Storage Container Name",
- "type": "string",
- "description": "The name of the Azure blob storage container.",
- "examples": [ "airbytetestcontainername" ],
- "order": 3
- },
- "azure_blob_storage_sas_token": {
- "title": "SAS Token",
- "type": "string",
- "airbyte_secret": true,
- "description": "Shared access signature (SAS) token to grant limited access to objects in your storage account.",
- "examples": [ "?sv=2016-05-31&ss=b&srt=sco&sp=rwdl&se=2018-06-27T10:05:50Z&st=2017-06-27T02:05:50Z&spr=https,http&sig=bgqQwoXwxzuD2GJfagRg7VOS8hzNr3QLT7rhS8OFRLQ%3D" ],
- "order": 4
- }
- }
- } ]
- },
- "purge_staging_data": {
- "title": "Purge Staging Files and Tables",
- "type": "boolean",
- "description": "Default to 'true'. Switch it to 'false' for debugging purpose.",
- "default": true,
- "order": 9
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "8ccd8909-4e99-4141-b48d-4984b70b2d89",
- "name": "DynamoDB",
- "dockerRepository": "airbyte/destination-dynamodb",
- "dockerImageTag": "0.1.7",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/dynamodb",
- "icon": "dynamodb.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/dynamodb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "DynamoDB Destination Spec",
- "type": "object",
- "required": [ "dynamodb_table_name_prefix", "dynamodb_region", "access_key_id", "secret_access_key" ],
- "additionalProperties": false,
- "properties": {
- "dynamodb_endpoint": {
- "title": "Endpoint",
- "type": "string",
- "default": "",
- "description": "This is your DynamoDB endpoint url.(if you are working with AWS DynamoDB, just leave empty).",
- "examples": [ "http://localhost:9000" ]
- },
- "dynamodb_table_name_prefix": {
- "title": "Table name prefix",
- "type": "string",
- "description": "The prefix to use when naming DynamoDB tables.",
- "examples": [ "airbyte_sync" ]
- },
- "dynamodb_region": {
- "title": "DynamoDB Region",
- "type": "string",
- "default": "",
- "description": "The region of the DynamoDB.",
- "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ]
- },
- "access_key_id": {
- "type": "string",
- "description": "The access key id to access the DynamoDB. Airbyte requires Read and Write permissions to the DynamoDB.",
- "title": "DynamoDB Key Id",
- "airbyte_secret": true,
- "examples": [ "A012345678910EXAMPLE" ]
- },
- "secret_access_key": {
- "type": "string",
- "description": "The corresponding secret to the access key id.",
- "title": "DynamoDB Access Key",
- "airbyte_secret": true,
- "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "2eb65e87-983a-4fd7-b3e3-9d9dc6eb8537",
- "name": "E2E Testing",
- "dockerRepository": "airbyte/destination-e2e-test",
- "dockerImageTag": "0.2.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/e2e-test",
- "icon": "airbyte.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/e2e-test",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "E2E Test Destination Spec",
- "type": "object",
- "oneOf": [ {
- "title": "Logging",
- "required": [ "type", "logging_config" ],
- "properties": {
- "type": {
- "type": "string",
- "const": "LOGGING",
- "default": "LOGGING"
- },
- "logging_config": {
- "title": "Logging Configuration",
- "type": "object",
- "description": "Configurate how the messages are logged.",
- "oneOf": [ {
- "title": "First N Entries",
- "description": "Log first N entries per stream.",
- "type": "object",
- "required": [ "logging_type", "max_entry_count" ],
- "properties": {
- "logging_type": {
- "type": "string",
- "enum": [ "FirstN" ],
- "default": "FirstN"
- },
- "max_entry_count": {
- "title": "N",
- "description": "Number of entries to log. This destination is for testing only. So it won't make sense to log infinitely. The maximum is 1,000 entries.",
- "type": "number",
- "default": 100,
- "examples": [ 100 ],
- "minimum": 1,
- "maximum": 1000
- }
- }
- }, {
- "title": "Every N-th Entry",
- "description": "For each stream, log every N-th entry with a maximum cap.",
- "type": "object",
- "required": [ "logging_type", "nth_entry_to_log", "max_entry_count" ],
- "properties": {
- "logging_type": {
- "type": "string",
- "enum": [ "EveryNth" ],
- "default": "EveryNth"
- },
- "nth_entry_to_log": {
- "title": "N",
- "description": "The N-th entry to log for each stream. N starts from 1. For example, when N = 1, every entry is logged; when N = 2, every other entry is logged; when N = 3, one out of three entries is logged.",
- "type": "number",
- "example": [ 3 ],
- "minimum": 1,
- "maximum": 1000
- },
- "max_entry_count": {
- "title": "Max Log Entries",
- "description": "Max number of entries to log. This destination is for testing only. So it won't make sense to log infinitely. The maximum is 1,000 entries.",
- "type": "number",
- "default": 100,
- "examples": [ 100 ],
- "minimum": 1,
- "maximum": 1000
- }
- }
- }, {
- "title": "Random Sampling",
- "description": "For each stream, randomly log a percentage of the entries with a maximum cap.",
- "type": "object",
- "required": [ "logging_type", "sampling_ratio", "max_entry_count" ],
- "properties": {
- "logging_type": {
- "type": "string",
- "enum": [ "RandomSampling" ],
- "default": "RandomSampling"
- },
- "sampling_ratio": {
- "title": "Sampling Ratio",
- "description": "A positive floating number smaller than 1.",
- "type": "number",
- "default": 0.001,
- "examples": [ 0.001 ],
- "minimum": 0,
- "maximum": 1
- },
- "seed": {
- "title": "Random Number Generator Seed",
- "description": "When the seed is unspecified, the current time millis will be used as the seed.",
- "type": "number",
- "examples": [ 1900 ]
- },
- "max_entry_count": {
- "title": "Max Log Entries",
- "description": "Max number of entries to log. This destination is for testing only. So it won't make sense to log infinitely. The maximum is 1,000 entries.",
- "type": "number",
- "default": 100,
- "examples": [ 100 ],
- "minimum": 1,
- "maximum": 1000
- }
- }
- } ]
- }
- }
- }, {
- "title": "Silent",
- "required": [ "type" ],
- "properties": {
- "type": {
- "type": "string",
- "const": "SILENT",
- "default": "SILENT"
- }
- }
- }, {
- "title": "Throttled",
- "required": [ "type", "millis_per_record" ],
- "properties": {
- "type": {
- "type": "string",
- "const": "THROTTLED",
- "default": "THROTTLED"
- },
- "millis_per_record": {
- "description": "Number of milli-second to pause in between records.",
- "type": "integer"
- }
- }
- }, {
- "title": "Failing",
- "required": [ "type", "num_messages" ],
- "properties": {
- "type": {
- "type": "string",
- "const": "FAILING",
- "default": "FAILING"
- },
- "num_messages": {
- "description": "Number of messages after which to fail.",
- "type": "integer"
- }
- }
- } ]
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false
- }, {
- "destinationDefinitionId": "68f351a7-2745-4bef-ad7f-996b8e51bb8c",
- "name": "ElasticSearch",
- "dockerRepository": "airbyte/destination-elasticsearch",
- "dockerImageTag": "0.1.6",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/elasticsearch",
- "icon": "elasticsearch.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/elasticsearch",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Elasticsearch Connection Configuration",
- "type": "object",
- "required": [ "endpoint" ],
- "additionalProperties": false,
- "properties": {
- "endpoint": {
- "title": "Server Endpoint",
- "type": "string",
- "description": "The full url of the Elasticsearch server"
- },
- "upsert": {
- "type": "boolean",
- "title": "Upsert Records",
- "description": "If a primary key identifier is defined in the source, an upsert will be performed using the primary key value as the elasticsearch doc id. Does not support composite primary keys.",
- "default": true
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true
- },
- "authenticationMethod": {
- "title": "Authentication Method",
- "type": "object",
- "description": "The type of authentication to be used",
- "oneOf": [ {
- "title": "None",
- "additionalProperties": false,
- "description": "No authentication will be used",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "none"
- }
- }
- }, {
- "title": "Api Key/Secret",
- "additionalProperties": false,
- "description": "Use a api key and secret combination to authenticate",
- "required": [ "method", "apiKeyId", "apiKeySecret" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "secret"
- },
- "apiKeyId": {
- "title": "API Key ID",
- "description": "The Key ID to used when accessing an enterprise Elasticsearch instance.",
- "type": "string"
- },
- "apiKeySecret": {
- "title": "API Key Secret",
- "description": "The secret associated with the API Key ID.",
- "type": "string",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Username/Password",
- "additionalProperties": false,
- "description": "Basic auth header with a username and password",
- "required": [ "method", "username", "password" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "basic"
- },
- "username": {
- "title": "Username",
- "description": "Basic auth username to access a secure Elasticsearch server",
- "type": "string"
- },
- "password": {
- "title": "Password",
- "description": "Basic auth password to access a secure Elasticsearch server",
- "type": "string",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ],
- "supportsNamespaces": true
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "bb6071d9-6f34-4766-bec2-d1d4ed81a653",
- "name": "Exasol",
- "dockerRepository": "airbyte/destination-exasol",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/exasol",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/exasol",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Exasol Destination Spec",
- "type": "object",
- "required": [ "host", "port", "username", "schema" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 8563,
- "examples": [ "8563" ],
- "order": 1
- },
- "certificateFingerprint": {
- "title": "Certificate Fingerprint",
- "description": "Fingerprint of the Exasol server's TLS certificate",
- "type": "string",
- "examples": [ "ABC123..." ],
- "order": 2
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "schema": {
- "title": "Schema Name",
- "description": "Schema Name",
- "type": "string",
- "order": 5
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol ';'. (example: key1=value1;key2=value2;key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 6
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "18081484-02a5-4662-8dba-b270b582f321",
- "name": "Firebolt",
- "dockerRepository": "airbyte/destination-firebolt",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/firebolt",
- "icon": "firebolt.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/firebolt",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Firebolt Spec",
- "type": "object",
- "required": [ "username", "password", "database" ],
- "additionalProperties": false,
- "properties": {
- "username": {
- "type": "string",
- "title": "Username",
- "description": "Firebolt email address you use to login.",
- "examples": [ "username@email.com" ],
- "order": 0
- },
- "password": {
- "type": "string",
- "title": "Password",
- "description": "Firebolt password.",
- "airbyte_secret": true,
- "order": 1
- },
- "account": {
- "type": "string",
- "title": "Account",
- "description": "Firebolt account to login."
- },
- "host": {
- "type": "string",
- "title": "Host",
- "description": "The host name of your Firebolt database.",
- "examples": [ "api.app.firebolt.io" ]
- },
- "database": {
- "type": "string",
- "title": "Database",
- "description": "The database to connect to."
- },
- "engine": {
- "type": "string",
- "title": "Engine",
- "description": "Engine name or url to connect to."
- },
- "loading_method": {
- "type": "object",
- "title": "Loading Method",
- "description": "Loading method used to select the way data will be uploaded to Firebolt",
- "oneOf": [ {
- "title": "SQL Inserts",
- "additionalProperties": false,
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "SQL"
- }
- }
- }, {
- "title": "External Table via S3",
- "additionalProperties": false,
- "required": [ "method", "s3_bucket", "s3_region", "aws_key_id", "aws_key_secret" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "S3"
- },
- "s3_bucket": {
- "type": "string",
- "title": "S3 bucket name",
- "description": "The name of the S3 bucket."
- },
- "s3_region": {
- "type": "string",
- "title": "S3 region name",
- "description": "Region name of the S3 bucket.",
- "examples": [ "us-east-1" ]
- },
- "aws_key_id": {
- "type": "string",
- "title": "AWS Key ID",
- "airbyte_secret": true,
- "description": "AWS access key granting read and write access to S3."
- },
- "aws_key_secret": {
- "type": "string",
- "title": "AWS Key Secret",
- "airbyte_secret": true,
- "description": "Corresponding secret part of the AWS Key"
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "supportsDbt": true
- }, {
- "destinationDefinitionId": "ca8f6566-e555-4b40-943a-545bf123117a",
- "name": "Google Cloud Storage (GCS)",
- "dockerRepository": "airbyte/destination-gcs",
- "dockerImageTag": "0.2.16",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/gcs",
- "icon": "googlecloudstorage.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/gcs",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "GCS Destination Spec",
- "type": "object",
- "required": [ "gcs_bucket_name", "gcs_bucket_path", "credential", "format" ],
- "properties": {
- "gcs_bucket_name": {
- "title": "GCS Bucket Name",
- "order": 1,
- "type": "string",
- "description": "You can find the bucket name in the App Engine Admin console Application Settings page, under the label Google Cloud Storage Bucket. Read more here.",
- "examples": [ "airbyte_sync" ]
- },
- "gcs_bucket_path": {
- "title": "GCS Bucket Path",
- "description": "GCS Bucket Path string Subdirectory under the above bucket to sync the data into.",
- "order": 2,
- "type": "string",
- "examples": [ "data_sync/test" ]
- },
- "gcs_bucket_region": {
- "title": "GCS Bucket Region",
- "type": "string",
- "order": 3,
- "default": "us",
- "description": "Select a Region of the GCS Bucket. Read more here.",
- "enum": [ "northamerica-northeast1", "northamerica-northeast2", "us-central1", "us-east1", "us-east4", "us-west1", "us-west2", "us-west3", "us-west4", "southamerica-east1", "southamerica-west1", "europe-central2", "europe-north1", "europe-west1", "europe-west2", "europe-west3", "europe-west4", "europe-west6", "asia-east1", "asia-east2", "asia-northeast1", "asia-northeast2", "asia-northeast3", "asia-south1", "asia-south2", "asia-southeast1", "asia-southeast2", "australia-southeast1", "australia-southeast2", "asia", "eu", "us", "asia1", "eur4", "nam4" ]
- },
- "credential": {
- "title": "Authentication",
- "description": "An HMAC key is a type of credential and can be associated with a service account or a user account in Cloud Storage. Read more here.",
- "type": "object",
- "order": 0,
- "oneOf": [ {
- "title": "HMAC Key",
- "required": [ "credential_type", "hmac_key_access_id", "hmac_key_secret" ],
- "properties": {
- "credential_type": {
- "type": "string",
- "enum": [ "HMAC_KEY" ],
- "default": "HMAC_KEY"
- },
- "hmac_key_access_id": {
- "type": "string",
- "description": "When linked to a service account, this ID is 61 characters long; when linked to a user account, it is 24 characters long. Read more here.",
- "title": "Access ID",
- "airbyte_secret": true,
- "order": 0,
- "examples": [ "1234567890abcdefghij1234" ]
- },
- "hmac_key_secret": {
- "type": "string",
- "description": "The corresponding secret for the access ID. It is a 40-character base-64 encoded string. Read more here.",
- "title": "Secret",
- "airbyte_secret": true,
- "order": 1,
- "examples": [ "1234567890abcdefghij1234567890ABCDEFGHIJ" ]
- }
- }
- } ]
- },
- "format": {
- "title": "Output Format",
- "type": "object",
- "description": "Output data format. One of the following formats must be selected - AVRO format, PARQUET format, CSV format, or JSONL format.",
- "order": 4,
- "oneOf": [ {
- "title": "Avro: Apache Avro",
- "required": [ "format_type", "compression_codec" ],
- "properties": {
- "format_type": {
- "type": "string",
- "enum": [ "Avro" ],
- "default": "Avro"
- },
- "compression_codec": {
- "title": "Compression Codec",
- "description": "The compression algorithm used to compress data. Default to no compression.",
- "type": "object",
- "oneOf": [ {
- "title": "No Compression",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "no compression" ],
- "default": "no compression"
- }
- }
- }, {
- "title": "Deflate",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "Deflate" ],
- "default": "Deflate"
- },
- "compression_level": {
- "title": "Deflate level",
- "description": "0: no compression & fastest, 9: best compression & slowest.",
- "type": "integer",
- "default": 0,
- "minimum": 0,
- "maximum": 9
- }
- }
- }, {
- "title": "bzip2",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "bzip2" ],
- "default": "bzip2"
- }
- }
- }, {
- "title": "xz",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "xz" ],
- "default": "xz"
- },
- "compression_level": {
- "title": "Compression Level",
- "description": "The presets 0-3 are fast presets with medium compression. The presets 4-6 are fairly slow presets with high compression. The default preset is 6. The presets 7-9 are like the preset 6 but use bigger dictionaries and have higher compressor and decompressor memory requirements. Unless the uncompressed size of the file exceeds 8 MiB, 16 MiB, or 32 MiB, it is waste of memory to use the presets 7, 8, or 9, respectively. Read more here for details.",
- "type": "integer",
- "default": 6,
- "minimum": 0,
- "maximum": 9
- }
- }
- }, {
- "title": "zstandard",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "zstandard" ],
- "default": "zstandard"
- },
- "compression_level": {
- "title": "Compression Level",
- "description": "Negative levels are 'fast' modes akin to lz4 or snappy, levels above 9 are generally for archival purposes, and levels above 18 use a lot of memory.",
- "type": "integer",
- "default": 3,
- "minimum": -5,
- "maximum": 22
- },
- "include_checksum": {
- "title": "Include Checksum",
- "description": "If true, include a checksum with each data block.",
- "type": "boolean",
- "default": false
- }
- }
- }, {
- "title": "snappy",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "snappy" ],
- "default": "snappy"
- }
- }
- } ]
- }
- }
- }, {
- "title": "CSV: Comma-Separated Values",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "type": "string",
- "enum": [ "CSV" ],
- "default": "CSV"
- },
- "flattening": {
- "type": "string",
- "title": "Normalization",
- "description": "Whether the input JSON data should be normalized (flattened) in the output CSV. Please refer to docs for details.",
- "default": "No flattening",
- "enum": [ "No flattening", "Root level flattening" ]
- },
- "compression": {
- "title": "Compression",
- "type": "object",
- "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".csv.gz\").",
- "oneOf": [ {
- "title": "No Compression",
- "requires": [ "compression_type" ],
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "No Compression" ],
- "default": "No Compression"
- }
- }
- }, {
- "title": "GZIP",
- "requires": [ "compression_type" ],
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "GZIP" ],
- "default": "GZIP"
- }
- }
- } ]
- }
- }
- }, {
- "title": "JSON Lines: newline-delimited JSON",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "type": "string",
- "enum": [ "JSONL" ],
- "default": "JSONL"
- },
- "compression": {
- "title": "Compression",
- "type": "object",
- "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".jsonl.gz\").",
- "oneOf": [ {
- "title": "No Compression",
- "requires": "compression_type",
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "No Compression" ],
- "default": "No Compression"
- }
- }
- }, {
- "title": "GZIP",
- "requires": "compression_type",
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "GZIP" ],
- "default": "GZIP"
- }
- }
- } ]
- }
- }
- }, {
- "title": "Parquet: Columnar Storage",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "type": "string",
- "enum": [ "Parquet" ],
- "default": "Parquet"
- },
- "compression_codec": {
- "title": "Compression Codec",
- "description": "The compression algorithm used to compress data pages.",
- "type": "string",
- "default": "UNCOMPRESSED",
- "enum": [ "UNCOMPRESSED", "SNAPPY", "GZIP", "LZO", "BROTLI", "LZ4", "ZSTD" ]
- },
- "block_size_mb": {
- "title": "Block Size (Row Group Size) (MB)",
- "description": "This is the size of a row group being buffered in memory. It limits the memory usage when writing. Larger values will improve the IO when reading, but consume more memory when writing. Default: 128 MB.",
- "type": "integer",
- "default": 128,
- "examples": [ 128 ]
- },
- "max_padding_size_mb": {
- "title": "Max Padding Size (MB)",
- "description": "Maximum size allowed as padding to align row groups. This is also the minimum size of a row group. Default: 8 MB.",
- "type": "integer",
- "default": 8,
- "examples": [ 8 ]
- },
- "page_size_kb": {
- "title": "Page Size (KB)",
- "description": "The page size is for compression. A block is composed of pages. A page is the smallest unit that must be read fully to access a single record. If this value is too small, the compression will deteriorate. Default: 1024 KB.",
- "type": "integer",
- "default": 1024,
- "examples": [ 1024 ]
- },
- "dictionary_page_size_kb": {
- "title": "Dictionary Page Size (KB)",
- "description": "There is one dictionary page per column per row group when dictionary encoding is used. The dictionary page size works like the page size but for dictionary. Default: 1024 KB.",
- "type": "integer",
- "default": 1024,
- "examples": [ 1024 ]
- },
- "dictionary_encoding": {
- "title": "Dictionary Encoding",
- "description": "Default: true.",
- "type": "boolean",
- "default": true
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ],
- "$schema": "http://json-schema.org/draft-07/schema#"
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "resourceRequirements": {
- "jobSpecific": [ {
- "jobType": "sync",
- "resourceRequirements": {
- "memory_request": "1Gi",
- "memory_limit": "1Gi"
- }
- } ]
- }
- }, {
- "destinationDefinitionId": "27dc7500-6d1b-40b1-8b07-e2f2aea3c9f4",
- "name": "Google Firestore",
- "dockerRepository": "airbyte/destination-firestore",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/firestore",
- "icon": "firestore.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/firestore",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Google Firestore",
- "type": "object",
- "required": [ "project_id" ],
- "additionalProperties": false,
- "properties": {
- "project_id": {
- "type": "string",
- "description": "The GCP project ID for the project containing the target BigQuery dataset.",
- "title": "Project ID"
- },
- "credentials_json": {
- "type": "string",
- "description": "The contents of the JSON service account key. Check out the docs if you need help generating this key. Default credentials will be used if this field is left empty.",
- "title": "Credentials JSON",
- "airbyte_secret": true
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append", "overwrite" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "356668e2-7e34-47f3-a3b0-67a8a481b692",
- "name": "Google PubSub",
- "dockerRepository": "airbyte/destination-pubsub",
- "dockerImageTag": "0.2.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/pubsub",
- "icon": "googlepubsub.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/pubsub",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Google PubSub Destination Spec",
- "type": "object",
- "required": [ "project_id", "topic_id", "credentials_json", "ordering_enabled", "batching_enabled" ],
- "additionalProperties": true,
- "properties": {
- "project_id": {
- "type": "string",
- "description": "The GCP project ID for the project containing the target PubSub.",
- "title": "Project ID"
- },
- "topic_id": {
- "type": "string",
- "description": "The PubSub topic ID in the given GCP project ID.",
- "title": "PubSub Topic ID"
- },
- "credentials_json": {
- "type": "string",
- "description": "The contents of the JSON service account key. Check out the docs if you need help generating this key.",
- "title": "Credentials JSON",
- "airbyte_secret": true
- },
- "ordering_enabled": {
- "title": "Message Ordering Enabled",
- "description": "If TRUE PubSub publisher will have message ordering enabled. Every message will have an ordering key of stream",
- "type": "boolean",
- "default": false
- },
- "batching_enabled": {
- "type": "boolean",
- "title": "Message Batching Enabled",
- "description": "If TRUE messages will be buffered instead of sending them one by one",
- "default": false
- },
- "batching_delay_threshold": {
- "type": "integer",
- "title": "Message Batching: Delay Threshold",
- "description": "Number of ms before the buffer is flushed",
- "default": 1,
- "minimum": 1
- },
- "batching_element_count_threshold": {
- "type": "integer",
- "title": "Message Batching: Element Count Threshold",
- "description": "Number of messages before the buffer is flushed",
- "default": 1,
- "minimum": 1
- },
- "batching_request_bytes_threshold": {
- "type": "integer",
- "title": "Message Batching: Request Bytes Threshold",
- "description": "Number of bytes before the buffer is flushed",
- "default": 1,
- "minimum": 1
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "9f760101-60ae-462f-9ee6-b7a9dafd454d",
- "name": "Kafka",
- "dockerRepository": "airbyte/destination-kafka",
- "dockerImageTag": "0.1.10",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/kafka",
- "icon": "kafka.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/kafka",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Kafka Destination Spec",
- "type": "object",
- "required": [ "bootstrap_servers", "topic_pattern", "protocol", "acks", "enable_idempotence", "compression_type", "batch_size", "linger_ms", "max_in_flight_requests_per_connection", "client_dns_lookup", "buffer_memory", "max_request_size", "retries", "socket_connection_setup_timeout_ms", "socket_connection_setup_timeout_max_ms", "max_block_ms", "request_timeout_ms", "delivery_timeout_ms", "send_buffer_bytes", "receive_buffer_bytes" ],
- "additionalProperties": true,
- "properties": {
- "bootstrap_servers": {
- "title": "Bootstrap Servers",
- "description": "A list of host/port pairs to use for establishing the initial connection to the Kafka cluster. The client will make use of all servers irrespective of which servers are specified here for bootstrapping—this list only impacts the initial hosts used to discover the full set of servers. This list should be in the form host1:port1,host2:port2,...
. Since these servers are just used for the initial connection to discover the full cluster membership (which may change dynamically), this list need not contain the full set of servers (you may want more than one, though, in case a server is down).",
- "type": "string",
- "examples": [ "kafka-broker1:9092,kafka-broker2:9092" ]
- },
- "topic_pattern": {
- "title": "Topic Pattern",
- "description": "Topic pattern in which the records will be sent. You can use patterns like '{namespace}' and/or '{stream}' to send the message to a specific topic based on these values. Notice that the topic name will be transformed to a standard naming convention.",
- "type": "string",
- "examples": [ "sample.topic", "{namespace}.{stream}.sample" ]
- },
- "test_topic": {
- "title": "Test Topic",
- "description": "Topic to test if Airbyte can produce messages.",
- "type": "string",
- "examples": [ "test.topic" ]
- },
- "sync_producer": {
- "title": "Sync Producer",
- "description": "Wait synchronously until the record has been sent to Kafka.",
- "type": "boolean",
- "default": false
- },
- "protocol": {
- "title": "Protocol",
- "type": "object",
- "description": "Protocol used to communicate with brokers.",
- "oneOf": [ {
- "title": "PLAINTEXT",
- "required": [ "security_protocol" ],
- "properties": {
- "security_protocol": {
- "type": "string",
- "enum": [ "PLAINTEXT" ],
- "default": "PLAINTEXT"
- }
- }
- }, {
- "title": "SASL PLAINTEXT",
- "required": [ "security_protocol", "sasl_mechanism", "sasl_jaas_config" ],
- "properties": {
- "security_protocol": {
- "type": "string",
- "enum": [ "SASL_PLAINTEXT" ],
- "default": "SASL_PLAINTEXT"
- },
- "sasl_mechanism": {
- "title": "SASL Mechanism",
- "description": "SASL mechanism used for client connections. This may be any mechanism for which a security provider is available.",
- "type": "string",
- "default": "PLAIN",
- "enum": [ "PLAIN" ]
- },
- "sasl_jaas_config": {
- "title": "SASL JAAS Config",
- "description": "JAAS login context parameters for SASL connections in the format used by JAAS configuration files.",
- "type": "string",
- "default": "",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "SASL SSL",
- "required": [ "security_protocol", "sasl_mechanism", "sasl_jaas_config" ],
- "properties": {
- "security_protocol": {
- "type": "string",
- "enum": [ "SASL_SSL" ],
- "default": "SASL_SSL"
- },
- "sasl_mechanism": {
- "title": "SASL Mechanism",
- "description": "SASL mechanism used for client connections. This may be any mechanism for which a security provider is available.",
- "type": "string",
- "default": "GSSAPI",
- "enum": [ "GSSAPI", "OAUTHBEARER", "SCRAM-SHA-256", "SCRAM-SHA-512", "PLAIN" ]
- },
- "sasl_jaas_config": {
- "title": "SASL JAAS Config",
- "description": "JAAS login context parameters for SASL connections in the format used by JAAS configuration files.",
- "type": "string",
- "default": "",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "client_id": {
- "title": "Client ID",
- "description": "An ID string to pass to the server when making requests. The purpose of this is to be able to track the source of requests beyond just ip/port by allowing a logical application name to be included in server-side request logging.",
- "type": "string",
- "examples": [ "airbyte-producer" ]
- },
- "acks": {
- "title": "ACKs",
- "description": "The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent.",
- "type": "string",
- "default": "1",
- "enum": [ "0", "1", "all" ]
- },
- "enable_idempotence": {
- "title": "Enable Idempotence",
- "description": "When set to 'true', the producer will ensure that exactly one copy of each message is written in the stream. If 'false', producer retries due to broker failures, etc., may write duplicates of the retried message in the stream.",
- "type": "boolean",
- "default": false
- },
- "compression_type": {
- "title": "Compression Type",
- "description": "The compression type for all data generated by the producer.",
- "type": "string",
- "default": "none",
- "enum": [ "none", "gzip", "snappy", "lz4", "zstd" ]
- },
- "batch_size": {
- "title": "Batch Size",
- "description": "The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition.",
- "type": "integer",
- "examples": [ 16384 ]
- },
- "linger_ms": {
- "title": "Linger ms",
- "description": "The producer groups together any records that arrive in between request transmissions into a single batched request.",
- "type": "string",
- "examples": [ 0 ]
- },
- "max_in_flight_requests_per_connection": {
- "title": "Max in Flight Requests per Connection",
- "description": "The maximum number of unacknowledged requests the client will send on a single connection before blocking. Can be greater than 1, and the maximum value supported with idempotency is 5.",
- "type": "integer",
- "examples": [ 5 ]
- },
- "client_dns_lookup": {
- "title": "Client DNS Lookup",
- "description": "Controls how the client uses DNS lookups. If set to use_all_dns_ips, connect to each returned IP address in sequence until a successful connection is established. After a disconnection, the next IP is used. Once all IPs have been used once, the client resolves the IP(s) from the hostname again. If set to resolve_canonical_bootstrap_servers_only, resolve each bootstrap address into a list of canonical names. After the bootstrap phase, this behaves the same as use_all_dns_ips. If set to default (deprecated), attempt to connect to the first IP address returned by the lookup, even if the lookup returns multiple IP addresses.",
- "type": "string",
- "default": "use_all_dns_ips",
- "enum": [ "default", "use_all_dns_ips", "resolve_canonical_bootstrap_servers_only", "use_all_dns_ips" ]
- },
- "buffer_memory": {
- "title": "Buffer Memory",
- "description": "The total bytes of memory the producer can use to buffer records waiting to be sent to the server.",
- "type": "string",
- "examples": 33554432
- },
- "max_request_size": {
- "title": "Max Request Size",
- "description": "The maximum size of a request in bytes.",
- "type": "integer",
- "examples": [ 1048576 ]
- },
- "retries": {
- "title": "Retries",
- "description": "Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error.",
- "type": "integer",
- "examples": [ 2147483647 ]
- },
- "socket_connection_setup_timeout_ms": {
- "title": "Socket Connection Setup Timeout",
- "description": "The amount of time the client will wait for the socket connection to be established.",
- "type": "string",
- "examples": [ 10000 ]
- },
- "socket_connection_setup_timeout_max_ms": {
- "title": "Socket Connection Setup Max Timeout",
- "description": "The maximum amount of time the client will wait for the socket connection to be established. The connection setup timeout will increase exponentially for each consecutive connection failure up to this maximum.",
- "type": "string",
- "examples": [ 30000 ]
- },
- "max_block_ms": {
- "title": "Max Block ms",
- "description": "The configuration controls how long the KafkaProducer's send(), partitionsFor(), initTransactions(), sendOffsetsToTransaction(), commitTransaction() and abortTransaction() methods will block.",
- "type": "string",
- "examples": [ 60000 ]
- },
- "request_timeout_ms": {
- "title": "Request Timeout",
- "description": "The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted.",
- "type": "integer",
- "examples": [ 30000 ]
- },
- "delivery_timeout_ms": {
- "title": "Delivery Timeout",
- "description": "An upper bound on the time to report success or failure after a call to 'send()' returns.",
- "type": "integer",
- "examples": [ 120000 ]
- },
- "send_buffer_bytes": {
- "title": "Send Buffer bytes",
- "description": "The size of the TCP send buffer (SO_SNDBUF) to use when sending data. If the value is -1, the OS default will be used.",
- "type": "integer",
- "examples": [ 131072 ]
- },
- "receive_buffer_bytes": {
- "title": "Receive Buffer bytes",
- "description": "The size of the TCP receive buffer (SO_RCVBUF) to use when reading data. If the value is -1, the OS default will be used.",
- "type": "integer",
- "examples": [ 32768 ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "6d1d66d4-26ab-4602-8d32-f85894b04955",
- "name": "Kinesis",
- "dockerRepository": "airbyte/destination-kinesis",
- "dockerImageTag": "0.1.5",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/kinesis",
- "icon": "kinesis.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/kinesis",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Kinesis Destination Spec",
- "type": "object",
- "required": [ "endpoint", "region", "shardCount", "accessKey", "privateKey", "bufferSize" ],
- "additionalProperties": true,
- "properties": {
- "endpoint": {
- "title": "Endpoint",
- "description": "AWS Kinesis endpoint.",
- "type": "string",
- "examples": [ "kinesis.us‑west‑1.amazonaws.com" ],
- "order": 0
- },
- "region": {
- "title": "Region",
- "description": "AWS region. Your account determines the Regions that are available to you.",
- "type": "string",
- "examples": [ "us‑west‑1" ],
- "order": 1
- },
- "shardCount": {
- "title": "Shard Count",
- "description": "Number of shards to which the data should be streamed.",
- "type": "integer",
- "default": 5,
- "order": 2
- },
- "accessKey": {
- "title": "Access Key",
- "description": "Generate the AWS Access Key for current user.",
- "airbyte_secret": true,
- "type": "string",
- "order": 3
- },
- "privateKey": {
- "title": "Private Key",
- "description": "The AWS Private Key - a string of numbers and letters that are unique for each account, also known as a \"recovery phrase\".",
- "airbyte_secret": true,
- "type": "string",
- "order": 4
- },
- "bufferSize": {
- "title": "Buffer Size",
- "description": "Buffer size for storing kinesis records before being batch streamed.",
- "type": "integer",
- "minimum": 1,
- "maximum": 500,
- "default": 100,
- "order": 5
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "8be1cf83-fde1-477f-a4ad-318d23c9f3c6",
- "name": "Local CSV",
- "dockerRepository": "airbyte/destination-csv",
- "dockerImageTag": "1.0.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-csv",
- "icon": "file-csv.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-csv",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "CSV Destination Spec",
- "type": "object",
- "required": [ "destination_path" ],
- "additionalProperties": true,
- "properties": {
- "destination_path": {
- "description": "Path to the directory where csv files will be written. The destination uses the local mount \"/local\" and any data files will be placed inside that local mount. For more information check out our docs",
- "type": "string",
- "examples": [ "/local" ]
- },
- "delimiter_type": {
- "type": "object",
- "title": "Delimiter",
- "description": "The character delimiting individual cells in the CSV data.",
- "oneOf": [ {
- "title": "Comma",
- "required": [ "delimiter" ],
- "properties": {
- "delimiter": {
- "type": "string",
- "const": "\\u002c"
- }
- }
- }, {
- "title": "Semicolon",
- "required": [ "delimiter" ],
- "properties": {
- "delimiter": {
- "type": "string",
- "const": "\\u003b"
- }
- }
- }, {
- "title": "Pipe",
- "required": [ "delimiter" ],
- "properties": {
- "delimiter": {
- "type": "string",
- "const": "\\u007c"
- }
- }
- }, {
- "title": "Tab",
- "required": [ "delimiter" ],
- "properties": {
- "delimiter": {
- "type": "string",
- "const": "\\u0009"
- }
- }
- }, {
- "title": "Space",
- "required": [ "delimiter" ],
- "properties": {
- "delimiter": {
- "type": "string",
- "const": "\\u0020"
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "a625d593-bba5-4a1c-a53d-2d246268a816",
- "name": "Local JSON",
- "dockerRepository": "airbyte/destination-local-json",
- "dockerImageTag": "0.2.11",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-json",
- "icon": "file-json.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-json",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Local Json Destination Spec",
- "type": "object",
- "required": [ "destination_path" ],
- "additionalProperties": false,
- "properties": {
- "destination_path": {
- "description": "Path to the directory where json files will be written. The files will be placed inside that local mount. For more information check out our docs",
- "title": "Destination Path",
- "type": "string",
- "examples": [ "/json_data" ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "f3802bc4-5406-4752-9e8d-01e504ca8194",
- "name": "MQTT",
- "dockerRepository": "airbyte/destination-mqtt",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mqtt",
- "icon": "mqtt.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mqtt",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "MQTT Destination Spec",
- "type": "object",
- "required": [ "broker_host", "broker_port", "use_tls", "topic_pattern", "publisher_sync", "connect_timeout", "automatic_reconnect", "clean_session", "message_retained", "message_qos" ],
- "additionalProperties": true,
- "properties": {
- "broker_host": {
- "title": "MQTT broker host",
- "description": "Host of the broker to connect to.",
- "type": "string"
- },
- "broker_port": {
- "title": "MQTT broker port",
- "description": "Port of the broker.",
- "type": "integer"
- },
- "use_tls": {
- "title": "Use TLS",
- "description": "Whether to use TLS encryption on the connection.",
- "type": "boolean",
- "default": false
- },
- "username": {
- "title": "Username",
- "description": "User name to use for the connection.",
- "type": "string"
- },
- "password": {
- "title": "Password",
- "description": "Password to use for the connection.",
- "type": "string",
- "airbyte_secret": true
- },
- "topic_pattern": {
- "title": "Topic pattern",
- "description": "Topic pattern in which the records will be sent. You can use patterns like '{namespace}' and/or '{stream}' to send the message to a specific topic based on these values. Notice that the topic name will be transformed to a standard naming convention.",
- "type": "string",
- "examples": [ "sample.topic", "{namespace}/{stream}/sample" ]
- },
- "topic_test": {
- "title": "Test topic",
- "description": "Topic to test if Airbyte can produce messages.",
- "type": "string",
- "examples": [ "test/topic" ]
- },
- "client": {
- "title": "Client ID",
- "description": "A client identifier that is unique on the server being connected to.",
- "type": "string",
- "examples": [ "airbyte-client1" ]
- },
- "publisher_sync": {
- "title": "Sync publisher",
- "description": "Wait synchronously until the record has been sent to the broker.",
- "type": "boolean",
- "default": false
- },
- "connect_timeout": {
- "title": "Connect timeout",
- "description": " Maximum time interval (in seconds) the client will wait for the network connection to the MQTT server to be established.",
- "type": "integer",
- "default": 30
- },
- "automatic_reconnect": {
- "title": "Automatic reconnect",
- "description": "Whether the client will automatically attempt to reconnect to the server if the connection is lost.",
- "type": "boolean",
- "default": true
- },
- "clean_session": {
- "title": "Clean session",
- "description": "Whether the client and server should remember state across restarts and reconnects.",
- "type": "boolean",
- "default": true
- },
- "message_retained": {
- "title": "Message retained",
- "description": "Whether or not the publish message should be retained by the messaging engine.",
- "type": "boolean",
- "default": false
- },
- "message_qos": {
- "title": "Message QoS",
- "description": "Quality of service used for each message to be delivered.",
- "default": "AT_LEAST_ONCE",
- "enum": [ "AT_MOST_ONCE", "AT_LEAST_ONCE", "EXACTLY_ONCE" ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "d4353156-9217-4cad-8dd7-c108fd4f74cf",
- "name": "MS SQL Server",
- "dockerRepository": "airbyte/destination-mssql",
- "dockerImageTag": "0.1.23",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mssql",
- "icon": "mssql.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mssql",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "MS SQL Server Destination Spec",
- "type": "object",
- "required": [ "host", "port", "username", "database", "schema" ],
- "properties": {
- "host": {
- "title": "Host",
- "description": "The host name of the MSSQL database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "The port of the MSSQL database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 1433,
- "examples": [ "1433" ],
- "order": 1
- },
- "database": {
- "title": "DB Name",
- "description": "The name of the MSSQL database.",
- "type": "string",
- "order": 2
- },
- "schema": {
- "title": "Default Schema",
- "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
- "type": "string",
- "examples": [ "public" ],
- "default": "public",
- "order": 3
- },
- "username": {
- "title": "User",
- "description": "The username which is used to access the database.",
- "type": "string",
- "order": 4
- },
- "password": {
- "title": "Password",
- "description": "The password associated with this username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 5
- },
- "jdbc_url_params": {
- "title": "JDBC URL Params",
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "type": "string",
- "order": 6
- },
- "ssl_method": {
- "title": "SSL Method",
- "type": "object",
- "description": "The encryption method which is used to communicate with the database.",
- "order": 7,
- "oneOf": [ {
- "title": "Unencrypted",
- "description": "The data transfer will not be encrypted.",
- "required": [ "ssl_method" ],
- "type": "object",
- "properties": {
- "ssl_method": {
- "type": "string",
- "const": "unencrypted",
- "enum": [ "unencrypted" ],
- "default": "unencrypted"
- }
- }
- }, {
- "title": "Encrypted (trust server certificate)",
- "description": "Use the certificate provided by the server without verification. (For testing purposes only!)",
- "required": [ "ssl_method" ],
- "type": "object",
- "properties": {
- "ssl_method": {
- "type": "string",
- "const": "encrypted_trust_server_certificate",
- "enum": [ "encrypted_trust_server_certificate" ],
- "default": "encrypted_trust_server_certificate"
- }
- }
- }, {
- "title": "Encrypted (verify certificate)",
- "description": "Verify and use the certificate provided by the server.",
- "required": [ "ssl_method", "trustStoreName", "trustStorePassword" ],
- "type": "object",
- "properties": {
- "ssl_method": {
- "type": "string",
- "const": "encrypted_verify_certificate",
- "enum": [ "encrypted_verify_certificate" ],
- "default": "encrypted_verify_certificate"
- },
- "hostNameInCertificate": {
- "title": "Host Name In Certificate",
- "type": "string",
- "description": "Specifies the host name of the server. The value of this property must match the subject property of the certificate.",
- "order": 8
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "normalizationConfig": {
- "normalizationRepository": "airbyte/normalization-mssql",
- "normalizationTag": "0.4.0",
- "normalizationIntegrationType": "mssql"
- },
- "supportsDbt": true
- }, {
- "destinationDefinitionId": "af7c921e-5892-4ff2-b6c1-4a5ab258fb7e",
- "name": "MeiliSearch",
- "dockerRepository": "airbyte/destination-meilisearch",
- "dockerImageTag": "1.0.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/meilisearch",
- "icon": "meilisearch.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/meilisearch",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Meilisearch",
- "type": "object",
- "required": [ "host" ],
- "additionalProperties": false,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the MeiliSearch instance.",
- "type": "string",
- "order": 0
- },
- "api_key": {
- "title": "API Key",
- "airbyte_secret": true,
- "description": "MeiliSearch API Key. See the docs for more information on how to obtain this key.",
- "type": "string",
- "order": 1
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "8b746512-8c2e-6ac1-4adc-b59faafd473c",
- "name": "MongoDB",
- "dockerRepository": "airbyte/destination-mongodb",
- "dockerImageTag": "0.1.9",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mongodb",
- "icon": "mongodb.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mongodb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "MongoDB Destination Spec",
- "type": "object",
- "required": [ "database", "auth_type" ],
- "properties": {
- "instance_type": {
- "description": "MongoDb instance to connect to. For MongoDB Atlas and Replica Set TLS connection is used by default.",
- "title": "MongoDb Instance Type",
- "type": "object",
- "order": 0,
- "oneOf": [ {
- "title": "Standalone MongoDb Instance",
- "required": [ "instance", "host", "port" ],
- "properties": {
- "instance": {
- "type": "string",
- "enum": [ "standalone" ],
- "default": "standalone"
- },
- "host": {
- "title": "Host",
- "type": "string",
- "description": "The Host of a Mongo database to be replicated.",
- "order": 0
- },
- "port": {
- "title": "Port",
- "type": "integer",
- "description": "The Port of a Mongo database to be replicated.",
- "minimum": 0,
- "maximum": 65536,
- "default": 27017,
- "examples": [ "27017" ],
- "order": 1
- },
- "tls": {
- "title": "TLS Connection",
- "type": "boolean",
- "description": "Indicates whether TLS encryption protocol will be used to connect to MongoDB. It is recommended to use TLS connection if possible. For more information see documentation.",
- "default": false,
- "order": 2
- }
- }
- }, {
- "title": "Replica Set",
- "required": [ "instance", "server_addresses" ],
- "properties": {
- "instance": {
- "type": "string",
- "enum": [ "replica" ],
- "default": "replica"
- },
- "server_addresses": {
- "title": "Server addresses",
- "type": "string",
- "description": "The members of a replica set. Please specify `host`:`port` of each member seperated by comma.",
- "examples": [ "host1:27017,host2:27017,host3:27017" ],
- "order": 0
- },
- "replica_set": {
- "title": "Replica Set",
- "type": "string",
- "description": "A replica set name.",
- "order": 1
- }
- }
- }, {
- "title": "MongoDB Atlas",
- "required": [ "instance", "cluster_url" ],
- "properties": {
- "instance": {
- "type": "string",
- "enum": [ "atlas" ],
- "default": "atlas"
- },
- "cluster_url": {
- "title": "Cluster URL",
- "type": "string",
- "description": "URL of a cluster to connect to.",
- "order": 0
- }
- }
- } ]
- },
- "database": {
- "title": "DB Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 2
- },
- "auth_type": {
- "title": "Authorization type",
- "type": "object",
- "description": "Authorization type.",
- "oneOf": [ {
- "title": "None",
- "description": "None.",
- "required": [ "authorization" ],
- "type": "object",
- "properties": {
- "authorization": {
- "type": "string",
- "const": "none"
- }
- }
- }, {
- "title": "Login/Password",
- "description": "Login/Password.",
- "required": [ "authorization", "username", "password" ],
- "type": "object",
- "properties": {
- "authorization": {
- "type": "string",
- "const": "login/password"
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 1
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 2
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "ca81ee7c-3163-4246-af40-094cc31e5e42",
- "name": "MySQL",
- "dockerRepository": "airbyte/destination-mysql",
- "dockerImageTag": "0.1.20",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mysql",
- "icon": "mysql.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mysql",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "MySQL Destination Spec",
- "type": "object",
- "required": [ "host", "port", "username", "database" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 3306,
- "examples": [ "3306" ],
- "order": 1
- },
- "database": {
- "title": "DB Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 2
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL.",
- "type": "boolean",
- "default": true,
- "order": 5
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 6
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "normalizationConfig": {
- "normalizationRepository": "airbyte/normalization-mysql",
- "normalizationTag": "0.4.0",
- "normalizationIntegrationType": "mysql"
- },
- "supportsDbt": true
- }, {
- "destinationDefinitionId": "3986776d-2319-4de9-8af8-db14c0996e72",
- "name": "Oracle",
- "dockerRepository": "airbyte/destination-oracle",
- "dockerImageTag": "0.1.19",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/oracle",
- "icon": "oracle.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/oracle",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Oracle Destination Spec",
- "type": "object",
- "required": [ "host", "port", "username", "sid" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "The hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "The port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 1521,
- "examples": [ "1521" ],
- "order": 1
- },
- "sid": {
- "title": "SID",
- "description": "The System Identifier uniquely distinguishes the instance from any other instance on the same computer.",
- "type": "string",
- "order": 2
- },
- "username": {
- "title": "User",
- "description": "The username to access the database. This user must have CREATE USER privileges in the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "The password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 5
- },
- "schema": {
- "title": "Default Schema",
- "description": "The default schema is used as the target schema for all statements issued from the connection that do not explicitly specify a schema name. The usual value for this field is \"airbyte\". In Oracle, schemas and users are the same thing, so the \"user\" parameter is used as the login credentials and this is used for the default Airbyte message schema.",
- "type": "string",
- "examples": [ "airbyte" ],
- "default": "airbyte",
- "order": 6
- },
- "encryption": {
- "title": "Encryption",
- "type": "object",
- "description": "The encryption method which is used when communicating with the database.",
- "order": 7,
- "oneOf": [ {
- "title": "Unencrypted",
- "description": "Data transfer will not be encrypted.",
- "required": [ "encryption_method" ],
- "properties": {
- "encryption_method": {
- "type": "string",
- "const": "unencrypted",
- "enum": [ "unencrypted" ],
- "default": "unencrypted"
- }
- }
- }, {
- "title": "Native Network Encryption (NNE)",
- "description": "The native network encryption gives you the ability to encrypt database connections, without the configuration overhead of TCP/IP and SSL/TLS and without the need to open and listen on different ports.",
- "required": [ "encryption_method" ],
- "properties": {
- "encryption_method": {
- "type": "string",
- "const": "client_nne",
- "enum": [ "client_nne" ],
- "default": "client_nne"
- },
- "encryption_algorithm": {
- "type": "string",
- "description": "This parameter defines the database encryption algorithm.",
- "title": "Encryption Algorithm",
- "default": "AES256",
- "enum": [ "AES256", "RC4_56", "3DES168" ]
- }
- }
- }, {
- "title": "TLS Encrypted (verify certificate)",
- "description": "Verify and use the certificate provided by the server.",
- "required": [ "encryption_method", "ssl_certificate" ],
- "properties": {
- "encryption_method": {
- "type": "string",
- "const": "encrypted_verify_certificate",
- "enum": [ "encrypted_verify_certificate" ],
- "default": "encrypted_verify_certificate"
- },
- "ssl_certificate": {
- "title": "SSL PEM file",
- "description": "Privacy Enhanced Mail (PEM) files are concatenated certificate containers frequently used in certificate installations.",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "normalizationConfig": {
- "normalizationRepository": "airbyte/normalization-oracle",
- "normalizationTag": "0.4.0",
- "normalizationIntegrationType": "oracle"
- },
- "supportsDbt": true
- }, {
- "destinationDefinitionId": "25c5221d-dce2-4163-ade9-739ef790f503",
- "name": "Postgres",
- "dockerRepository": "airbyte/destination-postgres",
- "dockerImageTag": "0.3.27",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/postgres",
- "icon": "postgresql.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/postgres",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Postgres Destination Spec",
- "type": "object",
- "required": [ "host", "port", "username", "database", "schema" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 5432,
- "examples": [ "5432" ],
- "order": 1
- },
- "database": {
- "title": "DB Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 2
- },
- "schema": {
- "title": "Default Schema",
- "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
- "type": "string",
- "examples": [ "public" ],
- "default": "public",
- "order": 3
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 4
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 5
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL. When activating SSL, please select one of the connection modes.",
- "type": "boolean",
- "default": false,
- "order": 6
- },
- "ssl_mode": {
- "title": "SSL modes",
- "description": "SSL connection modes. \n disable - Chose this mode to disable encryption of communication between Airbyte and destination database\n allow - Chose this mode to enable encryption only when required by the source database\n prefer - Chose this mode to allow unencrypted connection only if the source database does not support encryption\n require - Chose this mode to always require encryption. If the source database server does not support encryption, connection will fail\n verify-ca - Chose this mode to always require encryption and to verify that the source database server has a valid SSL certificate\n verify-full - This is the most secure mode. Chose this mode to always require encryption and to verify the identity of the source database server\n See more information - in the docs.",
- "type": "object",
- "order": 7,
- "oneOf": [ {
- "title": "disable",
- "additionalProperties": false,
- "description": "Disable SSL.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "disable",
- "enum": [ "disable" ],
- "default": "disable",
- "order": 0
- }
- }
- }, {
- "title": "allow",
- "additionalProperties": false,
- "description": "Allow SSL mode.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "allow",
- "enum": [ "allow" ],
- "default": "allow",
- "order": 0
- }
- }
- }, {
- "title": "prefer",
- "additionalProperties": false,
- "description": "Prefer SSL mode.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "prefer",
- "enum": [ "prefer" ],
- "default": "prefer",
- "order": 0
- }
- }
- }, {
- "title": "require",
- "additionalProperties": false,
- "description": "Require SSL mode.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "require",
- "enum": [ "require" ],
- "default": "require",
- "order": 0
- }
- }
- }, {
- "title": "verify-ca",
- "additionalProperties": false,
- "description": "Verify-ca SSL mode.",
- "required": [ "mode", "ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-ca",
- "enum": [ "verify-ca" ],
- "default": "verify-ca",
- "order": 0
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- },
- "client_key_password": {
- "type": "string",
- "title": "Client key password",
- "description": "Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- }, {
- "title": "verify-full",
- "additionalProperties": false,
- "description": "Verify-full SSL mode.",
- "required": [ "mode", "ca_certificate", "client_certificate", "client_key" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-full",
- "enum": [ "verify-full" ],
- "default": "verify-full",
- "order": 0
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- },
- "client_certificate": {
- "type": "string",
- "title": "Client certificate",
- "description": "Client certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 2
- },
- "client_key": {
- "type": "string",
- "title": "Client key",
- "description": "Client key",
- "airbyte_secret": true,
- "multiline": true,
- "order": 3
- },
- "client_key_password": {
- "type": "string",
- "title": "Client key password",
- "description": "Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 8
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "normalizationConfig": {
- "normalizationRepository": "airbyte/normalization",
- "normalizationTag": "0.4.0",
- "normalizationIntegrationType": "postgres"
- },
- "supportsDbt": true
- }, {
- "destinationDefinitionId": "2340cbba-358e-11ec-8d3d-0242ac130203",
- "name": "Pulsar",
- "dockerRepository": "airbyte/destination-pulsar",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/pulsar",
- "icon": "pulsar.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/pulsar",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Pulsar Destination Spec",
- "type": "object",
- "required": [ "brokers", "use_tls", "topic_type", "topic_tenant", "topic_namespace", "topic_pattern", "compression_type", "send_timeout_ms", "max_pending_messages", "max_pending_messages_across_partitions", "batching_enabled", "batching_max_messages", "batching_max_publish_delay", "block_if_queue_full" ],
- "additionalProperties": true,
- "properties": {
- "brokers": {
- "title": "Pulsar brokers",
- "description": "A list of host/port pairs to use for establishing the initial connection to the Pulsar cluster.",
- "type": "string",
- "examples": [ "broker1:6650,broker2:6650" ]
- },
- "use_tls": {
- "title": "Use TLS",
- "description": "Whether to use TLS encryption on the connection.",
- "type": "boolean",
- "default": false
- },
- "topic_type": {
- "title": "Topic type",
- "description": "It identifies type of topic. Pulsar supports two kind of topics: persistent and non-persistent. In persistent topic, all messages are durably persisted on disk (that means on multiple disks unless the broker is standalone), whereas non-persistent topic does not persist message into storage disk.",
- "type": "string",
- "default": "persistent",
- "enum": [ "persistent", "non-persistent" ]
- },
- "topic_tenant": {
- "title": "Topic tenant",
- "description": "The topic tenant within the instance. Tenants are essential to multi-tenancy in Pulsar, and spread across clusters.",
- "type": "string",
- "default": "public",
- "examples": [ "public" ]
- },
- "topic_namespace": {
- "title": "Topic namespace",
- "description": "The administrative unit of the topic, which acts as a grouping mechanism for related topics. Most topic configuration is performed at the namespace level. Each tenant has one or multiple namespaces.",
- "type": "string",
- "default": "default",
- "examples": [ "default" ]
- },
- "topic_pattern": {
- "title": "Topic pattern",
- "description": "Topic pattern in which the records will be sent. You can use patterns like '{namespace}' and/or '{stream}' to send the message to a specific topic based on these values. Notice that the topic name will be transformed to a standard naming convention.",
- "type": "string",
- "examples": [ "sample.topic", "{namespace}.{stream}.sample" ]
- },
- "topic_test": {
- "title": "Test topic",
- "description": "Topic to test if Airbyte can produce messages.",
- "type": "string",
- "examples": [ "test.topic" ]
- },
- "producer_name": {
- "title": "Producer name",
- "description": "Name for the producer. If not filled, the system will generate a globally unique name which can be accessed with.",
- "type": "string",
- "examples": [ "airbyte-producer" ]
- },
- "producer_sync": {
- "title": "Sync producer",
- "description": "Wait synchronously until the record has been sent to Pulsar.",
- "type": "boolean",
- "default": false
- },
- "compression_type": {
- "title": "Compression type",
- "description": "Compression type for the producer.",
- "type": "string",
- "default": "NONE",
- "enum": [ "NONE", "LZ4", "ZLIB", "ZSTD", "SNAPPY" ]
- },
- "send_timeout_ms": {
- "title": "Message send timeout",
- "description": "If a message is not acknowledged by a server before the send-timeout expires, an error occurs (in ms).",
- "type": "integer",
- "default": 30000
- },
- "max_pending_messages": {
- "title": "Max pending messages",
- "description": "The maximum size of a queue holding pending messages.",
- "type": "integer",
- "default": 1000
- },
- "max_pending_messages_across_partitions": {
- "title": "Max pending messages across partitions",
- "description": "The maximum number of pending messages across partitions.",
- "type": "integer",
- "default": 50000
- },
- "batching_enabled": {
- "title": "Enable batching",
- "description": "Control whether automatic batching of messages is enabled for the producer.",
- "type": "boolean",
- "default": true
- },
- "batching_max_messages": {
- "title": "Batching max messages",
- "description": "Maximum number of messages permitted in a batch.",
- "type": "integer",
- "default": 1000
- },
- "batching_max_publish_delay": {
- "title": "Batching max publish delay",
- "description": " Time period in milliseconds within which the messages sent will be batched.",
- "type": "integer",
- "default": 1
- },
- "block_if_queue_full": {
- "title": "Block if queue is full",
- "description": "If the send operation should block when the outgoing message queue is full.",
- "type": "boolean",
- "default": false
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "e06ad785-ad6f-4647-b2e8-3027a5c59454",
- "name": "RabbitMQ",
- "dockerRepository": "airbyte/destination-rabbitmq",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/rabbitmq",
- "icon": "pulsar.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/rabbitmq",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Rabbitmq",
- "type": "object",
- "required": [ "host", "routing_key" ],
- "additionalProperties": false,
- "properties": {
- "ssl": {
- "type": "boolean",
- "description": "SSL enabled.",
- "default": true
- },
- "host": {
- "type": "string",
- "description": "The RabbitMQ host name."
- },
- "port": {
- "type": "integer",
- "description": "The RabbitMQ port."
- },
- "virtual_host": {
- "type": "string",
- "description": "The RabbitMQ virtual host name."
- },
- "username": {
- "type": "string",
- "description": "The username to connect."
- },
- "password": {
- "type": "string",
- "title": "Password",
- "description": "The password to connect.",
- "airbyte_secret": true
- },
- "exchange": {
- "type": "string",
- "description": "The exchange name."
- },
- "routing_key": {
- "type": "string",
- "description": "The routing key."
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "d4d3fef9-e319-45c2-881a-bd02ce44cc9f",
- "name": "Redis",
- "dockerRepository": "airbyte/destination-redis",
- "dockerImageTag": "0.1.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redis",
- "icon": "redis.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redis",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Redis Destination Spec",
- "type": "object",
- "required": [ "host", "username", "port", "cache_type" ],
- "additionalProperties": false,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Redis host to connect to.",
- "type": "string",
- "examples": [ "localhost,127.0.0.1" ],
- "order": 1
- },
- "port": {
- "title": "Port",
- "description": "Port of Redis.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 6379,
- "order": 2
- },
- "username": {
- "title": "Username",
- "description": "Username associated with Redis.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "Password associated with Redis.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "ssl": {
- "title": "SSL Connection",
- "type": "boolean",
- "description": "Indicates whether SSL encryption protocol will be used to connect to Redis. It is recommended to use SSL connection if possible.",
- "default": false,
- "order": 5
- },
- "ssl_mode": {
- "title": "SSL Modes",
- "description": "SSL connection modes. \n verify-full - This is the most secure mode. Always require encryption and verifies the identity of the source database server",
- "type": "object",
- "order": 6,
- "oneOf": [ {
- "title": "disable",
- "additionalProperties": false,
- "description": "Disable SSL.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "disable",
- "enum": [ "disable" ],
- "default": "disable",
- "order": 0
- }
- }
- }, {
- "title": "verify-full",
- "additionalProperties": false,
- "description": "Verify-full SSL mode.",
- "required": [ "mode", "ca_certificate", "client_certificate", "client_key" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-full",
- "enum": [ "verify-full" ],
- "default": "verify-full",
- "order": 0
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA Certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- },
- "client_certificate": {
- "type": "string",
- "title": "Client Certificate",
- "description": "Client certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 2
- },
- "client_key": {
- "type": "string",
- "title": "Client Key",
- "description": "Client key",
- "airbyte_secret": true,
- "multiline": true,
- "order": 3
- },
- "client_key_password": {
- "type": "string",
- "title": "Client key password",
- "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- },
- "cache_type": {
- "title": "Cache type",
- "type": "string",
- "default": "hash",
- "description": "Redis cache type to store data in.",
- "enum": [ "hash" ],
- "order": 7
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "f7a7d195-377f-cf5b-70a5-be6b819019dc",
- "name": "Redshift",
- "dockerRepository": "airbyte/destination-redshift",
- "dockerImageTag": "0.4.5",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redshift",
- "icon": "redshift.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redshift",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Redshift Destination Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username", "password", "schema" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "description": "Host Endpoint of the Redshift Cluster (must include the cluster-id, region and end with .redshift.amazonaws.com)",
- "type": "string",
- "title": "Host",
- "order": 1
- },
- "port": {
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 5439,
- "examples": [ "5439" ],
- "title": "Port",
- "order": 2
- },
- "username": {
- "description": "Username to use to access the database.",
- "type": "string",
- "title": "Username",
- "order": 3
- },
- "password": {
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "title": "Password",
- "order": 4
- },
- "database": {
- "description": "Name of the database.",
- "type": "string",
- "title": "Database",
- "order": 5
- },
- "schema": {
- "description": "The default schema tables are written to if the source does not specify a namespace. Unless specifically configured, the usual value for this field is \"public\".",
- "type": "string",
- "examples": [ "public" ],
- "default": "public",
- "title": "Default Schema",
- "order": 6
- },
- "jdbc_url_params": {
- "title": "JDBC URL Params",
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "type": "string",
- "order": 7
- },
- "uploading_method": {
- "title": "Uploading Method",
- "type": "object",
- "description": "The method how the data will be uploaded to the database.",
- "order": 8,
- "oneOf": [ {
- "title": "Standard",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "Standard"
- }
- }
- }, {
- "title": "S3 Staging",
- "required": [ "method", "s3_bucket_name", "s3_bucket_region", "access_key_id", "secret_access_key" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "S3 Staging"
- },
- "s3_bucket_name": {
- "title": "S3 Bucket Name",
- "type": "string",
- "description": "The name of the staging S3 bucket to use if utilising a COPY strategy. COPY is recommended for production workloads for better speed and scalability. See AWS docs for more details.",
- "examples": [ "airbyte.staging" ]
- },
- "s3_bucket_path": {
- "title": "S3 Bucket Path",
- "type": "string",
- "description": "The directory under the S3 bucket where data will be written. If not provided, then defaults to the root directory. See path's name recommendations for more details.",
- "examples": [ "data_sync/test" ]
- },
- "s3_bucket_region": {
- "title": "S3 Bucket Region",
- "type": "string",
- "default": "",
- "description": "The region of the S3 staging bucket to use if utilising a COPY strategy. See AWS docs for details.",
- "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1" ]
- },
- "file_name_pattern": {
- "type": "string",
- "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
- "title": "S3 Filename pattern",
- "examples": [ "{date}", "{date:yyyy_MM}", "{timestamp}", "{part_number}", "{sync_id}" ],
- "order": 8
- },
- "access_key_id": {
- "type": "string",
- "description": "This ID grants access to the above S3 staging bucket. Airbyte requires Read and Write permissions to the given bucket. See AWS docs on how to generate an access key ID and secret access key.",
- "title": "S3 Key Id",
- "airbyte_secret": true
- },
- "secret_access_key": {
- "type": "string",
- "description": "The corresponding secret to the above access key id. See AWS docs on how to generate an access key ID and secret access key.",
- "title": "S3 Access Key",
- "airbyte_secret": true
- },
- "purge_staging_data": {
- "title": "Purge Staging Files and Tables",
- "type": "boolean",
- "description": "Whether to delete the staging files from S3 after completing the sync. See docs for details.",
- "default": true
- },
- "encryption": {
- "title": "Encryption",
- "type": "object",
- "description": "How to encrypt the staging data",
- "default": {
- "encryption_type": "none"
- },
- "oneOf": [ {
- "title": "No encryption",
- "description": "Staging data will be stored in plaintext.",
- "type": "object",
- "required": [ "encryption_type" ],
- "properties": {
- "encryption_type": {
- "type": "string",
- "const": "none",
- "enum": [ "none" ],
- "default": "none"
- }
- }
- }, {
- "title": "AES-CBC envelope encryption",
- "description": "Staging data will be encrypted using AES-CBC envelope encryption.",
- "type": "object",
- "required": [ "encryption_type" ],
- "properties": {
- "encryption_type": {
- "type": "string",
- "const": "aes_cbc_envelope",
- "enum": [ "aes_cbc_envelope" ],
- "default": "aes_cbc_envelope"
- },
- "key_encrypting_key": {
- "type": "string",
- "title": "Key",
- "description": "The key, base64-encoded. Must be either 128, 192, or 256 bits. Leave blank to have Airbyte generate an ephemeral key for each sync.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "file_buffer_count": {
- "title": "File Buffer Count",
- "type": "integer",
- "minimum": 10,
- "maximum": 50,
- "default": 10,
- "description": "Number of file buffers allocated for writing data. Increasing this number is beneficial for connections using Change Data Capture (CDC) and up to the number of streams within a connection. Increasing the number of file buffers past the maximum number of streams has deteriorating effects",
- "examples": [ "10" ]
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "resourceRequirements": {
- "jobSpecific": [ {
- "jobType": "sync",
- "resourceRequirements": {
- "memory_request": "1Gi",
- "memory_limit": "1Gi"
- }
- } ]
- },
- "normalizationConfig": {
- "normalizationRepository": "airbyte/normalization-redshift",
- "normalizationTag": "0.4.0",
- "normalizationIntegrationType": "redshift"
- },
- "supportsDbt": true
- }, {
- "destinationDefinitionId": "825c5ee3-ed9a-4dd1-a2b6-79ed722f7b13",
- "name": "Redpanda",
- "dockerRepository": "airbyte/destination-redpanda",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redpanda",
- "icon": "redpanda.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redpanda",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Redpanda destination connector",
- "type": "object",
- "required": [ "bootstrap_servers", "buffer_memory", "compression_type", "retries", "batch_size" ],
- "properties": {
- "bootstrap_servers": {
- "title": "Bootstrap Servers",
- "description": "A list of host/port pairs to use for establishing the initial connection to the Redpanda cluster. The client will make use of all servers irrespective of which servers are specified here for bootstrapping—this list only impacts the initial hosts used to discover the full set of servers. This list should be in the form host1:port1,host2:port2,...
. Since these servers are just used for the initial connection to discover the full cluster membership (which may change dynamically), this list need not contain the full set of servers (you may want more than one, though, in case a server is down).",
- "type": "string",
- "examples": [ "redpanda-broker1:9092,redpanda-broker2:9092" ]
- },
- "buffer_memory": {
- "title": "Buffer Memory",
- "description": "The total bytes of memory the producer can use to buffer records waiting to be sent to the server.",
- "type": "string",
- "examples": 33554432
- },
- "compression_type": {
- "title": "Compression Type",
- "description": "The compression type for all data generated by the producer.",
- "type": "string",
- "default": "none",
- "enum": [ "none", "gzip", "snappy", "lz4", "zstd" ]
- },
- "batch_size": {
- "title": "Batch Size",
- "description": "The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition.",
- "type": "integer",
- "examples": [ 16384 ]
- },
- "retries": {
- "title": "Retries",
- "description": "Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error.",
- "type": "integer",
- "examples": [ 2147483647 ]
- },
- "topic_num_partitions": {
- "title": "Number of topic partitions",
- "description": "The number of topic partitions which will be created on topic creation",
- "type": "integer",
- "examples": [ 10 ]
- },
- "topic_replication_factor": {
- "title": "Topic replication factor",
- "description": "The number of topics to which messages will be replicated",
- "type": "integer",
- "examples": [ 10 ]
- },
- "socket_connection_setup_timeout_ms": {
- "title": "Socket Connection Setup Timeout",
- "description": "The amount of time the client will wait for the socket connection to be established.",
- "type": "integer",
- "examples": [ 10000 ]
- },
- "socket_connection_setup_timeout_max_ms": {
- "title": "Socket Connection Setup Max Timeout",
- "description": "The maximum amount of time the client will wait for the socket connection to be established. The connection setup timeout will increase exponentially for each consecutive connection failure up to this maximum.",
- "type": "integer",
- "examples": [ 30000 ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "2c9d93a7-9a17-4789-9de9-f46f0097eb70",
- "name": "Rockset",
- "dockerRepository": "airbyte/destination-rockset",
- "dockerImageTag": "0.1.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/rockset",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/rockset",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Rockset Destination Spec",
- "type": "object",
- "required": [ "api_key", "workspace" ],
- "additionalProperties": false,
- "properties": {
- "api_key": {
- "title": "Api Key",
- "description": "Rockset api key",
- "type": "string",
- "order": 0,
- "airbyte_secret": true
- },
- "workspace": {
- "title": "Workspace",
- "description": "The Rockset workspace in which collections will be created + written to.",
- "type": "string",
- "examples": [ "commons", "my_workspace" ],
- "default": "commons",
- "airbyte_secret": false,
- "order": 1
- },
- "api_server": {
- "title": "Api Server",
- "description": "Rockset api URL",
- "type": "string",
- "airbyte_secret": false,
- "default": "https://api.rs2.usw2.rockset.com",
- "pattern": "^https:\\/\\/.*.rockset.com$",
- "order": 2
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append", "overwrite" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "4816b78f-1489-44c1-9060-4b19d5fa9362",
- "name": "S3",
- "dockerRepository": "airbyte/destination-s3",
- "dockerImageTag": "0.3.23",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/s3",
- "icon": "s3.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/s3",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "S3 Destination Spec",
- "type": "object",
- "required": [ "s3_bucket_name", "s3_bucket_path", "s3_bucket_region", "format" ],
- "properties": {
- "access_key_id": {
- "type": "string",
- "description": "The access key ID to access the S3 bucket. Airbyte requires Read and Write permissions to the given bucket. Read more here.",
- "title": "S3 Key ID",
- "airbyte_secret": true,
- "examples": [ "A012345678910EXAMPLE" ],
- "order": 0
- },
- "secret_access_key": {
- "type": "string",
- "description": "The corresponding secret to the access key ID. Read more here",
- "title": "S3 Access Key",
- "airbyte_secret": true,
- "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ],
- "order": 1
- },
- "s3_bucket_name": {
- "title": "S3 Bucket Name",
- "type": "string",
- "description": "The name of the S3 bucket. Read more here.",
- "examples": [ "airbyte_sync" ],
- "order": 2
- },
- "s3_bucket_path": {
- "title": "S3 Bucket Path",
- "description": "Directory under the S3 bucket where data will be written. Read more here",
- "type": "string",
- "examples": [ "data_sync/test" ],
- "order": 3
- },
- "s3_bucket_region": {
- "title": "S3 Bucket Region",
- "type": "string",
- "default": "",
- "description": "The region of the S3 bucket. See here for all region codes.",
- "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
- "order": 4
- },
- "format": {
- "title": "Output Format",
- "type": "object",
- "description": "Format of the data output. See here for more details",
- "oneOf": [ {
- "title": "Avro: Apache Avro",
- "required": [ "format_type", "compression_codec" ],
- "properties": {
- "format_type": {
- "title": "Format Type",
- "type": "string",
- "enum": [ "Avro" ],
- "default": "Avro",
- "order": 0
- },
- "compression_codec": {
- "title": "Compression Codec",
- "description": "The compression algorithm used to compress data. Default to no compression.",
- "type": "object",
- "oneOf": [ {
- "title": "No Compression",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "no compression" ],
- "default": "no compression"
- }
- }
- }, {
- "title": "Deflate",
- "required": [ "codec", "compression_level" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "Deflate" ],
- "default": "Deflate"
- },
- "compression_level": {
- "title": "Deflate Level",
- "description": "0: no compression & fastest, 9: best compression & slowest.",
- "type": "integer",
- "default": 0,
- "minimum": 0,
- "maximum": 9
- }
- }
- }, {
- "title": "bzip2",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "bzip2" ],
- "default": "bzip2"
- }
- }
- }, {
- "title": "xz",
- "required": [ "codec", "compression_level" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "xz" ],
- "default": "xz"
- },
- "compression_level": {
- "title": "Compression Level",
- "description": "See here for details.",
- "type": "integer",
- "default": 6,
- "minimum": 0,
- "maximum": 9
- }
- }
- }, {
- "title": "zstandard",
- "required": [ "codec", "compression_level" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "zstandard" ],
- "default": "zstandard"
- },
- "compression_level": {
- "title": "Compression Level",
- "description": "Negative levels are 'fast' modes akin to lz4 or snappy, levels above 9 are generally for archival purposes, and levels above 18 use a lot of memory.",
- "type": "integer",
- "default": 3,
- "minimum": -5,
- "maximum": 22
- },
- "include_checksum": {
- "title": "Include Checksum",
- "description": "If true, include a checksum with each data block.",
- "type": "boolean",
- "default": false
- }
- }
- }, {
- "title": "snappy",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "snappy" ],
- "default": "snappy"
- }
- }
- } ],
- "order": 1
- }
- }
- }, {
- "title": "CSV: Comma-Separated Values",
- "required": [ "format_type", "flattening" ],
- "properties": {
- "format_type": {
- "title": "Format Type",
- "type": "string",
- "enum": [ "CSV" ],
- "default": "CSV"
- },
- "flattening": {
- "type": "string",
- "title": "Flattening",
- "description": "Whether the input json data should be normalized (flattened) in the output CSV. Please refer to docs for details.",
- "default": "No flattening",
- "enum": [ "No flattening", "Root level flattening" ]
- },
- "compression": {
- "title": "Compression",
- "type": "object",
- "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".csv.gz\").",
- "oneOf": [ {
- "title": "No Compression",
- "requires": [ "compression_type" ],
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "No Compression" ],
- "default": "No Compression"
- }
- }
- }, {
- "title": "GZIP",
- "requires": [ "compression_type" ],
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "GZIP" ],
- "default": "GZIP"
- }
- }
- } ]
- }
- }
- }, {
- "title": "JSON Lines: Newline-delimited JSON",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "title": "Format Type",
- "type": "string",
- "enum": [ "JSONL" ],
- "default": "JSONL"
- },
- "flattening": {
- "type": "string",
- "title": "Flattening",
- "description": "Whether the input json data should be normalized (flattened) in the output JSON Lines. Please refer to docs for details.",
- "default": "No flattening",
- "enum": [ "No flattening", "Root level flattening" ]
- },
- "compression": {
- "title": "Compression",
- "type": "object",
- "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".jsonl.gz\").",
- "oneOf": [ {
- "title": "No Compression",
- "requires": "compression_type",
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "No Compression" ],
- "default": "No Compression"
- }
- }
- }, {
- "title": "GZIP",
- "requires": "compression_type",
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "GZIP" ],
- "default": "GZIP"
- }
- }
- } ]
- }
- }
- }, {
- "title": "Parquet: Columnar Storage",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "title": "Format Type",
- "type": "string",
- "enum": [ "Parquet" ],
- "default": "Parquet"
- },
- "compression_codec": {
- "title": "Compression Codec",
- "description": "The compression algorithm used to compress data pages.",
- "type": "string",
- "enum": [ "UNCOMPRESSED", "SNAPPY", "GZIP", "LZO", "BROTLI", "LZ4", "ZSTD" ],
- "default": "UNCOMPRESSED"
- },
- "block_size_mb": {
- "title": "Block Size (Row Group Size) (MB)",
- "description": "This is the size of a row group being buffered in memory. It limits the memory usage when writing. Larger values will improve the IO when reading, but consume more memory when writing. Default: 128 MB.",
- "type": "integer",
- "default": 128,
- "examples": [ 128 ]
- },
- "max_padding_size_mb": {
- "title": "Max Padding Size (MB)",
- "description": "Maximum size allowed as padding to align row groups. This is also the minimum size of a row group. Default: 8 MB.",
- "type": "integer",
- "default": 8,
- "examples": [ 8 ]
- },
- "page_size_kb": {
- "title": "Page Size (KB)",
- "description": "The page size is for compression. A block is composed of pages. A page is the smallest unit that must be read fully to access a single record. If this value is too small, the compression will deteriorate. Default: 1024 KB.",
- "type": "integer",
- "default": 1024,
- "examples": [ 1024 ]
- },
- "dictionary_page_size_kb": {
- "title": "Dictionary Page Size (KB)",
- "description": "There is one dictionary page per column per row group when dictionary encoding is used. The dictionary page size works like the page size but for dictionary. Default: 1024 KB.",
- "type": "integer",
- "default": 1024,
- "examples": [ 1024 ]
- },
- "dictionary_encoding": {
- "title": "Dictionary Encoding",
- "description": "Default: true.",
- "type": "boolean",
- "default": true
- }
- }
- } ],
- "order": 5
- },
- "s3_endpoint": {
- "title": "Endpoint",
- "type": "string",
- "default": "",
- "description": "Your S3 endpoint url. Read more here",
- "examples": [ "http://localhost:9000" ],
- "order": 6
- },
- "s3_path_format": {
- "title": "S3 Path Format",
- "description": "Format string on how data will be organized inside the S3 bucket directory. Read more here",
- "type": "string",
- "examples": [ "${NAMESPACE}/${STREAM_NAME}/${YEAR}_${MONTH}_${DAY}_${EPOCH}_" ],
- "order": 7
- },
- "file_name_pattern": {
- "type": "string",
- "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
- "title": "S3 Filename pattern",
- "examples": [ "{date}", "{date:yyyy_MM}", "{timestamp}", "{part_number}", "{sync_id}" ],
- "order": 8
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "resourceRequirements": {
- "jobSpecific": [ {
- "jobType": "sync",
- "resourceRequirements": {
- "memory_request": "1Gi",
- "memory_limit": "1Gi"
- }
- } ]
- }
- }, {
- "destinationDefinitionId": "471e5cab-8ed1-49f3-ba11-79c687784737",
- "name": "S3 Glue",
- "dockerRepository": "airbyte/destination-s3-glue",
- "dockerImageTag": "0.1.6",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/s3-glue",
- "icon": "s3-glue.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/s3-glue",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "S3 Destination Spec",
- "type": "object",
- "required": [ "s3_bucket_name", "s3_bucket_path", "s3_bucket_region", "format", "glue_database", "glue_serialization_library" ],
- "properties": {
- "access_key_id": {
- "type": "string",
- "description": "The access key ID to access the S3 bucket. Airbyte requires Read and Write permissions to the given bucket. Read more here.",
- "title": "S3 Key ID",
- "airbyte_secret": true,
- "examples": [ "A012345678910EXAMPLE" ],
- "order": 0
- },
- "secret_access_key": {
- "type": "string",
- "description": "The corresponding secret to the access key ID. Read more here",
- "title": "S3 Access Key",
- "airbyte_secret": true,
- "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ],
- "order": 1
- },
- "s3_bucket_name": {
- "title": "S3 Bucket Name",
- "type": "string",
- "description": "The name of the S3 bucket. Read more here.",
- "examples": [ "airbyte_sync" ],
- "order": 2
- },
- "s3_bucket_path": {
- "title": "S3 Bucket Path",
- "description": "Directory under the S3 bucket where data will be written. Read more here",
- "type": "string",
- "examples": [ "data_sync/test" ],
- "order": 3
- },
- "s3_bucket_region": {
- "title": "S3 Bucket Region",
- "type": "string",
- "default": "",
- "description": "The region of the S3 bucket. See here for all region codes.",
- "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
- "order": 4
- },
- "format": {
- "title": "Output Format",
- "type": "object",
- "description": "Format of the data output. See here for more details",
- "oneOf": [ {
- "title": "JSON Lines: Newline-delimited JSON",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "title": "Format Type",
- "type": "string",
- "enum": [ "JSONL" ],
- "default": "JSONL"
- },
- "compression": {
- "title": "Compression",
- "type": "object",
- "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".jsonl.gz\").",
- "oneOf": [ {
- "title": "No Compression",
- "requires": "compression_type",
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "No Compression" ],
- "default": "No Compression"
- }
- }
- }, {
- "title": "GZIP",
- "requires": "compression_type",
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "GZIP" ],
- "default": "GZIP"
- }
- }
- } ]
- },
- "flattening": {
- "type": "string",
- "title": "Flattening",
- "description": "Whether the input json data should be normalized (flattened) in the output JSON Lines. Please refer to docs for details.",
- "default": "Root level flattening",
- "enum": [ "No flattening", "Root level flattening" ]
- }
- }
- } ],
- "order": 5
- },
- "s3_endpoint": {
- "title": "Endpoint",
- "type": "string",
- "default": "",
- "description": "Your S3 endpoint url. Read more here",
- "examples": [ "http://localhost:9000" ],
- "order": 6
- },
- "s3_path_format": {
- "title": "S3 Path Format",
- "description": "Format string on how data will be organized inside the S3 bucket directory. Read more here",
- "type": "string",
- "examples": [ "${NAMESPACE}/${STREAM_NAME}/${YEAR}_${MONTH}_${DAY}_${EPOCH}_" ],
- "order": 7
- },
- "file_name_pattern": {
- "type": "string",
- "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
- "title": "S3 Filename pattern",
- "examples": [ "{date}", "{date:yyyy_MM}", "{timestamp}", "{part_number}", "{sync_id}" ],
- "order": 8
- },
- "glue_database": {
- "type": "string",
- "description": "Name of the glue database for creating the tables, leave blank if no integration",
- "title": "Glue database name",
- "examples": [ "airbyte_database" ],
- "order": 9
- },
- "glue_serialization_library": {
- "title": "Serialization Library",
- "description": "The library that your query engine will use for reading and writing data in your lake.",
- "type": "string",
- "enum": [ "org.openx.data.jsonserde.JsonSerDe", "org.apache.hive.hcatalog.data.JsonSerDe" ],
- "default": "org.openx.data.jsonserde.JsonSerDe",
- "order": 10
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "50a559a7-6323-4e33-8aa0-51dfd9dfadac",
- "name": "SelectDB",
- "dockerRepository": "airbyte/destination-selectdb",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/selectdb",
- "icon": "select.db",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/selectdb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "SelectDB Destination Spec",
- "type": "object",
- "required": [ "load_url", "jdbc_url", "cluster_name", "user_name", "password", "database" ],
- "properties": {
- "load_url": {
- "title": "loadURL",
- "description": "load host and port: xxx.privatelink.aliyun.com:47057",
- "type": "string",
- "order": 0
- },
- "jdbc_url": {
- "title": "jdbcURL",
- "description": "jdbc host and port: xxx.privatelink.aliyun.com:30523",
- "type": "string",
- "order": 1
- },
- "cluster_name": {
- "title": "ClusterName",
- "description": "clusterName of SelectDB",
- "type": "string",
- "order": 2
- },
- "user_name": {
- "title": "UserName",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "database": {
- "title": "DataBase Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 5
- }
- }
- },
- "supportsIncremental": false,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append", "overwrite" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "e9810f61-4bab-46d2-bb22-edfc902e0644",
- "name": "SFTP-JSON",
- "dockerRepository": "airbyte/destination-sftp-json",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/sftp-json",
- "icon": "sftp.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/sftp-json",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination SFTP JSON",
- "type": "object",
- "required": [ "host", "username", "password", "destination_path" ],
- "additionalProperties": false,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the SFTP server.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "Port of the SFTP server.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ 22 ],
- "order": 1
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the SFTP server.",
- "type": "string",
- "order": 2
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 3
- },
- "destination_path": {
- "title": "Destination path",
- "type": "string",
- "description": "Path to the directory where json files will be written.",
- "examples": [ "/json_data" ],
- "order": 4
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "424892c4-daac-4491-b35d-c6688ba547ba",
- "name": "Snowflake",
- "dockerRepository": "airbyte/destination-snowflake",
- "dockerImageTag": "0.4.61",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/snowflake",
- "icon": "snowflake.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/snowflake",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Snowflake Destination Spec",
- "type": "object",
- "required": [ "host", "role", "warehouse", "database", "schema", "username" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "description": "Enter your Snowflake account's locator (in the format ...snowflakecomputing.com)",
- "examples": [ "accountname.us-east-2.aws.snowflakecomputing.com", "accountname.snowflakecomputing.com" ],
- "type": "string",
- "title": "Host",
- "pattern": "^(http(s)?:\\/\\/)?([^./?#]+\\.)?([^./?#]+\\.)?([^./?#]+\\.)?([^./?#]+\\.snowflakecomputing\\.com)$",
- "pattern_descriptor": "{account_name}.snowflakecomputing.com or {accountname}.{aws_location}.aws.snowflakecomputing.com",
- "order": 0
- },
- "role": {
- "description": "Enter the role that you want to use to access Snowflake",
- "examples": [ "AIRBYTE_ROLE" ],
- "type": "string",
- "title": "Role",
- "order": 1
- },
- "warehouse": {
- "description": "Enter the name of the warehouse that you want to sync data into",
- "examples": [ "AIRBYTE_WAREHOUSE" ],
- "type": "string",
- "title": "Warehouse",
- "order": 2
- },
- "database": {
- "description": "Enter the name of the database you want to sync data into",
- "examples": [ "AIRBYTE_DATABASE" ],
- "type": "string",
- "title": "Database",
- "order": 3
- },
- "schema": {
- "description": "Enter the name of the default schema",
- "examples": [ "AIRBYTE_SCHEMA" ],
- "type": "string",
- "title": "Default Schema",
- "order": 4
- },
- "username": {
- "description": "Enter the name of the user you want to use to access the database",
- "examples": [ "AIRBYTE_USER" ],
- "type": "string",
- "title": "Username",
- "order": 5
- },
- "credentials": {
- "title": "Authorization Method",
- "description": "",
- "type": "object",
- "oneOf": [ {
- "title": "OAuth2.0",
- "type": "object",
- "order": 0,
- "required": [ "access_token", "refresh_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "OAuth2.0",
- "enum": [ "OAuth2.0" ],
- "default": "OAuth2.0",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "Enter your application's Client ID",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "Enter your application's Client secret",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Enter you application's Access Token",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "Enter your application's Refresh Token",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Key Pair Authentication",
- "type": "object",
- "order": 1,
- "required": [ "private_key" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Key Pair Authentication",
- "enum": [ "Key Pair Authentication" ],
- "default": "Key Pair Authentication",
- "order": 0
- },
- "private_key": {
- "type": "string",
- "title": "Private Key",
- "description": "RSA Private key to use for Snowflake connection. See the docs for more information on how to obtain this key.",
- "multiline": true,
- "airbyte_secret": true
- },
- "private_key_password": {
- "type": "string",
- "title": "Passphrase",
- "description": "Passphrase for private key",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Username and Password",
- "type": "object",
- "required": [ "password" ],
- "order": 2,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Username and Password",
- "enum": [ "Username and Password" ],
- "default": "Username and Password",
- "order": 0
- },
- "password": {
- "description": "Enter the password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "title": "Password",
- "order": 1
- }
- }
- } ],
- "order": 6
- },
- "jdbc_url_params": {
- "description": "Enter the additional properties to pass to the JDBC URL string when connecting to the database (formatted as key=value pairs separated by the symbol &). Example: key1=value1&key2=value2&key3=value3",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 7
- },
- "loading_method": {
- "type": "object",
- "title": "Data Staging Method",
- "description": "Select a data staging method",
- "order": 8,
- "oneOf": [ {
- "title": "Select another option",
- "description": "Select another option",
- "required": [ "method" ],
- "properties": {
- "method": {
- "title": "",
- "description": "",
- "type": "string",
- "enum": [ "Standard" ],
- "default": "Standard"
- }
- }
- }, {
- "title": "[Recommended] Internal Staging",
- "description": "Recommended for large production workloads for better speed and scalability.",
- "required": [ "method" ],
- "properties": {
- "method": {
- "title": "",
- "description": "",
- "type": "string",
- "enum": [ "Internal Staging" ],
- "default": "Internal Staging"
- }
- }
- }, {
- "title": "AWS S3 Staging",
- "description": "Recommended for large production workloads for better speed and scalability.",
- "required": [ "method", "s3_bucket_name", "access_key_id", "secret_access_key" ],
- "properties": {
- "method": {
- "title": "",
- "description": "",
- "type": "string",
- "enum": [ "S3 Staging" ],
- "default": "S3 Staging",
- "order": 0
- },
- "s3_bucket_name": {
- "title": "S3 Bucket Name",
- "type": "string",
- "description": "Enter your S3 bucket name",
- "examples": [ "airbyte.staging" ],
- "order": 1
- },
- "s3_bucket_region": {
- "title": "S3 Bucket Region",
- "type": "string",
- "default": "",
- "description": "Enter the region where your S3 bucket resides",
- "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-west-1", "eu-west-2", "eu-west-3", "eu-south-1", "eu-north-1", "sa-east-1", "me-south-1" ],
- "order": 2
- },
- "access_key_id": {
- "type": "string",
- "description": "Enter your AWS access key ID. Airbyte requires Read and Write permissions on your S3 bucket ",
- "title": "AWS access key ID",
- "airbyte_secret": true,
- "order": 3
- },
- "secret_access_key": {
- "type": "string",
- "description": "Enter your AWS secret access key",
- "title": "AWS secret access key",
- "airbyte_secret": true,
- "order": 4
- },
- "purge_staging_data": {
- "title": "Purge Staging Files and Tables",
- "type": "boolean",
- "description": "Toggle to delete staging files from the S3 bucket after a successful sync",
- "default": true,
- "order": 5
- },
- "encryption": {
- "title": "Encryption",
- "type": "object",
- "description": "Choose a data encryption method for the staging data",
- "default": {
- "encryption_type": "none"
- },
- "order": 6,
- "oneOf": [ {
- "title": "No encryption",
- "description": "Staging data will be stored in plaintext.",
- "type": "object",
- "required": [ "encryption_type" ],
- "properties": {
- "encryption_type": {
- "type": "string",
- "const": "none",
- "enum": [ "none" ],
- "default": "none"
- }
- }
- }, {
- "title": "AES-CBC envelope encryption",
- "description": "Staging data will be encrypted using AES-CBC envelope encryption.",
- "type": "object",
- "required": [ "encryption_type" ],
- "properties": {
- "encryption_type": {
- "type": "string",
- "const": "aes_cbc_envelope",
- "enum": [ "aes_cbc_envelope" ],
- "default": "aes_cbc_envelope"
- },
- "key_encrypting_key": {
- "type": "string",
- "title": "Key",
- "description": "The key, base64-encoded. Must be either 128, 192, or 256 bits. Leave blank to have Airbyte generate an ephemeral key for each sync.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "file_name_pattern": {
- "type": "string",
- "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
- "title": "S3 Filename pattern",
- "examples": [ "{date}", "{date:yyyy_MM}", "{timestamp}", "{part_number}", "{sync_id}" ],
- "order": 7
- }
- }
- }, {
- "title": "Google Cloud Storage Staging",
- "description": "Recommended for large production workloads for better speed and scalability.",
- "required": [ "method", "project_id", "bucket_name", "credentials_json" ],
- "properties": {
- "method": {
- "title": "",
- "description": "",
- "type": "string",
- "enum": [ "GCS Staging" ],
- "default": "GCS Staging",
- "order": 0
- },
- "project_id": {
- "title": "Google Cloud project ID",
- "type": "string",
- "description": "Enter the Google Cloud project ID",
- "examples": [ "my-project" ],
- "order": 1
- },
- "bucket_name": {
- "title": "Cloud Storage bucket name",
- "type": "string",
- "description": "Enter the Cloud Storage bucket name",
- "examples": [ "airbyte-staging" ],
- "order": 2
- },
- "credentials_json": {
- "title": "Google Application Credentials",
- "type": "string",
- "description": "Enter your Google Cloud service account key in the JSON format with read/write access to your Cloud Storage staging bucket",
- "airbyte_secret": true,
- "multiline": true,
- "order": 3
- }
- }
- }, {
- "title": "Azure Blob Storage Staging",
- "description": "Recommended for large production workloads for better speed and scalability.",
- "required": [ "method", "azure_blob_storage_account_name", "azure_blob_storage_container_name", "azure_blob_storage_sas_token" ],
- "properties": {
- "method": {
- "title": "",
- "description": "",
- "type": "string",
- "enum": [ "Azure Blob Staging" ],
- "default": "Azure Blob Staging",
- "order": 0
- },
- "azure_blob_storage_endpoint_domain_name": {
- "title": "Azure Blob Storage Endpoint",
- "type": "string",
- "default": "blob.core.windows.net",
- "description": "Enter the Azure Blob Storage endpoint domain name",
- "examples": [ "blob.core.windows.net" ],
- "order": 1
- },
- "azure_blob_storage_account_name": {
- "title": "Azure Blob Storage account name",
- "type": "string",
- "description": "Enter your Azure Blob Storage account name",
- "examples": [ "airbyte5storage" ],
- "order": 2
- },
- "azure_blob_storage_container_name": {
- "title": "Azure Blob Storage Container Name",
- "type": "string",
- "description": "Enter your Azure Blob Storage container name",
- "examples": [ "airbytetestcontainername" ],
- "order": 3
- },
- "azure_blob_storage_sas_token": {
- "title": "SAS Token",
- "type": "string",
- "airbyte_secret": true,
- "description": "Enter the Shared access signature (SAS) token to grant Snowflake limited access to objects in your Azure Blob Storage account",
- "examples": [ "?sv=2016-05-31&ss=b&srt=sco&sp=rwdl&se=2018-06-27T10:05:50Z&st=2017-06-27T02:05:50Z&spr=https,http&sig=bgqQwoXwxzuD2GJfagRg7VOS8hzNr3QLT7rhS8OFRLQ%3D" ],
- "order": 4
- }
- }
- } ]
- },
- "file_buffer_count": {
- "title": "File Buffer Count",
- "type": "integer",
- "minimum": 10,
- "maximum": 50,
- "default": 10,
- "description": "Number of file buffers allocated for writing data. Increasing this number is beneficial for connections using Change Data Capture (CDC) and up to the number of streams within a connection. Increasing the number of file buffers past the maximum number of streams has deteriorating effects",
- "examples": [ "10" ],
- "order": 9
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "OAuth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "properties": {
- "host": {
- "type": "string",
- "path_in_connector_config": [ "host" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- },
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "resourceRequirements": {
- "jobSpecific": [ {
- "jobType": "sync",
- "resourceRequirements": {
- "memory_request": "1Gi",
- "memory_limit": "1Gi"
- }
- } ]
- },
- "normalizationConfig": {
- "normalizationRepository": "airbyte/normalization-snowflake",
- "normalizationTag": "0.4.0",
- "normalizationIntegrationType": "snowflake"
- },
- "supportsDbt": true
- }, {
- "destinationDefinitionId": "294a4790-429b-40ae-9516-49826b9702e1",
- "name": "MariaDB ColumnStore",
- "dockerRepository": "airbyte/destination-mariadb-columnstore",
- "dockerImageTag": "0.1.7",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mariadb-columnstore",
- "icon": "mariadb.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mariadb-columnstore",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "MariaDB Columnstore Destination Spec",
- "type": "object",
- "required": [ "host", "port", "username", "database" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "The Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "The Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 3306,
- "examples": [ "3306" ],
- "order": 1
- },
- "database": {
- "title": "Database",
- "description": "Name of the database.",
- "type": "string",
- "order": 2
- },
- "username": {
- "title": "Username",
- "description": "The Username which is used to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "The Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 5
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "eebd85cf-60b2-4af6-9ba0-edeca01437b0",
- "name": "Streamr",
- "dockerRepository": "ghcr.io/devmate-cloud/streamr-airbyte-connectors",
- "dockerImageTag": "0.0.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/streamr",
- "icon": "streamr.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/streamr",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Streamr",
- "type": "object",
- "required": [ "privateKey", "streamId" ],
- "additionalProperties": false,
- "properties": {
- "privateKey": {
- "type": "string",
- "description": "You private key on Streamr",
- "airbyte_secret": true
- },
- "streamId": {
- "type": "string",
- "description": "Your full Stream ID",
- "examples": [ "0x0d0102474519cd2fc1b3e3f962a87e39cbcbead2/test-streamr" ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append", "append_dedup" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "3dc6f384-cd6b-4be3-ad16-a41450899bf0",
- "name": "Scylla",
- "dockerRepository": "airbyte/destination-scylla",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/scylla",
- "icon": "scylla.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/scylla",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Scylla Destination Spec",
- "type": "object",
- "required": [ "keyspace", "username", "password", "address", "port" ],
- "additionalProperties": true,
- "properties": {
- "keyspace": {
- "title": "Keyspace",
- "description": "Default Scylla keyspace to create data in.",
- "type": "string",
- "order": 0
- },
- "username": {
- "title": "Username",
- "description": "Username to use to access Scylla.",
- "type": "string",
- "order": 1
- },
- "password": {
- "title": "Password",
- "description": "Password associated with Scylla.",
- "type": "string",
- "airbyte_secret": true,
- "order": 2
- },
- "address": {
- "title": "Address",
- "description": "Address to connect to.",
- "type": "string",
- "order": 3
- },
- "port": {
- "title": "Port",
- "description": "Port of Scylla.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 9042,
- "order": 4
- },
- "replication": {
- "title": "Replication factor",
- "type": "integer",
- "description": "Indicates to how many nodes the data should be replicated to.",
- "default": 1,
- "order": 5
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "a4cbd2d1-8dbe-4818-b8bc-b90ad782d12a",
- "name": "Google Sheets",
- "dockerRepository": "airbyte/destination-google-sheets",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/google-sheets",
- "icon": "google-sheets.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/google-sheets",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Google Sheets",
- "type": "object",
- "required": [ "spreadsheet_id", "credentials" ],
- "additionalProperties": false,
- "properties": {
- "spreadsheet_id": {
- "type": "string",
- "title": "Spreadsheet Link",
- "description": "The link to your spreadsheet. See this guide for more details.",
- "examples": [ "https://docs.google.com/spreadsheets/d/1hLd9Qqti3UyLXZB2aFfUWDT7BG/edit" ]
- },
- "credentials": {
- "type": "object",
- "title": "Authentication via Google (OAuth)",
- "description": "Google API Credentials for connecting to Google Sheets and Google Drive APIs",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Google Sheets developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Google Sheets developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "The token for obtaining new access token.",
- "airbyte_secret": true
- }
- }
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "b76be0a6-27dc-4560-95f6-2623da0bd7b6",
- "name": "Local SQLite",
- "dockerRepository": "airbyte/destination-sqlite",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-sqlite",
- "icon": "sqlite.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/sqlite",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Sqlite",
- "type": "object",
- "required": [ "destination_path" ],
- "additionalProperties": false,
- "properties": {
- "destination_path": {
- "type": "string",
- "description": "Path to the sqlite.db file. The file will be placed inside that local mount. For more information check out our docs",
- "example": "/local/sqlite.db"
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "06ec60c7-7468-45c0-91ac-174f6e1a788b",
- "name": "TiDB",
- "dockerRepository": "airbyte/destination-tidb",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/tidb",
- "icon": "tidb.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/tidb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "TiDB Destination Spec",
- "type": "object",
- "required": [ "host", "port", "username", "database" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 4000,
- "examples": [ "4000" ],
- "order": 1
- },
- "database": {
- "title": "Database",
- "description": "Name of the database.",
- "type": "string",
- "order": 2
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "default": "",
- "order": 4
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL.",
- "type": "boolean",
- "default": false,
- "order": 5
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 6
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "normalizationConfig": {
- "normalizationRepository": "airbyte/normalization-tidb",
- "normalizationTag": "0.4.0",
- "normalizationIntegrationType": "tidb"
- },
- "supportsDbt": true
- }, {
- "destinationDefinitionId": "36be8dc6-9851-49af-b776-9d4c30e4ab6a",
- "name": "Typesense",
- "dockerRepository": "airbyte/destination-typesense",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/typesense",
- "icon": "typesense.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/typesense",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Typesense",
- "type": "object",
- "required": [ "api_key", "host" ],
- "additionalProperties": false,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Typesense API Key",
- "order": 0
- },
- "host": {
- "title": "Host",
- "type": "string",
- "description": "Hostname of the Typesense instance without protocol.",
- "order": 1
- },
- "port": {
- "title": "Port",
- "type": "string",
- "description": "Port of the Typesense instance. Ex: 8108, 80, 443. Default is 443",
- "order": 2
- },
- "protocol": {
- "title": "Protocol",
- "type": "string",
- "description": "Protocol of the Typesense instance. Ex: http or https. Default is https",
- "order": 3
- },
- "batch_size": {
- "title": "Batch size",
- "type": "string",
- "description": "How many documents should be imported together. Default 1000",
- "order": 4
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "2300fdcf-a532-419f-9f24-a014336e7966",
- "name": "YugabyteDB",
- "dockerRepository": "airbyte/destination-yugabytedb",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/yugabytedb",
- "icon": "yugabytedb.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/destinations/yugabytedb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Yugabytedb destination spec",
- "type": "object",
- "required": [ "host", "port", "username", "database", "schema" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "The Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "The Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 3306,
- "examples": [ "3306" ],
- "order": 1
- },
- "database": {
- "title": "Database",
- "description": "Name of the database.",
- "type": "string",
- "order": 2
- },
- "username": {
- "title": "Username",
- "description": "The Username which is used to access the database.",
- "type": "string",
- "order": 4
- },
- "schema": {
- "title": "Default Schema",
- "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
- "type": "string",
- "examples": [ "public" ],
- "default": "public",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "The Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 5
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 6
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "302e4d8e-08d3-4098-acd4-ac67ca365b88",
- "name": "Databend",
- "dockerRepository": "airbyte/destination-databend",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/databend",
- "icon": "databend.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/databend",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Databend",
- "type": "object",
- "required": [ "host", "username", "database" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 443,
- "examples": [ "443" ],
- "order": 2
- },
- "database": {
- "title": "DB Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 3
- },
- "table": {
- "title": "Default Table",
- "description": "The default table was written to.",
- "type": "string",
- "examples": [ "default" ],
- "default": "default",
- "order": 4
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 5
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 6
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "58e6f9da-904e-11ed-a1eb-0242ac120002",
- "name": "Teradata Vantage",
- "dockerRepository": "airbyte/destination-teradata",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.io/integrations/destinations/teradata",
- "icon": "teradata.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/destinations/teradata",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Teradata Destination Spec",
- "type": "object",
- "required": [ "host", "username" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 1
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 2
- },
- "schema": {
- "title": "Default Schema",
- "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
- "type": "string",
- "examples": [ "airbyte_td" ],
- "default": "airbyte_td",
- "order": 3
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL. When activating SSL, please select one of the connection modes.",
- "type": "boolean",
- "default": false,
- "order": 5
- },
- "ssl_mode": {
- "title": "SSL modes",
- "description": "SSL connection modes. \n disable - Chose this mode to disable encryption of communication between Airbyte and destination database\n allow - Chose this mode to enable encryption only when required by the destination database\n prefer - Chose this mode to allow unencrypted connection only if the destination database does not support encryption\n require - Chose this mode to always require encryption. If the destination database server does not support encryption, connection will fail\n verify-ca - Chose this mode to always require encryption and to verify that the destination database server has a valid SSL certificate\n verify-full - This is the most secure mode. Chose this mode to always require encryption and to verify the identity of the destination database server\n See more information - in the docs.",
- "type": "object",
- "order": 6,
- "oneOf": [ {
- "title": "disable",
- "additionalProperties": false,
- "description": "Disable SSL.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "disable",
- "enum": [ "disable" ],
- "default": "disable",
- "order": 0
- }
- }
- }, {
- "title": "allow",
- "additionalProperties": false,
- "description": "Allow SSL mode.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "allow",
- "enum": [ "allow" ],
- "default": "allow",
- "order": 0
- }
- }
- }, {
- "title": "prefer",
- "additionalProperties": false,
- "description": "Prefer SSL mode.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "prefer",
- "enum": [ "prefer" ],
- "default": "prefer",
- "order": 0
- }
- }
- }, {
- "title": "require",
- "additionalProperties": false,
- "description": "Require SSL mode.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "require",
- "enum": [ "require" ],
- "default": "require",
- "order": 0
- }
- }
- }, {
- "title": "verify-ca",
- "additionalProperties": false,
- "description": "Verify-ca SSL mode.",
- "required": [ "mode", "ssl_ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-ca",
- "enum": [ "verify-ca" ],
- "default": "verify-ca",
- "order": 0
- },
- "ssl_ca_certificate": {
- "type": "string",
- "title": "CA certificate",
- "description": "Specifies the file name of a PEM file that contains Certificate Authority (CA) certificates for use with SSLMODE=verify-ca.\n See more information - in the docs.",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- }
- }
- }, {
- "title": "verify-full",
- "additionalProperties": false,
- "description": "Verify-full SSL mode.",
- "required": [ "mode", "ssl_ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-full",
- "enum": [ "verify-full" ],
- "default": "verify-full",
- "order": 0
- },
- "ssl_ca_certificate": {
- "type": "string",
- "title": "CA certificate",
- "description": "Specifies the file name of a PEM file that contains Certificate Authority (CA) certificates for use with SSLMODE=verify-full.\n See more information - in the docs.",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- }
- }
- } ]
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 7
- }
- }
- },
- "supportsIncremental": false,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "7b7d7a0d-954c-45a0-bcfc-39a634b97736",
- "name": "Weaviate",
- "dockerRepository": "airbyte/destination-weaviate",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/weaviate",
- "icon": "weaviate.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/weaviate",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Weaviate",
- "type": "object",
- "required": [ "url" ],
- "additionalProperties": false,
- "properties": {
- "url": {
- "type": "string",
- "description": "The URL to the weaviate instance",
- "examples": [ "http://localhost:8080", "https://your-instance.semi.network" ]
- },
- "username": {
- "type": "string",
- "description": "Username used with OIDC authentication",
- "examples": [ "xyz@weaviate.io" ]
- },
- "password": {
- "type": "string",
- "description": "Password used with OIDC authentication",
- "airbyte_secret": true
- },
- "batch_size": {
- "type": "integer",
- "description": "Batch size for writing to Weaviate",
- "default": 100
- },
- "vectors": {
- "type": "string",
- "description": "Comma separated list of strings of `stream_name.vector_column_name` to specify which field holds the vectors.",
- "examples": [ "my_table.my_vector_column, another_table.vector", "mytable.vector" ]
- },
- "id_schema": {
- "type": "string",
- "description": "Comma separated list of strings of `stream_name.id_column_name` to specify which field holds the ID of the record.",
- "examples": [ "my_table.my_id_column, another_table.id", "users.user_id" ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append", "overwrite" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "94bd199c-2ff0-4aa2-b98e-17f0acb72610",
- "name": "DuckDB",
- "dockerRepository": "airbyte/destination-duckdb",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.io/integrations/destinations/duckdb",
- "icon": "duckdb.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/destinations/duckdb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "DuckDB Destination Spec",
- "type": "object",
- "required": [ "destination_path" ],
- "additionalProperties": false,
- "properties": {
- "destination_path": {
- "type": "string",
- "description": "Path to the destination.duckdb file. The file will be placed inside that local mount. For more information check out our docs",
- "example": "/local/destination.duckdb"
- },
- "schema": {
- "type": "string",
- "description": "database schema, default for duckdb is main",
- "example": "main"
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- } ],
- "sources": [ {
- "sourceDefinitionId": "9f32dab3-77cb-45a1-9d33-347aa5fbe363",
- "name": "ActiveCampaign",
- "dockerRepository": "airbyte/source-activecampaign",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/activecampaign",
- "icon": "activecampaign.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/activecampaign",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Activecampaign Spec",
- "type": "object",
- "required": [ "api_key", "account_username" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true
- },
- "account_username": {
- "type": "string",
- "description": "Account Username"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d3b7fa46-111b-419a-998a-d7f046f6d66d",
- "name": "Adjust",
- "dockerRepository": "airbyte/source-adjust",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/adjust",
- "icon": "adjust.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://raw.githubusercontent.com/appchoose/airbyte/feature/source-adjust/docs/integrations/sources/adjust.md",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "description": "Adjust reporting API connector.",
- "properties": {
- "additional_metrics": {
- "description": "Metrics names that are not pre-defined, such as cohort metrics or app specific metrics.",
- "items": {
- "type": "string"
- },
- "order": 3,
- "title": "Additional metrics for ingestion",
- "type": "array"
- },
- "api_token": {
- "airbyte_secret": true,
- "description": "Adjust API key, see https://help.adjust.com/en/article/report-service-api-authentication",
- "order": 0,
- "title": "API Token",
- "type": "string"
- },
- "dimensions": {
- "description": "Dimensions allow a user to break down metrics into groups using one or several parameters. For example, the number of installs by date, country and network. See https://help.adjust.com/en/article/reports-endpoint#dimensions for more information about the dimensions.",
- "items": {
- "enum": [ "os_name", "device_type", "app", "app_token", "store_id", "store_type", "app_network", "currency", "currency_code", "network", "campaign", "campaign_network", "campaign_id_network", "adgroup", "adgroup_network", "adgroup_id_network", "source_network", "source_id_network", "creative", "creative_network", "creative_id_network", "country", "country_code", "region", "partner_name", "partner_id" ],
- "type": "string"
- },
- "minItems": 1,
- "order": 4,
- "title": "Dimensions",
- "type": "array",
- "uniqueItems": true
- },
- "ingest_start": {
- "description": "Data ingest start date.",
- "format": "date",
- "order": 1,
- "title": "Ingest Start Date",
- "type": "string"
- },
- "metrics": {
- "description": "Select at least one metric to query.",
- "items": {
- "enum": [ "network_cost", "network_cost_diff", "network_clicks", "network_impressions", "network_installs", "network_installs_diff", "network_ecpc", "network_ecpi", "network_ecpm", "arpdau_ad", "arpdau", "arpdau_iap", "ad_impressions", "ad_rpm", "ad_revenue", "cohort_ad_revenue", "cost", "adjust_cost", "all_revenue", "cohort_all_revenue", "daus", "maus", "waus", "base_sessions", "ctr", "click_conversion_rate", "click_cost", "clicks", "paid_clicks", "deattributions", "ecpc", "gdpr_forgets", "gross_profit", "cohort_gross_profit", "impression_conversion_rate", "impression_cost", "impressions", "paid_impressions", "install_cost", "installs", "paid_installs", "installs_per_mile", "limit_ad_tracking_installs", "limit_ad_tracking_install_rate", "limit_ad_tracking_reattribution_rate", "limit_ad_tracking_reattributions", "non_organic_installs", "organic_installs", "roas_ad", "roas", "roas_iap", "reattributions", "return_on_investment", "revenue", "cohort_revenue", "revenue_events", "revenue_to_cost", "sessions", "events", "ecpi_all", "ecpi", "ecpm" ],
- "type": "string"
- },
- "minItems": 1,
- "order": 2,
- "title": "Metrics to ingest",
- "type": "array",
- "uniqueItems": true
- },
- "until_today": {
- "default": false,
- "description": "Syncs data up until today. Useful when running daily incremental syncs, and duplicates are not desired.",
- "order": 5,
- "title": "Until Today",
- "type": "boolean"
- }
- },
- "required": [ "api_token", "ingest_start", "metrics", "dimensions" ],
- "title": "Adjust Spec",
- "type": "object"
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "912eb6b7-a893-4a5b-b1c0-36ebbe2de8cd",
- "name": "Aircall",
- "dockerRepository": "airbyte/source-aircall",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/aircall",
- "icon": "aircall.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/aircall",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Aircall Spec",
- "type": "object",
- "required": [ "api_id", "api_token", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_id": {
- "title": "API ID",
- "type": "string",
- "description": "App ID found at settings https://dashboard.aircall.io/integrations/api-keys",
- "airbyte_secret": true
- },
- "api_token": {
- "title": "API Token",
- "type": "string",
- "description": "App token found at settings (Ref- https://dashboard.aircall.io/integrations/api-keys)",
- "airbyte_secret": true
- },
- "start_date": {
- "title": "Date-From Filter",
- "type": "string",
- "description": "Date time filter for incremental filter, Specify which date to extract from.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
- "examples": [ "2022-03-01T00:00:00.000Z" ],
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "14c6e7ea-97ed-4f5e-a7b5-25e9a80b8212",
- "name": "Airtable",
- "dockerRepository": "airbyte/source-airtable",
- "dockerImageTag": "3.0.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/airtable",
- "icon": "airtable.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/airtable",
- "connectionSpecification": {
- "$schema": "https://json-schema.org/draft-07/schema#",
- "title": "Airtable Source Spec",
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authentication",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "oauth2.0"
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The client ID of the Airtable developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client secret",
- "description": "The client secret the Airtable developer application.",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true
- },
- "token_expiry_date": {
- "type": "string",
- "description": "The date-time when the access token should be refreshed.",
- "format": "date-time"
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh token",
- "description": "The key to refresh the expired access token.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Personal Access Token",
- "type": "object",
- "required": [ "api_key" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "api_key"
- },
- "api_key": {
- "type": "string",
- "description": "The Personal Access Token for the Airtable account. See the Support Guide for more information on how to obtain this token.",
- "title": "Personal Access Token",
- "airbyte_secret": true,
- "examples": [ "key1234567890" ]
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_method" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- },
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- },
- "token_expiry_date": {
- "type": "string",
- "format": "date-time",
- "path_in_connector_config": [ "credentials", "token_expiry_date" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.airtable.com", "airtable.com" ]
- }
- }, {
- "sourceDefinitionId": "81ca39dc-4534-4dd2-b848-b0cfd2c11fce",
- "name": "Aha",
- "dockerRepository": "airbyte/source-aha",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/aha",
- "icon": "aha.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/aha",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Aha Spec",
- "type": "object",
- "required": [ "api_key", "url" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API Key",
- "title": "API Bearer Token"
- },
- "url": {
- "type": "string",
- "description": "URL",
- "title": "Aha Url Instance"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "db385323-9333-4fec-bec3-9e0ca9326c90",
- "name": "Alpha Vantage",
- "dockerRepository": "airbyte/source-alpha-vantage",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/alpha-vantage",
- "icon": "alpha-vantage.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/alpha-vantage",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Alpha Vantage Spec",
- "type": "object",
- "required": [ "api_key", "symbol" ],
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true,
- "order": 0
- },
- "symbol": {
- "title": "Symbol",
- "type": "string",
- "description": "Stock symbol (with exchange code)",
- "examples": [ "AAPL", "TSCO.LON" ],
- "order": 1
- },
- "interval": {
- "title": "Interval",
- "type": "string",
- "description": "Time-series data point interval. Required for intraday endpoints.\n",
- "enum": [ "1min", "5min", "15min", "30min", "60min" ],
- "default": "1min",
- "order": 2
- },
- "adjusted": {
- "title": "Adjusted?",
- "type": "boolean",
- "description": "Whether to return adjusted data. Only applicable to intraday endpoints.\n",
- "default": false,
- "order": 3
- },
- "outputsize": {
- "title": "Output Size",
- "type": "string",
- "description": "Whether to return full or compact data (the last 100 data points).\n",
- "enum": [ "compact", "full" ],
- "default": "compact",
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "1fa90628-2b9e-11ed-a261-0242ac120002",
- "name": "AlloyDB for PostgreSQL",
- "dockerRepository": "airbyte/source-alloydb",
- "dockerImageTag": "2.0.23",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/alloydb",
- "icon": "alloydb.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/postgres",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Postgres Source Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username" ],
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0,
- "group": "db"
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 5432,
- "examples": [ "5432" ],
- "order": 1,
- "group": "db"
- },
- "database": {
- "title": "Database Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 2,
- "group": "db"
- },
- "schemas": {
- "title": "Schemas",
- "description": "The list of schemas (case sensitive) to sync from. Defaults to public.",
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 0,
- "uniqueItems": true,
- "default": [ "public" ],
- "order": 3,
- "group": "db"
- },
- "username": {
- "title": "Username",
- "description": "Username to access the database.",
- "type": "string",
- "order": 4,
- "group": "auth"
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 5,
- "group": "auth",
- "always_show": true
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (Eg. key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
- "title": "JDBC URL Parameters (Advanced)",
- "type": "string",
- "order": 6,
- "group": "advanced",
- "pattern_descriptor": "key1=value1&key2=value2"
- },
- "ssl_mode": {
- "title": "SSL Modes",
- "description": "SSL connection modes. \n Read more in the docs.",
- "type": "object",
- "order": 8,
- "group": "security",
- "oneOf": [ {
- "title": "disable",
- "additionalProperties": true,
- "description": "Disables encryption of communication between Airbyte and source database.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "disable",
- "order": 0
- }
- }
- }, {
- "title": "allow",
- "additionalProperties": true,
- "description": "Enables encryption only when required by the source database.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "allow",
- "order": 0
- }
- }
- }, {
- "title": "prefer",
- "additionalProperties": true,
- "description": "Allows unencrypted connection only if the source database does not support encryption.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "prefer",
- "order": 0
- }
- }
- }, {
- "title": "require",
- "additionalProperties": true,
- "description": "Always require encryption. If the source database server does not support encryption, connection will fail.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "require",
- "order": 0
- }
- }
- }, {
- "title": "verify-ca",
- "additionalProperties": true,
- "description": "Always require encryption and verifies that the source database server has a valid SSL certificate.",
- "required": [ "mode", "ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-ca",
- "order": 0
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA Certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- },
- "client_certificate": {
- "type": "string",
- "title": "Client Certificate",
- "description": "Client certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 2,
- "always_show": true
- },
- "client_key": {
- "type": "string",
- "title": "Client Key",
- "description": "Client key",
- "airbyte_secret": true,
- "multiline": true,
- "order": 3,
- "always_show": true
- },
- "client_key_password": {
- "type": "string",
- "title": "Client key password",
- "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- }, {
- "title": "verify-full",
- "additionalProperties": true,
- "description": "This is the most secure mode. Always require encryption and verifies the identity of the source database server.",
- "required": [ "mode", "ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-full",
- "order": 0
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA Certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- },
- "client_certificate": {
- "type": "string",
- "title": "Client Certificate",
- "description": "Client certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 2,
- "always_show": true
- },
- "client_key": {
- "type": "string",
- "title": "Client Key",
- "description": "Client key",
- "airbyte_secret": true,
- "multiline": true,
- "order": 3,
- "always_show": true
- },
- "client_key_password": {
- "type": "string",
- "title": "Client key password",
- "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- },
- "replication_method": {
- "type": "object",
- "title": "Replication Method",
- "description": "Replication method for extracting data from the database.",
- "order": 9,
- "group": "advanced",
- "oneOf": [ {
- "title": "Standard",
- "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "Standard",
- "order": 0
- }
- }
- }, {
- "title": "Logical Replication (CDC)",
- "description": "Logical replication uses the Postgres write-ahead log (WAL) to detect inserts, updates, and deletes. This needs to be configured on the source database itself. Only available on Postgres 10 and above. Read the docs.",
- "required": [ "method", "replication_slot", "publication" ],
- "additionalProperties": true,
- "properties": {
- "method": {
- "type": "string",
- "const": "CDC",
- "order": 1
- },
- "plugin": {
- "type": "string",
- "title": "Plugin",
- "description": "A logical decoding plugin installed on the PostgreSQL server.",
- "enum": [ "pgoutput" ],
- "default": "pgoutput",
- "order": 2
- },
- "replication_slot": {
- "type": "string",
- "title": "Replication Slot",
- "description": "A plugin logical replication slot. Read about replication slots.",
- "order": 3
- },
- "publication": {
- "type": "string",
- "title": "Publication",
- "description": "A Postgres publication used for consuming changes. Read about publications and replication identities.",
- "order": 4
- },
- "initial_waiting_seconds": {
- "type": "integer",
- "title": "Initial Waiting Time in Seconds (Advanced)",
- "description": "The amount of time the connector will wait when it launches to determine if there is new data to sync or not. Defaults to 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about initial waiting time.",
- "default": 300,
- "order": 5,
- "min": 120,
- "max": 1200
- },
- "lsn_commit_behaviour": {
- "type": "string",
- "title": "LSN commit behaviour",
- "description": "Determines when Airbtye should flush the LSN of processed WAL logs in the source database. `After loading Data in the destination` is default. If `While reading Data` is selected, in case of a downstream failure (while loading data into the destination), next sync would result in a full sync.",
- "enum": [ "While reading Data", "After loading Data in the destination" ],
- "default": "After loading Data in the destination",
- "order": 6
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ],
- "group": "security"
- }
- },
- "groups": [ {
- "id": "db"
- }, {
- "id": "auth"
- }, {
- "id": "security",
- "title": "Security"
- }, {
- "id": "advanced",
- "title": "Advanced"
- } ]
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
- }
- }, {
- "sourceDefinitionId": "6ff047c0-f5d5-4ce5-8c81-204a830fa7e1",
- "name": "AWS CloudTrail",
- "dockerRepository": "airbyte/source-aws-cloudtrail",
- "dockerImageTag": "0.1.5",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/aws-cloudtrail",
- "icon": "awscloudtrail.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/aws-cloudtrail",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Aws CloudTrail Spec",
- "type": "object",
- "required": [ "aws_key_id", "aws_secret_key", "aws_region_name", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "aws_key_id": {
- "type": "string",
- "title": "Key ID",
- "description": "AWS CloudTrail Access Key ID. See the docs for more information on how to obtain this key.",
- "airbyte_secret": true
- },
- "aws_secret_key": {
- "type": "string",
- "title": "Secret Key",
- "description": "AWS CloudTrail Access Key ID. See the docs for more information on how to obtain this key.",
- "airbyte_secret": true
- },
- "aws_region_name": {
- "type": "string",
- "title": "Region Name",
- "description": "The default AWS Region to use, for example, us-west-1 or us-west-2. When specifying a Region inline during client initialization, this property is named region_name."
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date you would like to replicate data. Data in AWS CloudTrail is available for last 90 days only. Format: YYYY-MM-DD.",
- "examples": [ "2021-01-01" ],
- "default": "1970-01-01",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "format": "date"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "c6b0a29e-1da9-4512-9002-7bfd0cba2246",
- "name": "Amazon Ads",
- "dockerRepository": "airbyte/source-amazon-ads",
- "dockerImageTag": "1.0.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-ads",
- "icon": "amazonads.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-ads",
- "connectionSpecification": {
- "title": "Amazon Ads Spec",
- "type": "object",
- "properties": {
- "auth_type": {
- "title": "Auth Type",
- "const": "oauth2.0",
- "order": 0,
- "type": "string"
- },
- "client_id": {
- "title": "Client ID",
- "description": "The client ID of your Amazon Ads developer application. See the docs for more information.",
- "order": 1,
- "type": "string"
- },
- "client_secret": {
- "title": "Client Secret",
- "description": "The client secret of your Amazon Ads developer application. See the docs for more information.",
- "airbyte_secret": true,
- "order": 2,
- "type": "string"
- },
- "refresh_token": {
- "title": "Refresh Token",
- "description": "Amazon Ads refresh token. See the docs for more information on how to obtain this token.",
- "airbyte_secret": true,
- "order": 3,
- "type": "string"
- },
- "region": {
- "title": "Region",
- "description": "Region to pull data from (EU/NA/FE). See docs for more details.",
- "enum": [ "NA", "EU", "FE" ],
- "type": "string",
- "default": "NA",
- "order": 4
- },
- "start_date": {
- "title": "Start Date",
- "description": "The Start date for collecting reports, should not be more than 60 days in the past. In YYYY-MM-DD format",
- "examples": [ "2022-10-10", "2022-10-22" ],
- "order": 5,
- "type": "string"
- },
- "profiles": {
- "title": "Profile IDs",
- "description": "Profile IDs you want to fetch data for. See docs for more details.",
- "order": 6,
- "type": "array",
- "items": {
- "type": "integer"
- }
- },
- "state_filter": {
- "title": "State Filter",
- "description": "Reflects the state of the Display, Product, and Brand Campaign streams as enabled, paused, or archived. If you do not populate this field, it will be ignored completely.",
- "items": {
- "type": "string",
- "enum": [ "enabled", "paused", "archived" ]
- },
- "type": "array",
- "uniqueItems": true,
- "order": 7
- },
- "look_back_window": {
- "title": "Look Back Window",
- "description": "The amount of days to go back in time to get the updated data from Amazon Ads",
- "examples": [ 3, 10 ],
- "type": "integer",
- "default": 3,
- "order": 8
- },
- "report_record_types": {
- "title": "Report Record Types",
- "description": "Optional configuration which accepts an array of string of record types. Leave blank for default behaviour to pull all report types. Use this config option only if you want to pull specific report type(s). See docs for more details",
- "items": {
- "type": "string",
- "enum": [ "adGroups", "asins", "asins_keywords", "asins_targets", "campaigns", "keywords", "productAds", "targets" ]
- },
- "type": "array",
- "uniqueItems": true,
- "order": 9
- }
- },
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "additionalProperties": true
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "auth_type" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.amazon.com", "advertising-api.amazon.com", "advertising-api-eu.amazon.com", "advertising-api-fe.amazon.com" ]
- }
- }, {
- "sourceDefinitionId": "e55879a8-0ef8-4557-abcf-ab34c53ec460",
- "name": "Amazon Seller Partner",
- "dockerRepository": "airbyte/source-amazon-seller-partner",
- "dockerImageTag": "1.0.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-seller-partner",
- "icon": "amazonsellerpartner.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-seller-partner",
- "changelogUrl": "https://docs.airbyte.com/integrations/sources/amazon-seller-partner",
- "connectionSpecification": {
- "title": "Amazon Seller Partner Spec",
- "type": "object",
- "properties": {
- "app_id": {
- "title": "App Id",
- "description": "Your Amazon App ID",
- "airbyte_secret": true,
- "order": 0,
- "type": "string"
- },
- "auth_type": {
- "title": "Auth Type",
- "const": "oauth2.0",
- "order": 1,
- "type": "string"
- },
- "lwa_app_id": {
- "title": "LWA Client Id",
- "description": "Your Login with Amazon Client ID.",
- "order": 2,
- "type": "string"
- },
- "lwa_client_secret": {
- "title": "LWA Client Secret",
- "description": "Your Login with Amazon Client Secret.",
- "airbyte_secret": true,
- "order": 3,
- "type": "string"
- },
- "refresh_token": {
- "title": "Refresh Token",
- "description": "The Refresh Token obtained via OAuth flow authorization.",
- "airbyte_secret": true,
- "order": 4,
- "type": "string"
- },
- "aws_access_key": {
- "title": "AWS Access Key",
- "description": "Specifies the AWS access key used as part of the credentials to authenticate the user.",
- "airbyte_secret": true,
- "order": 5,
- "type": "string"
- },
- "aws_secret_key": {
- "title": "AWS Secret Access Key",
- "description": "Specifies the AWS secret key used as part of the credentials to authenticate the user.",
- "airbyte_secret": true,
- "order": 6,
- "type": "string"
- },
- "role_arn": {
- "title": "Role ARN",
- "description": "Specifies the Amazon Resource Name (ARN) of an IAM role that you want to use to perform operations requested using this profile. (Needs permission to 'Assume Role' STS).",
- "airbyte_secret": true,
- "order": 7,
- "type": "string"
- },
- "replication_start_date": {
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "order": 8,
- "type": "string"
- },
- "replication_end_date": {
- "title": "End Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data after this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$|^$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "order": 9,
- "type": "string"
- },
- "period_in_days": {
- "title": "Period In Days",
- "description": "Will be used for stream slicing for initial full_refresh sync when no updated state is present for reports that support sliced incremental sync.",
- "default": 90,
- "maximum": 90,
- "examples": [ "1", "10", "30", "60", "90" ],
- "order": 10,
- "type": "integer"
- },
- "report_options": {
- "title": "Report Options",
- "description": "Additional information passed to reports. This varies by report type. Must be a valid json string.",
- "examples": [ "{\"GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT\": {\"reportPeriod\": \"WEEK\"}}", "{\"GET_SOME_REPORT\": {\"custom\": \"true\"}}" ],
- "order": 11,
- "type": "string"
- },
- "max_wait_seconds": {
- "title": "Max wait time for reports (in seconds)",
- "description": "Sometimes report can take up to 30 minutes to generate. This will set the limit for how long to wait for a successful report.",
- "default": 500,
- "examples": [ "500", "1980" ],
- "order": 12,
- "type": "integer"
- },
- "aws_environment": {
- "title": "AWSEnvironment",
- "description": "An enumeration.",
- "enum": [ "PRODUCTION", "SANDBOX" ],
- "type": "string"
- },
- "region": {
- "title": "AWSRegion",
- "description": "An enumeration.",
- "enum": [ "AE", "AU", "BE", "BR", "CA", "DE", "EG", "ES", "FR", "GB", "IN", "IT", "JP", "MX", "NL", "PL", "SA", "SE", "SG", "TR", "UK", "US" ],
- "type": "string"
- }
- },
- "required": [ "app_id", "lwa_app_id", "lwa_client_secret", "refresh_token", "replication_start_date", "aws_environment", "region" ],
- "additionalProperties": true,
- "definitions": {
- "AWSEnvironment": {
- "title": "AWSEnvironment",
- "description": "An enumeration.",
- "enum": [ "PRODUCTION", "SANDBOX" ],
- "type": "string"
- },
- "AWSRegion": {
- "title": "AWSRegion",
- "description": "An enumeration.",
- "enum": [ "AE", "AU", "BE", "BR", "CA", "DE", "EG", "ES", "FR", "GB", "IN", "IT", "JP", "MX", "NL", "PL", "SA", "SE", "SG", "TR", "UK", "US" ],
- "type": "string"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "auth_type" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "app_id": {
- "type": "string",
- "path_in_connector_config": [ "app_id" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "lwa_app_id": {
- "type": "string"
- },
- "lwa_client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "lwa_app_id": {
- "type": "string",
- "path_in_connector_config": [ "lwa_app_id" ]
- },
- "lwa_client_secret": {
- "type": "string",
- "path_in_connector_config": [ "lwa_client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "983fd355-6bf3-4709-91b5-37afa391eeb6",
- "name": "Amazon SQS",
- "dockerRepository": "airbyte/source-amazon-sqs",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-sqs",
- "icon": "awssqs.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-sqs",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Amazon SQS Source Spec",
- "type": "object",
- "required": [ "queue_url", "region", "delete_messages" ],
- "additionalProperties": false,
- "properties": {
- "queue_url": {
- "title": "Queue URL",
- "description": "URL of the SQS Queue",
- "type": "string",
- "examples": [ "https://sqs.eu-west-1.amazonaws.com/1234567890/my-example-queue" ],
- "order": 0
- },
- "region": {
- "title": "AWS Region",
- "description": "AWS Region of the SQS Queue",
- "type": "string",
- "enum": [ "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
- "order": 1
- },
- "delete_messages": {
- "title": "Delete Messages After Read",
- "description": "If Enabled, messages will be deleted from the SQS Queue after being read. If Disabled, messages are left in the queue and can be read more than once. WARNING: Enabling this option can result in data loss in cases of failure, use with caution, see documentation for more detail. ",
- "type": "boolean",
- "default": false,
- "order": 2
- },
- "max_batch_size": {
- "title": "Max Batch Size",
- "description": "Max amount of messages to get in one batch (10 max)",
- "type": "integer",
- "examples": [ "5" ],
- "order": 3
- },
- "max_wait_time": {
- "title": "Max Wait Time",
- "description": "Max amount of time in seconds to wait for messages in a single poll (20 max)",
- "type": "integer",
- "examples": [ "5" ],
- "order": 4
- },
- "attributes_to_return": {
- "title": "Message Attributes To Return",
- "description": "Comma separated list of Mesage Attribute names to return",
- "type": "string",
- "examples": [ "attr1,attr2" ],
- "order": 5
- },
- "visibility_timeout": {
- "title": "Message Visibility Timeout",
- "description": "Modify the Visibility Timeout of the individual message from the Queue's default (seconds).",
- "type": "integer",
- "examples": [ "15" ],
- "order": 6
- },
- "access_key": {
- "title": "AWS IAM Access Key ID",
- "description": "The Access Key ID of the AWS IAM Role to use for pulling messages",
- "type": "string",
- "examples": [ "xxxxxHRNxxx3TBxxxxxx" ],
- "airbyte_secret": true,
- "order": 7
- },
- "secret_key": {
- "title": "AWS IAM Secret Key",
- "description": "The Secret Key of the AWS IAM Role to use for pulling messages",
- "type": "string",
- "examples": [ "hu+qE5exxxxT6o/ZrKsxxxxxxBhxxXLexxxxxVKz" ],
- "airbyte_secret": true,
- "order": 8
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "fa9f58c6-2d03-4237-aaa4-07d75e0c1396",
- "name": "Amplitude",
- "dockerRepository": "airbyte/source-amplitude",
- "dockerImageTag": "0.2.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/amplitude",
- "icon": "amplitude.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/amplitude",
- "connectionSpecification": {
- "$schema": "https://json-schema.org/draft-07/schema#",
- "title": "Amplitude Spec",
- "type": "object",
- "required": [ "api_key", "secret_key", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "data_region": {
- "type": "string",
- "title": "Data region",
- "description": "Amplitude data region server",
- "enum": [ "Standard Server", "EU Residency Server" ],
- "default": "Standard Server"
- },
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Amplitude API Key. See the setup guide for more information on how to obtain this key.",
- "airbyte_secret": true
- },
- "secret_key": {
- "type": "string",
- "title": "Secret Key",
- "description": "Amplitude Secret Key. See the setup guide for more information on how to obtain this key.",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Replication Start Date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2021-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2021-01-25T00:00:00Z" ]
- },
- "request_time_range": {
- "type": "integer",
- "title": "Request time range",
- "description": "According to Considerations too big time range in request can cause a timeout error. In this case, set shorter time interval in hours.",
- "default": 24,
- "minimum": 1,
- "maximum": 8760
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "amplitude.com", "analytics.eu.amplitude.com" ]
- }
- }, {
- "sourceDefinitionId": "47f17145-fe20-4ef5-a548-e29b048adf84",
- "name": "Apify Dataset",
- "dockerRepository": "airbyte/source-apify-dataset",
- "dockerImageTag": "0.1.11",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/apify-dataset",
- "icon": "apify.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/apify-dataset",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Apify Dataset Spec",
- "type": "object",
- "required": [ "datasetId" ],
- "additionalProperties": false,
- "properties": {
- "datasetId": {
- "type": "string",
- "title": "Dataset ID",
- "description": "ID of the dataset you would like to load to Airbyte."
- },
- "clean": {
- "type": "boolean",
- "title": "Clean",
- "description": "If set to true, only clean items will be downloaded from the dataset. See description of what clean means in Apify API docs. If not sure, set clean to false."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "b4375641-e270-41d3-9c20-4f9cecad87a8",
- "name": "Appfollow",
- "dockerRepository": "airbyte/source-appfollow",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/appfollow",
- "icon": "appfollow.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/appfollow",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Appfollow Spec",
- "type": "object",
- "required": [ "ext_id", "country", "cid", "api_secret" ],
- "additionalProperties": true,
- "properties": {
- "ext_id": {
- "type": "string",
- "title": "app external id",
- "description": "for App Store — this is 9-10 digits identification number; for Google Play — this is bundle name;"
- },
- "cid": {
- "type": "string",
- "title": "client id",
- "description": "client id provided by Appfollow"
- },
- "api_secret": {
- "type": "string",
- "title": "api secret",
- "description": "api secret provided by Appfollow",
- "airbyte_secret": true
- },
- "country": {
- "type": "string",
- "title": "country",
- "description": "getting data by Country"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "e59c8416-c2fa-4bd3-9e95-52677ea281c1",
- "name": "Apple Search Ads",
- "dockerRepository": "airbyte/source-apple-search-ads",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/apple-search-ads",
- "icon": "apple.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/apple-search-ads",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Apple Search Ads Spec",
- "type": "object",
- "required": [ "org_id", "client_id", "client_secret", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "org_id": {
- "type": "integer",
- "title": "Org Id",
- "description": "The identifier of the organization that owns the campaign. Your Org Id is the same as your account in the Apple Search Ads UI."
- },
- "client_id": {
- "type": "string",
- "title": "Client Id",
- "description": "A user identifier for the token request. See here",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "A string that authenticates the user’s setup request. See here",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "Start getting data from that date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "2020-01-01" ]
- },
- "end_date": {
- "type": "string",
- "title": "End Date",
- "description": "Data is retrieved until that date (included)",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "2021-01-01" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "16447954-e6a8-4593-b140-43dea13bc457",
- "name": "AppsFlyer",
- "dockerRepository": "airbyte/source-appsflyer",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/appsflyer",
- "icon": "appsflyer.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Appsflyer Spec",
- "type": "object",
- "required": [ "app_id", "api_token", "start_date" ],
- "additionalProperties": false,
- "properties": {
- "app_id": {
- "type": "string",
- "description": "App identifier as found in AppsFlyer."
- },
- "api_token": {
- "type": "string",
- "description": "Pull API token for authentication. If you change the account admin, the token changes, and you must update scripts with the new token. Get the API token in the Dashboard.",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "description": "The default value to use if no bookmark exists for an endpoint. Raw Reports historical lookback is limited to 90 days.",
- "examples": [ "2021-11-16", "2021-11-16 15:00:00" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}( [0-9]{2}:[0-9]{2}:[0-9]{2})?$"
- },
- "timezone": {
- "type": "string",
- "description": "Time zone in which date times are stored. The project timezone may be found in the App settings in the AppsFlyer console.",
- "default": "UTC",
- "examples": [ "US/Pacific", "UTC" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "2af123bf-0aaf-4e0d-9784-cb497f23741a",
- "name": "Appstore",
- "dockerRepository": "airbyte/source-appstore-singer",
- "dockerImageTag": "0.2.6",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/appstore",
- "icon": "appstore.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/appstore",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Appstore Singer Spec",
- "type": "object",
- "required": [ "key_id", "private_key", "issuer_id", "vendor", "start_date" ],
- "additionalProperties": false,
- "properties": {
- "key_id": {
- "type": "string",
- "title": "Key ID",
- "description": "Appstore Key ID. See the docs for more information on how to obtain this key."
- },
- "private_key": {
- "type": "string",
- "title": "Private Key",
- "description": "Appstore Private Key. See the docs for more information on how to obtain this key.",
- "airbyte_secret": true,
- "multiline": true
- },
- "issuer_id": {
- "type": "string",
- "title": "Issuer ID",
- "description": "Appstore Issuer ID. See the docs for more information on how to obtain this ID."
- },
- "vendor": {
- "type": "string",
- "title": "Vendor ID",
- "description": "Appstore Vendor ID. See the docs for more information on how to obtain this ID."
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2020-11-16T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d0243522-dccf-4978-8ba0-37ed47a0bdbf",
- "name": "Asana",
- "dockerRepository": "airbyte/source-asana",
- "dockerImageTag": "0.1.5",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/asana",
- "icon": "asana.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Asana Spec",
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authentication mechanism",
- "description": "Choose how to authenticate to Github",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "Authenticate with Personal Access Token",
- "required": [ "personal_access_token" ],
- "properties": {
- "option_title": {
- "type": "string",
- "title": "Credentials title",
- "description": "PAT Credentials",
- "const": "PAT Credentials"
- },
- "personal_access_token": {
- "type": "string",
- "title": "Personal Access Token",
- "description": "Asana Personal Access Token (generate yours here).",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Authenticate via Asana (Oauth)",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "option_title": {
- "type": "string",
- "title": "Credentials title",
- "description": "OAuth Credentials",
- "const": "OAuth Credentials"
- },
- "client_id": {
- "type": "string",
- "title": "",
- "description": "",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "",
- "description": "",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "",
- "description": "",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "1" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta"
- }, {
- "sourceDefinitionId": "4e8c9fa0-3634-499b-b948-11581b5c3efa",
- "name": "Ashby",
- "dockerRepository": "airbyte/source-ashby",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/ashby",
- "icon": "ashby.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://developers.ashbyhq.com/reference/introduction",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Ashby Spec",
- "type": "object",
- "required": [ "api_key", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "Ashby API key",
- "description": "The Ashby API Key, see doc here.",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2017-01-25T00:00:00Z" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6c504e48-14aa-4221-9a72-19cf5ff1ae78",
- "name": "Auth0",
- "dockerRepository": "airbyte/source-auth0",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/auth0",
- "icon": "auth0.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://auth0.com/docs/api/management/v2/",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Auth0 Management API Spec",
- "type": "object",
- "required": [ "base_url", "credentials" ],
- "additionalProperties": true,
- "properties": {
- "base_url": {
- "type": "string",
- "title": "Base URL",
- "examples": [ "https://dev-yourOrg.us.auth0.com/" ],
- "description": "The Authentication API is served over HTTPS. All URLs referenced in the documentation have the following base `https://YOUR_DOMAIN`"
- },
- "credentials": {
- "title": "Authentication Method",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2 Confidential Application",
- "required": [ "auth_type", "client_id", "client_secret", "audience" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "title": "Authentication Method",
- "const": "oauth2_confidential_application",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "description": "Your application's Client ID. You can find this value on the application's settings tab after you login the admin portal.",
- "type": "string",
- "examples": [ "Client_ID" ]
- },
- "client_secret": {
- "title": "Client Secret",
- "description": "Your application's Client Secret. You can find this value on the application's settings tab after you login the admin portal.",
- "type": "string",
- "examples": [ "Client_Secret" ],
- "airbyte_secret": true
- },
- "audience": {
- "title": "Audience",
- "description": "The audience for the token, which is your API. You can find this in the Identifier field on your API's settings tab",
- "type": "string",
- "examples": [ "https://dev-yourOrg.us.auth0.com/api/v2/" ]
- }
- }
- }, {
- "type": "object",
- "title": "OAuth2 Access Token",
- "required": [ "access_token", "auth_type" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "title": "Authentication Method",
- "const": "oauth2_access_token",
- "order": 0
- },
- "access_token": {
- "title": "OAuth2 Access Token",
- "description": "Also called API Access Token The access token used to call the Auth0 Management API Token. It's a JWT that contains specific grant permissions knowns as scopes.",
- "type": "string",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "798ae795-5189-42b6-b64e-3cb91db93338",
- "name": "Azure Table Storage",
- "dockerRepository": "airbyte/source-azure-table",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/azure-table",
- "icon": "azureblobstorage.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Azure Data Table Spec",
- "type": "object",
- "required": [ "storage_account_name", "storage_access_key" ],
- "properties": {
- "storage_account_name": {
- "title": "Account Name",
- "type": "string",
- "description": "The name of your storage account.",
- "order": 0,
- "airbyte_secret": false
- },
- "storage_access_key": {
- "title": "Access Key",
- "type": "string",
- "description": "Azure Table Storage Access Key. See the docs for more information on how to obtain this key.",
- "order": 1,
- "airbyte_secret": true
- },
- "storage_endpoint_suffix": {
- "title": "Endpoint Suffix",
- "type": "string",
- "description": "Azure Table Storage service account URL suffix. See the docs for more information on how to obtain endpoint suffix",
- "order": 2,
- "default": "core.windows.net",
- "examples": [ "core.windows.net", "core.chinacloudapi.cn" ],
- "airbyte_secret": false
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "fdaaba68-4875-4ed9-8fcd-4ae1e0a25093",
- "name": "Azure Blob Storage",
- "dockerRepository": "airbyte/source-azure-blob-storage",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/azure-blob-storage",
- "icon": "azureblobstorage.svg",
- "sourceType": "file",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/azureblobstorage",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "AzureBlobStorage Source Spec",
- "type": "object",
- "required": [ "azure_blob_storage_account_name", "azure_blob_storage_account_key", "azure_blob_storage_container_name", "format" ],
- "additionalProperties": true,
- "properties": {
- "azure_blob_storage_endpoint": {
- "title": "Endpoint Domain Name",
- "type": "string",
- "default": "blob.core.windows.net",
- "description": "This is Azure Blob Storage endpoint domain name. Leave default value (or leave it empty if run container from command line) to use Microsoft native from example.",
- "examples": [ "blob.core.windows.net" ]
- },
- "azure_blob_storage_container_name": {
- "title": "Azure blob storage container (Bucket) Name",
- "type": "string",
- "description": "The name of the Azure blob storage container.",
- "examples": [ "airbytetescontainername" ]
- },
- "azure_blob_storage_account_name": {
- "title": "Azure Blob Storage account name",
- "type": "string",
- "description": "The account's name of the Azure Blob Storage.",
- "examples": [ "airbyte5storage" ]
- },
- "azure_blob_storage_account_key": {
- "title": "Azure Blob Storage account key",
- "description": "The Azure blob storage account key.",
- "airbyte_secret": true,
- "type": "string",
- "examples": [ "Z8ZkZpteggFx394vm+PJHnGTvdRncaYS+JhLKdj789YNmD+iyGTnG+PV+POiuYNhBg/ACS+LKjd%4FG3FHGN12Nd==" ]
- },
- "azure_blob_storage_blobs_prefix": {
- "title": "Azure Blob Storage blobs prefix",
- "description": "The Azure blob storage prefix to be applied",
- "type": "string",
- "examples": [ "FolderA/FolderB/" ]
- },
- "azure_blob_storage_schema_inference_limit": {
- "title": "Azure Blob Storage schema inference limit",
- "description": "The Azure blob storage blobs to scan for inferring the schema, useful on large amounts of data with consistent structure",
- "type": "integer",
- "examples": [ "500" ]
- },
- "format": {
- "title": "Input Format",
- "type": "object",
- "description": "Input data format",
- "oneOf": [ {
- "title": "JSON Lines: newline-delimited JSON",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "type": "string",
- "const": "JSONL"
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "971c3e1e-78a5-411e-ad56-c4052b50876b",
- "name": "Babelforce",
- "dockerRepository": "airbyte/source-babelforce",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/babelforce",
- "icon": "babelforce.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Babelforce Spec",
- "type": "object",
- "required": [ "region", "access_key_id", "access_token" ],
- "additionalProperties": false,
- "properties": {
- "region": {
- "type": "string",
- "title": "Region",
- "default": "services",
- "description": "Babelforce region",
- "enum": [ "services", "us-east", "ap-southeast" ],
- "order": 1
- },
- "access_key_id": {
- "type": "string",
- "title": "Access Key ID",
- "description": "The Babelforce access key ID",
- "airbyte_secret": true,
- "order": 2
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The Babelforce access token",
- "airbyte_secret": true,
- "order": 3
- },
- "date_created_from": {
- "type": "integer",
- "title": "Date Created from",
- "description": "Timestamp in Unix the replication from Babelforce API will start from. For example 1651363200 which corresponds to 2022-05-01 00:00:00.",
- "examples": [ 1651363200 ],
- "order": 4
- },
- "date_created_to": {
- "type": "integer",
- "title": "Date Created to",
- "description": "Timestamp in Unix the replication from Babelforce will be up to. For example 1651363200 which corresponds to 2022-05-01 00:00:00.",
- "examples": [ 1651363200 ],
- "order": 5
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "90916976-a132-4ce9-8bce-82a03dd58788",
- "name": "BambooHR",
- "dockerRepository": "airbyte/source-bamboo-hr",
- "dockerImageTag": "0.2.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/bamboo-hr",
- "icon": "bamboohr.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/bamboo-hr",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Bamboo HR Spec",
- "type": "object",
- "required": [ "subdomain", "api_key" ],
- "additionalProperties": true,
- "properties": {
- "subdomain": {
- "type": "string",
- "description": "Sub Domain of bamboo hr"
- },
- "api_key": {
- "type": "string",
- "description": "Api key of bamboo hr",
- "airbyte_secret": true
- },
- "custom_reports_fields": {
- "type": "string",
- "default": "",
- "description": "Comma-separated list of fields to include in custom reports."
- },
- "custom_reports_include_default_fields": {
- "type": "boolean",
- "default": true,
- "description": "If true, the custom reports endpoint will include the default fields defined here: https://documentation.bamboohr.com/docs/list-of-field-names."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "59c5501b-9f95-411e-9269-7143c939adbd",
- "name": "BigCommerce",
- "dockerRepository": "airbyte/source-bigcommerce",
- "dockerImageTag": "0.1.10",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/bigcommerce",
- "icon": "bigcommerce.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/bigcommerce",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "BigCommerce Source CDK Specifications",
- "type": "object",
- "required": [ "start_date", "store_hash", "access_token" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date you would like to replicate data. Format: YYYY-MM-DD.",
- "examples": [ "2021-01-01" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
- },
- "store_hash": {
- "type": "string",
- "title": "Store Hash",
- "description": "The hash code of the store. For https://api.bigcommerce.com/stores/HASH_CODE/v3/, The store's hash code is 'HASH_CODE'."
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "bfd1ddf8-ae8a-4620-b1d7-55597d2ba08c",
- "name": "BigQuery",
- "dockerRepository": "airbyte/source-bigquery",
- "dockerImageTag": "0.2.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/bigquery",
- "icon": "bigquery.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/bigquery",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "BigQuery Source Spec",
- "type": "object",
- "required": [ "project_id", "credentials_json" ],
- "properties": {
- "project_id": {
- "type": "string",
- "description": "The GCP project ID for the project containing the target BigQuery dataset.",
- "title": "Project ID"
- },
- "dataset_id": {
- "type": "string",
- "description": "The dataset ID to search for tables and views. If you are only loading data from one dataset, setting this option could result in much faster schema discovery.",
- "title": "Default Dataset ID"
- },
- "credentials_json": {
- "type": "string",
- "description": "The contents of your Service Account Key JSON file. See the docs for more information on how to obtain this key.",
- "title": "Credentials JSON",
- "airbyte_secret": true
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ ],
- "supported_sync_modes": [ "overwrite", "append", "append_dedup" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "47f25999-dd5e-4636-8c39-e7cea2453331",
- "name": "Bing Ads",
- "dockerRepository": "airbyte/source-bing-ads",
- "dockerImageTag": "0.1.19",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/bing-ads",
- "icon": "bingads.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/bing-ads",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Bing Ads Spec",
- "type": "object",
- "required": [ "developer_token", "client_id", "refresh_token", "reports_start_date" ],
- "additionalProperties": true,
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "oauth2.0"
- },
- "tenant_id": {
- "type": "string",
- "title": "Tenant ID",
- "description": "The Tenant ID of your Microsoft Advertising developer application. Set this to \"common\" unless you know you need a different value.",
- "airbyte_secret": true,
- "default": "common",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your Microsoft Advertising developer application.",
- "airbyte_secret": true,
- "order": 1
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your Microsoft Advertising developer application.",
- "default": "",
- "airbyte_secret": true,
- "order": 2
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "Refresh Token to renew the expired Access Token.",
- "airbyte_secret": true,
- "order": 3
- },
- "developer_token": {
- "type": "string",
- "title": "Developer Token",
- "description": "Developer token associated with user. See more info in the docs.",
- "airbyte_secret": true,
- "order": 4
- },
- "reports_start_date": {
- "type": "string",
- "title": "Reports replication start date",
- "format": "date",
- "default": "2020-01-01",
- "description": "The start date from which to begin replicating report data. Any data generated before this date will not be replicated in reports. This is a UTC date in YYYY-MM-DD format.",
- "order": 5
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "auth_method" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "tenant_id": {
- "type": "string",
- "path_in_connector_config": [ "tenant_id" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "bingads.microsoft.com", "login.microsoftonline.com", "login.live.com", "login.windows-ppe.net", "ads.microsoft.com", "api.ads.microsoft.com" ]
- }
- }, {
- "sourceDefinitionId": "63cea06f-1c75-458d-88fe-ad48c7cb27fd",
- "name": "Braintree",
- "dockerRepository": "airbyte/source-braintree",
- "dockerImageTag": "0.1.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/braintree",
- "icon": "braintree.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/braintree",
- "connectionSpecification": {
- "title": "Braintree Spec",
- "type": "object",
- "properties": {
- "merchant_id": {
- "title": "Merchant ID",
- "description": "The unique identifier for your entire gateway account. See the docs for more information on how to obtain this ID.",
- "name": "Merchant ID",
- "type": "string"
- },
- "public_key": {
- "title": "Public Key",
- "description": "Braintree Public Key. See the docs for more information on how to obtain this key.",
- "name": "Public Key",
- "type": "string"
- },
- "private_key": {
- "title": "Private Key",
- "description": "Braintree Private Key. See the docs for more information on how to obtain this key.",
- "name": "Private Key",
- "airbyte_secret": true,
- "type": "string"
- },
- "start_date": {
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "name": "Start Date",
- "examples": [ "2020", "2020-12-30", "2020-11-22 20:20:05" ],
- "type": "string",
- "format": "date-time"
- },
- "environment": {
- "title": "Environment",
- "description": "Environment specifies where the data will come from.",
- "name": "Environment",
- "examples": [ "sandbox", "production", "qa", "development" ],
- "enum": [ "Development", "Sandbox", "Qa", "Production" ],
- "type": "string"
- }
- },
- "required": [ "merchant_id", "public_key", "private_key", "environment" ]
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "7c37685e-8512-4901-addf-9afbef6c0de9",
- "name": "Breezometer",
- "dockerRepository": "airbyte/source-breezometer",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/breezometer",
- "icon": "breezometer.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/breezometer",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Breezometer Spec",
- "type": "object",
- "required": [ "api_key", "latitude", "longitude" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "tittle": "API Key",
- "description": "Your API Access Key. See here.",
- "airbyte_secret": true
- },
- "latitude": {
- "type": "string",
- "tittle": "Latitude",
- "description": "Latitude of the monitored location.",
- "examples": [ "54.675003" ]
- },
- "longitude": {
- "type": "string",
- "tittle": "Longitude",
- "description": "Longitude of the monitored location.",
- "examples": [ "-113.550282" ]
- },
- "days_to_forecast": {
- "type": "integer",
- "tittle": "Days to Forecast",
- "description": "Number of days to forecast. Minimum 1, maximum 3. Valid for Polen and Weather Forecast streams.",
- "examples": [ 3 ]
- },
- "hours_to_forecast": {
- "type": "integer",
- "tittle": "Hours to Forecast",
- "description": "Number of hours to forecast. Minimum 1, maximum 96. Valid for Air Quality Forecast stream.",
- "examples": [ 30 ]
- },
- "historic_hours": {
- "type": "integer",
- "tittle": "Historic Hours",
- "description": "Number of hours retireve from Air Quality History stream. Minimum 1, maximum 720.",
- "examples": [ 30 ]
- },
- "radius": {
- "type": "integer",
- "tittle": "Radius",
- "description": "Desired radius from the location provided. Minimum 5, maximum 100. Valid for Wildfires streams.",
- "examples": [ 50 ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "dc98a6ad-2dd1-47b6-9529-2ec35820f9c6",
- "name": "CallRail",
- "dockerRepository": "airbyte/source-callrail",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/callrail",
- "icon": "callrail.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/callrail",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Call Rail Spec",
- "type": "object",
- "required": [ "api_key", "account_id", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API access key",
- "airbyte_secret": true
- },
- "account_id": {
- "type": "string",
- "description": "Account ID",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "description": "Start getting data from that date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "%Y-%m-%d" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "bb1a6d31-6879-4819-a2bd-3eed299ea8e2",
- "name": "Cart.com",
- "dockerRepository": "airbyte/source-cart",
- "dockerImageTag": "0.2.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/cart",
- "icon": "cart.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/cart",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Cart.com Spec",
- "type": "object",
- "required": [ "start_date" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authorization Method",
- "description": "",
- "type": "object",
- "oneOf": [ {
- "title": "Central API Router",
- "type": "object",
- "order": 0,
- "required": [ "auth_type", "user_name", "user_secret", "site_id" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "CENTRAL_API_ROUTER",
- "order": 0
- },
- "user_name": {
- "type": "string",
- "title": "User Name",
- "description": "Enter your application's User Name",
- "airbyte_secret": true,
- "order": 1
- },
- "user_secret": {
- "type": "string",
- "title": "User Secret",
- "description": "Enter your application's User Secret",
- "airbyte_secret": true,
- "order": 2
- },
- "site_id": {
- "type": "string",
- "title": "Site ID",
- "description": "You can determine a site provisioning site Id by hitting https://site.com/store/sitemonitor.aspx and reading the response param PSID",
- "airbyte_secret": true,
- "order": 3
- }
- }
- }, {
- "title": "Single Store Access Token",
- "type": "object",
- "order": 1,
- "required": [ "auth_type", "access_token", "store_name" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "SINGLE_STORE_ACCESS_TOKEN",
- "order": 0
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "airbyte_secret": true,
- "order": 1,
- "description": "Access Token for making authenticated requests."
- },
- "store_name": {
- "type": "string",
- "title": "Store Name",
- "order": 2,
- "description": "The name of Cart.com Online Store. All API URLs start with https://[mystorename.com]/api/v1/, where [mystorename.com] is the domain name of your store."
- }
- }
- } ]
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "The date from which you'd like to replicate the data",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2021-01-01T00:00:00Z" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "686473f1-76d9-4994-9cc7-9b13da46147c",
- "name": "Chargebee",
- "dockerRepository": "airbyte/source-chargebee",
- "dockerImageTag": "0.2.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/chargebee",
- "icon": "chargebee.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://apidocs.chargebee.com/docs/api",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Chargebee Spec",
- "type": "object",
- "required": [ "site", "site_api_key", "start_date", "product_catalog" ],
- "additionalProperties": true,
- "properties": {
- "site_api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Chargebee API Key. See the docs for more information on how to obtain this key.",
- "airbyte_secret": true,
- "order": 0
- },
- "site": {
- "type": "string",
- "title": "Site",
- "description": "The site prefix for your Chargebee instance.",
- "examples": [ "airbyte-test" ],
- "order": 1
- },
- "start_date": {
- "type": "string",
- "format": "date-time",
- "title": "Start Date",
- "description": "UTC date and time in the format 2021-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2021-01-25T00:00:00Z" ],
- "order": 2
- },
- "product_catalog": {
- "type": "string",
- "title": "Product Catalog",
- "description": "Product Catalog version of your Chargebee site. Instructions on how to find your version you may find here under `API Version` section.",
- "enum": [ "1.0", "2.0" ],
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*.chargebee.com" ]
- }
- }, {
- "sourceDefinitionId": "9b2d3607-7222-4709-9fa2-c2abdebbdd88",
- "name": "Chargify",
- "dockerRepository": "airbyte/source-chargify",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/chargify",
- "icon": "chargify.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/chargify",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Chargify Spec",
- "type": "object",
- "required": [ "api_key", "domain" ],
- "additionalProperties": false,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "Chargify API Key.",
- "airbyte_secret": true
- },
- "domain": {
- "type": "string",
- "description": "Chargify domain. Normally this domain follows the following format companyname.chargify.com"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "b6604cbd-1b12-4c08-8767-e140d0fb0877",
- "name": "Chartmogul",
- "dockerRepository": "airbyte/source-chartmogul",
- "dockerImageTag": "0.2.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/chartmogul",
- "icon": "chartmogul.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/chartmogul",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Chartmogul Spec",
- "type": "object",
- "required": [ "api_key", "start_date", "interval" ],
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API key",
- "description": "Your Chartmogul API key. See the docs for info on how to obtain this.",
- "airbyte_secret": true,
- "order": 0
- },
- "start_date": {
- "type": "string",
- "title": "Start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. When feasible, any data before this date will not be replicated.",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "order": 1,
- "format": "date-time"
- },
- "interval": {
- "type": "string",
- "title": "Interval",
- "description": "Some APIs such as Metrics require intervals to cluster data.",
- "enum": [ "day", "week", "month", "quarter" ],
- "default": "month",
- "order": 2
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.chartmogul.com" ]
- }
- }, {
- "sourceDefinitionId": "bad83517-5e54-4a3d-9b53-63e85fbd4d7c",
- "name": "ClickHouse",
- "dockerRepository": "airbyte/source-clickhouse",
- "dockerImageTag": "0.1.17",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/clickhouse",
- "icon": "clickhouse.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/clickhouse",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "ClickHouse Source Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username" ],
- "properties": {
- "host": {
- "description": "The host endpoint of the Clickhouse cluster.",
- "title": "Host",
- "type": "string",
- "order": 0
- },
- "port": {
- "description": "The port of the database.",
- "title": "Port",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 8123,
- "examples": [ "8123" ],
- "order": 1
- },
- "database": {
- "description": "The name of the database.",
- "title": "Database",
- "type": "string",
- "examples": [ "default" ],
- "order": 2
- },
- "username": {
- "description": "The username which is used to access the database.",
- "title": "Username",
- "type": "string",
- "order": 3
- },
- "password": {
- "description": "The password associated with this username.",
- "title": "Password",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (Eg. key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
- "title": "JDBC URL Parameters (Advanced)",
- "type": "string",
- "order": 5
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL.",
- "type": "boolean",
- "default": true,
- "order": 6
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
- }
- }, {
- "sourceDefinitionId": "311a7a27-3fb5-4f7e-8265-5e4afe258b66",
- "name": "ClickUp",
- "dockerRepository": "airbyte/source-clickup-api",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/click-up",
- "icon": "clickup.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "ClickUp Api Spec",
- "type": "object",
- "required": [ "api_token" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "type": "string",
- "description": "Every ClickUp API call required authentication. This field is your personal API token. See here.",
- "airbyte_secret": true
- },
- "team_id": {
- "type": "string",
- "description": "The ID of your team in ClickUp. Retrieve it from the `/team` of the ClickUp API. See here."
- },
- "space_id": {
- "type": "string",
- "description": "The ID of your space in your workspace. Retrieve it from the `/team/{team_id}/space` of the ClickUp API. See here."
- },
- "folder_id": {
- "type": "string",
- "description": "The ID of your folder in your space. Retrieve it from the `/space/{space_id}/folder` of the ClickUp API. See here."
- },
- "list_id": {
- "type": "string",
- "description": "The ID of your list in your folder. Retrieve it from the `/folder/{folder_id}/list` of the ClickUp API. See here."
- },
- "include_closed_tasks": {
- "title": "Include Closed Tasks",
- "type": "boolean",
- "default": false,
- "description": "Include or exclude closed tasks. By default, they are excluded. See here."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "dfffecb7-9a13-43e9-acdc-b92af7997ca9",
- "name": "Close.com",
- "dockerRepository": "airbyte/source-close-com",
- "dockerImageTag": "0.2.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/close-com",
- "icon": "close.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/close-com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Close.com Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "Close.com API key (usually starts with 'api_'; find yours here).",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "description": "The start date to sync data. Leave blank for full sync. Format: YYYY-MM-DD.",
- "examples": [ "2021-01-01" ],
- "default": "2021-01-01",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.close.com" ]
- }
- }, {
- "sourceDefinitionId": "9cdd4183-d0ba-40c3-aad3-6f46d4103974",
- "name": "CoinGecko Coins",
- "dockerRepository": "airbyte/source-coingecko-coins",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/coingecko-coins",
- "icon": "coingeckocoins.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "CoinGecko Coins Spec",
- "type": "object",
- "required": [ "coin_id", "vs_currency", "days", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API Key (for pro users)",
- "airbyte_secret": true,
- "order": 0
- },
- "coin_id": {
- "type": "string",
- "description": "CoinGecko coin ID (e.g. bitcoin). Can be retrieved from the\n`/coins/list` endpoint.\n",
- "order": 1
- },
- "vs_currency": {
- "type": "string",
- "description": "The target currency of market data (e.g. usd, eur, jpy, etc.)\n",
- "order": 2
- },
- "days": {
- "type": "string",
- "description": "The number of days of data for market chart.\n",
- "enum": [ "1", "7", "14", "30", "90", "180", "365", "max" ],
- "default": "30",
- "order": 3
- },
- "start_date": {
- "type": "string",
- "description": "The start date for the historical data stream in dd-mm-yyyy format.\n",
- "format": "date",
- "pattern": "^[0-9]{2}-[0-9]{2}-[0-9]{4}$",
- "order": 4
- },
- "end_date": {
- "type": "string",
- "description": "The end date for the historical data stream in dd-mm-yyyy format.\n",
- "format": "date",
- "pattern": "^[0-9]{2}-[0-9]{2}-[0-9]{4}$",
- "order": 5
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "9fa5862c-da7c-11eb-8d19-0242ac130003",
- "name": "Cockroachdb",
- "dockerRepository": "airbyte/source-cockroachdb",
- "dockerImageTag": "0.1.22",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/cockroachdb",
- "icon": "cockroachdb.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/cockroachdb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Cockroach Source Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username" ],
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 5432,
- "examples": [ "5432" ],
- "order": 1
- },
- "database": {
- "title": "DB Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 2
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (Eg. key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
- "title": "JDBC URL Parameters (Advanced)",
- "type": "string",
- "order": 5
- },
- "ssl": {
- "title": "Connect using SSL",
- "description": "Encrypt client/server communications for increased security.",
- "type": "boolean",
- "default": false,
- "order": 6
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "${host}" ]
- }
- }, {
- "sourceDefinitionId": "27f910fd-f832-4b2e-bcfd-6ab342e434d8",
- "name": "Coda",
- "dockerRepository": "airbyte/source-coda",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/coda",
- "icon": "coda.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/coda",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Required attributes for hitting apis",
- "type": "object",
- "required": [ "auth_token" ],
- "additionalProperties": true,
- "properties": {
- "auth_token": {
- "title": "Authentication token",
- "type": "string",
- "description": "Bearer token",
- "airbyte_secret": true,
- "order": 0
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "919984ef-53a2-479b-8ffe-9c1ddb9fc3f3",
- "name": "Coin API",
- "dockerRepository": "airbyte/source-coin-api",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/coin-api",
- "icon": "coinapi.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/coin-api",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Coin API Spec",
- "type": "object",
- "required": [ "api_key", "environment", "symbol_id", "period", "start_date" ],
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true,
- "order": 0
- },
- "environment": {
- "type": "string",
- "description": "The environment to use. Either sandbox or production.\n",
- "enum": [ "sandbox", "production" ],
- "default": "sandbox",
- "order": 1
- },
- "symbol_id": {
- "type": "string",
- "description": "The symbol ID to use. See the documentation for a list.\nhttps://docs.coinapi.io/#list-all-symbols-get\n",
- "order": 2
- },
- "period": {
- "type": "string",
- "description": "The period to use. See the documentation for a list. https://docs.coinapi.io/#list-all-periods-get",
- "examples": [ "5SEC", "2MTH" ]
- },
- "start_date": {
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
- "description": "The start date in ISO 8601 format.",
- "examples": [ "2019-01-01T00:00:00" ]
- },
- "end_date": {
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
- "description": "The end date in ISO 8601 format. If not supplied, data will be returned\nfrom the start date to the current time, or when the count of result\nelements reaches its limit.\n",
- "examples": [ "2019-01-01T00:00:00" ]
- },
- "limit": {
- "type": "integer",
- "description": "The maximum number of elements to return. If not supplied, the default\nis 100. For numbers larger than 100, each 100 items is counted as one\nrequest for pricing purposes. Maximum value is 100000.\n",
- "minimum": 1,
- "maximum": 100000,
- "default": 100
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "239463f5-64bb-4d88-b4bd-18ce673fd572",
- "name": "CoinMarketCap",
- "dockerRepository": "airbyte/source-coinmarketcap",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/coinmarketcap",
- "icon": "coinmarketcap.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/coinmarketcap",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Coinmarketcap Spec",
- "type": "object",
- "required": [ "api_key", "data_type" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Your API Key. See here. The token is case sensitive.",
- "airbyte_secret": true
- },
- "data_type": {
- "title": "Data type",
- "type": "string",
- "enum": [ "latest", "historical" ],
- "description": "/latest: Latest market ticker quotes and averages for cryptocurrencies and exchanges. /historical: Intervals of historic market data like OHLCV data or data for use in charting libraries. See here."
- },
- "symbols": {
- "title": "Symbol",
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "Cryptocurrency symbols. (only used for quotes stream)",
- "minItems": 1,
- "examples": [ "AVAX", "BTC" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "008b2e26-11a3-11ec-82a8-0242ac130003",
- "name": "Commercetools",
- "dockerRepository": "airbyte/source-commercetools",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/commercetools",
- "icon": "commercetools.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/commercetools",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Commercetools Source CDK Specifications",
- "type": "object",
- "required": [ "region", "start_date", "host", "project_key", "client_id", "client_secret" ],
- "additionalProperties": false,
- "properties": {
- "region": {
- "type": "string",
- "description": "The region of the platform.",
- "examples": [ "us-central1", "australia-southeast1" ]
- },
- "host": {
- "type": "string",
- "enum": [ "gcp", "aws" ],
- "description": "The cloud provider your shop is hosted. See: https://docs.commercetools.com/api/authorization"
- },
- "start_date": {
- "type": "string",
- "description": "The date you would like to replicate data. Format: YYYY-MM-DD.",
- "examples": [ "2021-01-01" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
- },
- "project_key": {
- "type": "string",
- "description": "The project key"
- },
- "client_id": {
- "type": "string",
- "description": "Id of API Client.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "description": "The password of secret of API Client.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "4fd7565c-8b99-439b-80d0-2d965e1d958c",
- "name": "ConfigCat",
- "dockerRepository": "airbyte/source-configcat",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/configcat",
- "icon": "configcat.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/configcat",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Configcat Spec",
- "type": "object",
- "required": [ "username", "password" ],
- "additionalProperties": true,
- "properties": {
- "username": {
- "title": "Username",
- "type": "string",
- "description": "Basic auth user name. See here."
- },
- "password": {
- "title": "Password",
- "type": "string",
- "description": "Basic auth password. See here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "cf40a7f8-71f8-45ce-a7fa-fca053e4028c",
- "name": "Confluence",
- "dockerRepository": "airbyte/source-confluence",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/confluence",
- "icon": "confluence.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Confluence Spec",
- "type": "object",
- "required": [ "api_token", "domain_name", "email" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "title": "API Token",
- "type": "string",
- "description": "Please follow the Jira confluence for generating an API token: generating an API token.",
- "airbyte_secret": true
- },
- "domain_name": {
- "title": "Domain name",
- "type": "string",
- "description": "Your Confluence domain name",
- "examples": [ "example.atlassian.net" ]
- },
- "email": {
- "title": "Email",
- "type": "string",
- "description": "Your Confluence login email",
- "examples": [ "abc@example.com" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "${subdomain}.atlassian.net" ]
- }
- }, {
- "sourceDefinitionId": "be9ee02f-6efe-4970-979b-95f797a37188",
- "name": "ConvertKit",
- "dockerRepository": "airbyte/source-convertkit",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/convertkit",
- "icon": "convertkit.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/convertkit",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Convertkit Spec",
- "type": "object",
- "required": [ "api_secret" ],
- "additionalProperties": true,
- "properties": {
- "api_secret": {
- "type": "string",
- "description": "API Secret",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "f39208dc-7e1c-48b8-919b-5006360cc27f",
- "name": "Commcare",
- "dockerRepository": "airbyte/source-commcare",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/commcare",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Commcare Source Spec",
- "type": "object",
- "required": [ "api_key", "app_id", "start_date" ],
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Commcare API Key",
- "airbyte_secret": true,
- "order": 0
- },
- "project_space": {
- "type": "string",
- "title": "Project Space",
- "description": "Project Space for commcare",
- "order": 1
- },
- "app_id": {
- "type": "string",
- "title": "Application ID",
- "description": "The Application ID we are interested in",
- "airbyte_secret": true,
- "order": 2
- },
- "start_date": {
- "type": "string",
- "title": "Start date for extracting records",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "default": "2022-10-01T00:00:00Z",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Only records after this date will be replicated.",
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "44f3002f-2df9-4f6d-b21c-02cd3b47d0dc",
- "name": "Copper",
- "dockerRepository": "airbyte/source-copper",
- "dockerImageTag": "0.2.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/copper",
- "icon": "copper.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/copper",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Copper Spec",
- "type": "object",
- "required": [ "api_key", "user_email" ],
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Copper API key",
- "airbyte_secret": true
- },
- "user_email": {
- "type": "string",
- "title": "User email",
- "description": "user email used to login in to Copper"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "c332628c-f55c-4017-8222-378cfafda9b2",
- "name": "Convex",
- "dockerRepository": "airbyte/source-convex",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/convex",
- "icon": "convex.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/convex",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Convex Source Spec",
- "type": "object",
- "required": [ "deployment_url", "access_key" ],
- "properties": {
- "deployment_url": {
- "type": "string",
- "title": "Deployment Url",
- "examples": [ "https://murky-swan-635.convex.cloud", "https://cluttered-owl-337.convex.cloud" ]
- },
- "access_key": {
- "type": "string",
- "title": "Access Key",
- "description": "API access key used to retrieve data from Convex.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "0541b2cd-2367-4986-b5f1-b79ff55439e4",
- "name": "Courier",
- "dockerRepository": "airbyte/source-courier",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/courier",
- "icon": "courier.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/courier",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Courier Source Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "Courier API Key to retrieve your data.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "e71aae8a-5143-11ed-bdc3-0242ac120002",
- "name": "Clockify",
- "dockerRepository": "airbyte/source-clockify",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/clockify",
- "icon": "clockify.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/clockify",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Clockify Spec",
- "type": "object",
- "required": [ "workspace_id", "api_key" ],
- "additionalProperties": true,
- "properties": {
- "workspace_id": {
- "title": "Workspace Id",
- "description": "WorkSpace Id",
- "type": "string"
- },
- "api_key": {
- "title": "API Key",
- "description": "You can get your api access_key here This API is Case Sensitive.",
- "type": "string",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "c47d6804-8b98-449f-970a-5ddb5cb5d7aa",
- "name": "Customer.io",
- "dockerRepository": "farosai/airbyte-customer-io-source",
- "dockerImageTag": "0.1.23",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/customer-io",
- "icon": "customer-io.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.faros.ai",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Customer.io Spec",
- "type": "object",
- "required": [ "app_api_key" ],
- "additionalProperties": false,
- "properties": {
- "app_api_key": {
- "type": "string",
- "title": "Customer.io App API Key",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "1cfc30c7-82db-43f4-9fd7-ac1b42312cda",
- "name": "Datadog",
- "dockerRepository": "airbyte/source-datadog",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/datadog",
- "icon": "datadog.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/datadog",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Datadog Source Spec",
- "type": "object",
- "required": [ "api_key", "application_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "description": "Datadog API key",
- "type": "string",
- "airbyte_secret": true,
- "order": 1
- },
- "application_key": {
- "title": "Application Key",
- "description": "Datadog application key",
- "type": "string",
- "airbyte_secret": true,
- "order": 2
- },
- "query": {
- "title": "Query",
- "description": "The search query. This just applies to Incremental syncs. If empty, it'll collect all logs.",
- "type": "string",
- "order": 3
- },
- "max_records_per_request": {
- "type": "integer",
- "title": "Max records per requests",
- "default": 5000,
- "minimum": 1,
- "maximum": 5000,
- "description": "Maximum number of records to collect per request.",
- "order": 4
- },
- "start_date": {
- "title": "Start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. This just applies to Incremental syncs.",
- "type": "string",
- "examples": [ "2022-10-01T00:00:00Z" ],
- "order": 5
- },
- "end_date": {
- "title": "End date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Data after this date will not be replicated. An empty value will represent the current datetime for each execution. This just applies to Incremental syncs.",
- "examples": [ "2022-10-01T00:00:00Z" ],
- "type": "string",
- "order": 6
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "8e1ae2d2-4790-44d3-9d83-75b3fc3940ff",
- "name": "Datascope",
- "dockerRepository": "airbyte/source-datascope",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/datascope",
- "icon": "datascope.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/datascope",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Datascope Spec",
- "type": "object",
- "required": [ "api_key", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "Start date for the data to be replicated",
- "examples": [ "dd/mm/YYYY HH:MM" ],
- "pattern": "^[0-9]{2}/[0-9]{2}/[0-9]{4} [0-9]{2}:[0-9]{2}$"
- },
- "api_key": {
- "title": "Authorization",
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "cc88c43f-6f53-4e8a-8c4d-b284baaf9635",
- "name": "Delighted",
- "dockerRepository": "airbyte/source-delighted",
- "dockerImageTag": "0.2.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/delighted",
- "icon": "delighted.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Delighted Spec",
- "type": "object",
- "required": [ "since", "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "Delighted API Key",
- "type": "string",
- "description": "A Delighted API key.",
- "airbyte_secret": true,
- "order": 0
- },
- "since": {
- "title": "Date Since",
- "type": "string",
- "description": "The date from which you'd like to replicate the data",
- "examples": [ "2022-05-30T04:50:23Z", "2022-05-30 04:50:23" ],
- "pattern": "^\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z?$",
- "order": 1,
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.delighted.com" ]
- }
- }, {
- "sourceDefinitionId": "0b5c867e-1b12-4d02-ab74-97b2184ff6d7",
- "name": "Dixa",
- "dockerRepository": "airbyte/source-dixa",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/dixa",
- "icon": "dixa.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/dixa",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Dixa Spec",
- "type": "object",
- "required": [ "api_token", "start_date" ],
- "additionalProperties": false,
- "properties": {
- "api_token": {
- "type": "string",
- "description": "Dixa API token",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "description": "The connector pulls records updated from this date onwards.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ]
- },
- "batch_size": {
- "type": "integer",
- "description": "Number of days to batch into one request. Max 31.",
- "pattern": "^[0-9]{1,2}$",
- "examples": [ 1, 31 ],
- "default": 31
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "72d405a3-56d8-499f-a571-667c03406e43",
- "name": "Dockerhub",
- "dockerRepository": "airbyte/source-dockerhub",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/dockerhub",
- "icon": "dockerhub.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/dockerhub",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Dockerhub Spec",
- "type": "object",
- "required": [ "docker_username" ],
- "additionalProperties": false,
- "properties": {
- "docker_username": {
- "type": "string",
- "description": "Username of DockerHub person or organization (for https://hub.docker.com/v2/repositories/USERNAME/ API call)",
- "pattern": "^[a-z0-9_\\-]+$",
- "examples": [ "airbyte" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d99e9ace-8621-46c2-9144-76ae4751d64b",
- "name": "Dremio",
- "dockerRepository": "airbyte/source-dremio",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/dremio",
- "icon": "dremio.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/dremio",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Dremio Spec",
- "type": "object",
- "additionalProperties": true,
- "required": [ "api_key", "base_url" ],
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API Key that is generated when you authenticate to Dremio API",
- "airbyte_secret": true
- },
- "base_url": {
- "type": "string",
- "description": "URL of your Dremio instance",
- "default": "https://app.dremio.cloud"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "445831eb-78db-4b1f-8f1f-0d96ad8739e2",
- "name": "Drift",
- "dockerRepository": "airbyte/source-drift",
- "dockerImageTag": "0.2.6",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/drift",
- "icon": "drift.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/drift",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Drift Spec",
- "type": "object",
- "required": [ ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "client_id", "client_secret", "access_token", "refresh_token" ],
- "properties": {
- "credentials": {
- "type": "string",
- "const": "oauth2.0",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your Drift developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your Drift developer application.",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "Refresh Token to renew the expired Access Token.",
- "default": "",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Access Token",
- "type": "object",
- "required": [ "access_token" ],
- "properties": {
- "credentials": {
- "type": "string",
- "const": "access_token",
- "order": 0
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Drift Access Token. See the docs for more information on how to generate this key.",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "access_token" ], [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "driftapi.com" ]
- }
- }, {
- "sourceDefinitionId": "1356e1d9-977f-4057-ad4b-65f25329cf61",
- "name": "DV 360",
- "dockerRepository": "airbyte/source-dv-360",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/dv-360",
- "icon": "dv360.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Display & Video 360 Spec",
- "type": "object",
- "required": [ "credentials", "partner_id", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "type": "object",
- "description": "Oauth2 credentials",
- "order": 0,
- "required": [ "access_token", "refresh_token", "token_uri", "client_id", "client_secret" ],
- "properties": {
- "access_token": {
- "type": "string",
- "description": "Access token",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "description": "Refresh token",
- "airbyte_secret": true
- },
- "token_uri": {
- "type": "string",
- "description": "Token URI",
- "airbyte_secret": true
- },
- "client_id": {
- "type": "string",
- "description": "Client ID",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "description": "Client secret",
- "airbyte_secret": true
- }
- }
- },
- "partner_id": {
- "type": "integer",
- "description": "Partner ID",
- "order": 1
- },
- "start_date": {
- "type": "string",
- "description": "UTC date and time in the format 2017-01-25. Any data before this date will not be replicated",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 2
- },
- "end_date": {
- "type": "string",
- "description": "UTC date and time in the format 2017-01-25. Any data after this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 3
- },
- "filters": {
- "type": "array",
- "description": "filters for the dimensions. each filter object had 2 keys: 'type' for the name of the dimension to be used as. and 'value' for the value of the filter",
- "default": [ ],
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "50401137-8871-4c5a-abb7-1f5fda35545a",
- "name": "DynamoDB",
- "dockerRepository": "airbyte/source-dynamodb",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/dynamodb",
- "icon": "dynamodb.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/dynamodb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Dynamodb Source Spec",
- "type": "object",
- "required": [ "access_key_id", "secret_access_key" ],
- "additionalProperties": false,
- "properties": {
- "endpoint": {
- "title": "Dynamodb Endpoint",
- "type": "string",
- "default": "",
- "description": "the URL of the Dynamodb database",
- "examples": [ "https://{aws_dynamo_db_url}.com" ]
- },
- "region": {
- "title": "Dynamodb Region",
- "type": "string",
- "default": "",
- "description": "The region of the Dynamodb database",
- "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ]
- },
- "access_key_id": {
- "title": "Dynamodb Key Id",
- "type": "string",
- "description": "The access key id to access Dynamodb. Airbyte requires read permissions to the database",
- "airbyte_secret": true,
- "examples": [ "A012345678910EXAMPLE" ]
- },
- "secret_access_key": {
- "title": "Dynamodb Access Key",
- "type": "string",
- "description": "The corresponding secret to the access key id.",
- "airbyte_secret": true,
- "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ]
- },
- "reserved_attribute_names": {
- "title": "Reserved attribute names",
- "type": "string",
- "description": "Comma separated reserved attribute names present in your tables",
- "airbyte_secret": true,
- "examples": [ "name, field_name, field-name" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d53f9084-fa6b-4a5a-976c-5b8392f4ad8a",
- "name": "E2E Testing",
- "dockerRepository": "airbyte/source-e2e-test",
- "dockerImageTag": "2.1.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/e2e-test",
- "icon": "airbyte.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/e2e-test",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "E2E Test Source Spec",
- "additionalProperties": true,
- "type": "object",
- "oneOf": [ {
- "title": "Legacy Infinite Feed",
- "description": "This mode is used for Platform acceptance tests. The catalog has one \"data\" stream, which has one string field \"column1\". This mode will emit messages infinitely.",
- "required": [ "type", "max_records" ],
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "type": {
- "type": "string",
- "const": "INFINITE_FEED",
- "default": "INFINITE_FEED"
- },
- "max_records": {
- "title": "Max Records",
- "description": "Number of records to emit. If not set, defaults to infinity.",
- "type": "integer"
- },
- "message_interval": {
- "title": "Message Interval",
- "description": "Interval between messages in ms.",
- "type": "integer"
- }
- }
- }, {
- "title": "Legacy Exception After N",
- "description": "This mode is used for Platform acceptance tests. The catalog has one \"data\" stream, which has one string field \"column1\". This mode will throw an exception after N messages.",
- "required": [ "type", "throw_after_n_records" ],
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "type": {
- "type": "string",
- "const": "EXCEPTION_AFTER_N",
- "default": "EXCEPTION_AFTER_N"
- },
- "throw_after_n_records": {
- "title": "Throw After N Records",
- "description": "Number of records to emit before throwing an exception. Min 1.",
- "type": "integer",
- "min": 1
- }
- }
- }, {
- "title": "Continuous Feed",
- "type": "object",
- "required": [ "type", "max_messages", "mock_catalog" ],
- "additionalProperties": true,
- "properties": {
- "type": {
- "type": "string",
- "const": "CONTINUOUS_FEED",
- "default": "CONTINUOUS_FEED",
- "order": 10
- },
- "max_messages": {
- "title": "Max Records",
- "description": "Number of records to emit per stream. Min 1. Max 100 billion.",
- "type": "integer",
- "default": 100,
- "min": 1,
- "max": 100000000000,
- "order": 20
- },
- "seed": {
- "title": "Random Seed",
- "description": "When the seed is unspecified, the current time millis will be used as the seed. Range: [0, 1000000].",
- "type": "integer",
- "default": 0,
- "examples": [ 42 ],
- "min": 0,
- "max": 1000000,
- "order": 30
- },
- "message_interval_ms": {
- "title": "Message Interval (ms)",
- "description": "Interval between messages in ms. Min 0 ms. Max 60000 ms (1 minute).",
- "type": "integer",
- "min": 0,
- "max": 60000,
- "default": 0,
- "order": 40
- },
- "mock_catalog": {
- "title": "Mock Catalog",
- "type": "object",
- "order": 50,
- "oneOf": [ {
- "title": "Single Schema",
- "description": "A catalog with one or multiple streams that share the same schema.",
- "type": "object",
- "required": [ "type", "stream_name", "stream_schema" ],
- "properties": {
- "type": {
- "type": "string",
- "const": "SINGLE_STREAM",
- "default": "SINGLE_STREAM"
- },
- "stream_name": {
- "title": "Stream Name",
- "description": "Name of the data stream.",
- "type": "string",
- "default": "data_stream"
- },
- "stream_schema": {
- "title": "Stream Schema",
- "description": "A Json schema for the stream. The schema should be compatible with draft-07. See this doc for examples.",
- "type": "string",
- "default": "{ \"type\": \"object\", \"properties\": { \"column1\": { \"type\": \"string\" } } }"
- },
- "stream_duplication": {
- "title": "Duplicate the stream N times",
- "description": "Duplicate the stream for easy load testing. Each stream name will have a number suffix. For example, if the stream name is \"ds\", the duplicated streams will be \"ds_0\", \"ds_1\", etc.",
- "type": "integer",
- "default": 1,
- "min": 1,
- "max": 10000
- }
- }
- }, {
- "title": "Multi Schema",
- "type": "object",
- "description": "A catalog with multiple data streams, each with a different schema.",
- "required": [ "type", "stream_schemas" ],
- "properties": {
- "type": {
- "type": "string",
- "const": "MULTI_STREAM",
- "default": "MULTI_STREAM"
- },
- "stream_schemas": {
- "title": "Streams and Schemas",
- "description": "A Json object specifying multiple data streams and their schemas. Each key in this object is one stream name. Each value is the schema for that stream. The schema should be compatible with draft-07. See this doc for examples.",
- "type": "string",
- "default": "{ \"stream1\": { \"type\": \"object\", \"properties\": { \"field1\": { \"type\": \"string\" } } }, \"stream2\": { \"type\": \"object\", \"properties\": { \"field1\": { \"type\": \"boolean\" } } } }"
- }
- }
- } ]
- }
- }
- }, {
- "title": "Benchmark",
- "description": "This mode is used for speed benchmarks. Specifically, it should be used for testing the throughput of the platform and destination. It optimizes for emitting records very quickly, so that it should never be the bottleneck.",
- "type": "object",
- "required": [ "type", "schema", "terminationCondition" ],
- "additionalProperties": true,
- "properties": {
- "type": {
- "type": "string",
- "const": "BENCHMARK",
- "default": "BENCHMARK"
- },
- "schema": {
- "title": "Schema",
- "description": "schema of the data in the benchmark.",
- "type": "string",
- "enum": [ "FIVE_STRING_COLUMNS" ]
- },
- "terminationCondition": {
- "title": "Termination Condition",
- "description": "when does the benchmark stop?",
- "type": "object",
- "oneOf": [ {
- "title": "max records",
- "type": "object",
- "required": [ "type", "max" ],
- "properties": {
- "type": {
- "type": "string",
- "const": "MAX_RECORDS",
- "default": "MAX_RECORDS"
- },
- "max": {
- "type": "number"
- }
- }
- } ]
- }
- }
- } ]
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "protocol_version": "0.2.1"
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "46b25e70-c980-4590-a811-8deaf50ee09f",
- "name": "EmailOctopus",
- "dockerRepository": "airbyte/source-emailoctopus",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/emailoctopus",
- "icon": "emailoctopus.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/emailoctopus",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "EmailOctopus Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "EmailOctopus API key",
- "description": "EmailOctopus API Key. See the docs for information on how to generate this key.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "e2b40e36-aa0e-4bed-b41b-bcea6fa348b1",
- "name": "Exchange Rates Api",
- "dockerRepository": "airbyte/source-exchange-rates",
- "dockerImageTag": "1.2.8",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/exchangeratesapi",
- "icon": "exchangeratesapi.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/exchangeratesapi",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "exchangeratesapi.io Source Spec",
- "type": "object",
- "required": [ "start_date", "access_key" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "description": "Start getting data from that date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ],
- "format": "date"
- },
- "access_key": {
- "type": "string",
- "description": "Your API Key. See here. The key is case sensitive.",
- "airbyte_secret": true
- },
- "base": {
- "type": "string",
- "description": "ISO reference currency. See here. Free plan doesn't support Source Currency Switching, default base currency is EUR",
- "examples": [ "EUR", "USD" ]
- },
- "ignore_weekends": {
- "type": "boolean",
- "description": "Ignore weekends? (Exchanges don't run on weekends)",
- "default": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "${subdomain}.apilayer.com", "apilayer.com" ]
- }
- }, {
- "sourceDefinitionId": "6babfc42-c734-4ef6-a817-6eca15f0f9b7",
- "name": "Everhour",
- "dockerRepository": "airbyte/source-everhour",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/everhour",
- "icon": "everhour.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/everhour",
- "connectionSpecification": {
- "title": "Everhour Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Everhour API Key. See the docs for information on how to generate this key.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "api.everhour.com" ]
- }
- }, {
- "sourceDefinitionId": "e7778cfc-e97c-4458-9ecb-b4f2bba8946c",
- "name": "Facebook Marketing",
- "dockerRepository": "airbyte/source-facebook-marketing",
- "dockerImageTag": "0.3.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/facebook-marketing",
- "icon": "facebook.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/facebook-marketing",
- "changelogUrl": "https://docs.airbyte.com/integrations/sources/facebook-marketing",
- "connectionSpecification": {
- "title": "Source Facebook Marketing",
- "type": "object",
- "properties": {
- "account_id": {
- "title": "Account ID",
- "description": "The Facebook Ad account ID to use when pulling data from the Facebook Marketing API. Open your Meta Ads Manager. The Ad account ID number is in the account dropdown menu or in your browser's address bar. See the docs for more information.",
- "order": 0,
- "examples": [ "111111111111111" ],
- "type": "string"
- },
- "start_date": {
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for all incremental streams, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "order": 1,
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "type": "string",
- "format": "date-time"
- },
- "end_date": {
- "title": "End Date",
- "description": "The date until which you'd like to replicate data for all incremental streams, in the format YYYY-MM-DDT00:00:00Z. All data generated between the start date and this end date will be replicated. Not setting this option will result in always syncing the latest data.",
- "order": 2,
- "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-26T00:00:00Z" ],
- "type": "string"
- },
- "access_token": {
- "title": "Access Token",
- "description": "The value of the generated access token. From your App’s Dashboard, click on \"Marketing API\" then \"Tools\". Select permissions ads_management, ads_read, read_insights, business_management. Then click on \"Get token\". See the docs for more information.",
- "order": 3,
- "airbyte_secret": true,
- "type": "string"
- },
- "include_deleted": {
- "title": "Include Deleted Campaigns, Ads, and AdSets",
- "description": "Set to active if you want to include data from deleted Campaigns, Ads, and AdSets.",
- "default": false,
- "order": 4,
- "type": "boolean"
- },
- "fetch_thumbnail_images": {
- "title": "Fetch Thumbnail Images from Ad Creative",
- "description": "Set to active if you want to fetch the thumbnail_url and store the result in thumbnail_data_url for each Ad Creative.",
- "default": false,
- "order": 5,
- "type": "boolean"
- },
- "custom_insights": {
- "title": "Custom Insights",
- "description": "A list which contains ad statistics entries, each entry must have a name and can contains fields, breakdowns or action_breakdowns. Click on \"add\" to fill this field.",
- "order": 6,
- "type": "array",
- "items": {
- "title": "InsightConfig",
- "description": "Config for custom insights",
- "type": "object",
- "properties": {
- "name": {
- "title": "Name",
- "description": "The name value of insight",
- "type": "string"
- },
- "level": {
- "title": "Level",
- "description": "Chosen level for API",
- "default": "ad",
- "enum": [ "ad", "adset", "campaign", "account" ],
- "type": "string"
- },
- "fields": {
- "title": "Fields",
- "description": "A list of chosen fields for fields parameter",
- "default": [ ],
- "type": "array",
- "items": {
- "title": "ValidEnums",
- "description": "Generic enumeration.\n\nDerive from this class to define new enumerations.",
- "enum": [ "account_currency", "account_id", "account_name", "action_values", "actions", "ad_bid_value", "ad_click_actions", "ad_id", "ad_impression_actions", "ad_name", "adset_bid_value", "adset_end", "adset_id", "adset_name", "adset_start", "age_targeting", "attribution_setting", "auction_bid", "auction_competitiveness", "auction_max_competitor_bid", "buying_type", "campaign_id", "campaign_name", "canvas_avg_view_percent", "canvas_avg_view_time", "catalog_segment_actions", "catalog_segment_value", "catalog_segment_value_mobile_purchase_roas", "catalog_segment_value_omni_purchase_roas", "catalog_segment_value_website_purchase_roas", "clicks", "conversion_rate_ranking", "conversion_values", "conversions", "converted_product_quantity", "converted_product_value", "cost_per_15_sec_video_view", "cost_per_2_sec_continuous_video_view", "cost_per_action_type", "cost_per_ad_click", "cost_per_conversion", "cost_per_dda_countby_convs", "cost_per_estimated_ad_recallers", "cost_per_inline_link_click", "cost_per_inline_post_engagement", "cost_per_one_thousand_ad_impression", "cost_per_outbound_click", "cost_per_thruplay", "cost_per_unique_action_type", "cost_per_unique_click", "cost_per_unique_conversion", "cost_per_unique_inline_link_click", "cost_per_unique_outbound_click", "cpc", "cpm", "cpp", "created_time", "ctr", "date_start", "date_stop", "dda_countby_convs", "dda_results", "engagement_rate_ranking", "estimated_ad_recall_rate", "estimated_ad_recall_rate_lower_bound", "estimated_ad_recall_rate_upper_bound", "estimated_ad_recallers", "estimated_ad_recallers_lower_bound", "estimated_ad_recallers_upper_bound", "frequency", "full_view_impressions", "full_view_reach", "gender_targeting", "impressions", "inline_link_click_ctr", "inline_link_clicks", "inline_post_engagement", "instant_experience_clicks_to_open", "instant_experience_clicks_to_start", "instant_experience_outbound_clicks", "interactive_component_tap", "labels", "location", "mobile_app_purchase_roas", "objective", "optimization_goal", "outbound_clicks", "outbound_clicks_ctr", "place_page_name", "purchase_roas", "qualifying_question_qualify_answer_rate", "quality_ranking", "quality_score_ectr", "quality_score_ecvr", "quality_score_organic", "reach", "social_spend", "spend", "total_postbacks", "total_postbacks_detailed", "unique_actions", "unique_clicks", "unique_conversions", "unique_ctr", "unique_inline_link_click_ctr", "unique_inline_link_clicks", "unique_link_clicks_ctr", "unique_outbound_clicks", "unique_outbound_clicks_ctr", "unique_video_continuous_2_sec_watched_actions", "unique_video_view_15_sec", "updated_time", "video_15_sec_watched_actions", "video_30_sec_watched_actions", "video_avg_time_watched_actions", "video_continuous_2_sec_watched_actions", "video_p100_watched_actions", "video_p25_watched_actions", "video_p50_watched_actions", "video_p75_watched_actions", "video_p95_watched_actions", "video_play_actions", "video_play_curve_actions", "video_play_retention_0_to_15s_actions", "video_play_retention_20_to_60s_actions", "video_play_retention_graph_actions", "video_thruplay_watched_actions", "video_time_watched_actions", "website_ctr", "website_purchase_roas", "wish_bid" ]
- }
- },
- "breakdowns": {
- "title": "Breakdowns",
- "description": "A list of chosen breakdowns for breakdowns",
- "default": [ ],
- "type": "array",
- "items": {
- "title": "ValidBreakdowns",
- "description": "Generic enumeration.\n\nDerive from this class to define new enumerations.",
- "enum": [ "ad_format_asset", "age", "app_id", "body_asset", "call_to_action_asset", "country", "description_asset", "device_platform", "dma", "frequency_value", "gender", "hourly_stats_aggregated_by_advertiser_time_zone", "hourly_stats_aggregated_by_audience_time_zone", "image_asset", "impression_device", "is_conversion_id_modeled", "link_url_asset", "mmm", "place_page_id", "platform_position", "product_id", "publisher_platform", "region", "skan_campaign_id", "skan_conversion_id", "title_asset", "video_asset" ]
- }
- },
- "action_breakdowns": {
- "title": "Action Breakdowns",
- "description": "A list of chosen action_breakdowns for action_breakdowns",
- "default": [ ],
- "type": "array",
- "items": {
- "title": "ValidActionBreakdowns",
- "description": "Generic enumeration.\n\nDerive from this class to define new enumerations.",
- "enum": [ "action_canvas_component_name", "action_carousel_card_id", "action_carousel_card_name", "action_destination", "action_device", "action_reaction", "action_target_id", "action_type", "action_video_sound", "action_video_type" ]
- }
- },
- "time_increment": {
- "title": "Time Increment",
- "description": "Time window in days by which to aggregate statistics. The sync will be chunked into N day intervals, where N is the number of days you specified. For example, if you set this value to 7, then all statistics will be reported as 7-day aggregates by starting from the start_date. If the start and end dates are October 1st and October 30th, then the connector will output 5 records: 01 - 06, 07 - 13, 14 - 20, 21 - 27, and 28 - 30 (3 days only).",
- "default": 1,
- "exclusiveMaximum": 90,
- "exclusiveMinimum": 0,
- "type": "integer"
- },
- "start_date": {
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for this stream, in the format YYYY-MM-DDT00:00:00Z.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "type": "string",
- "format": "date-time"
- },
- "end_date": {
- "title": "End Date",
- "description": "The date until which you'd like to replicate data for this stream, in the format YYYY-MM-DDT00:00:00Z. All data generated between the start date and this end date will be replicated. Not setting this option will result in always syncing the latest data.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-26T00:00:00Z" ],
- "type": "string",
- "format": "date-time"
- },
- "insights_lookback_window": {
- "title": "Custom Insights Lookback Window",
- "description": "The attribution window",
- "default": 28,
- "maximum": 28,
- "mininum": 1,
- "exclusiveMinimum": 0,
- "type": "integer"
- }
- },
- "required": [ "name" ]
- }
- },
- "page_size": {
- "title": "Page Size of Requests",
- "description": "Page size used when sending requests to Facebook API to specify number of records per page when response has pagination. Most users do not need to set this field unless they specifically need to tune the connector to address specific issues or use cases.",
- "default": 100,
- "order": 7,
- "exclusiveMinimum": 0,
- "type": "integer"
- },
- "insights_lookback_window": {
- "title": "Insights Lookback Window",
- "description": "The attribution window. Facebook freezes insight data 28 days after it was generated, which means that all data from the past 28 days may have changed since we last emitted it, so you can retrieve refreshed insights from the past by setting this parameter. If you set a custom lookback window value in Facebook account, please provide the same value here.",
- "default": 28,
- "order": 8,
- "maximum": 28,
- "mininum": 1,
- "exclusiveMinimum": 0,
- "type": "integer"
- },
- "max_batch_size": {
- "title": "Maximum size of Batched Requests",
- "description": "Maximum batch size used when sending batch requests to Facebook API. Most users do not need to set this field unless they specifically need to tune the connector to address specific issues or use cases.",
- "default": 50,
- "order": 9,
- "exclusiveMinimum": 0,
- "type": "integer"
- },
- "action_breakdowns_allow_empty": {
- "title": "Action Breakdowns Allow Empty",
- "description": "Allows action_breakdowns to be an empty list",
- "default": true,
- "airbyte_hidden": true,
- "type": "boolean"
- }
- },
- "required": [ "account_id", "start_date", "access_token" ]
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ ],
- "oauthFlowInitParameters": [ ],
- "oauthFlowOutputParameters": [ [ "access_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "graph.facebook.com" ]
- }
- }, {
- "sourceDefinitionId": "010eb12f-837b-4685-892d-0a39f76a98f5",
- "name": "Facebook Pages",
- "dockerRepository": "airbyte/source-facebook-pages",
- "dockerImageTag": "0.2.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/facebook-pages",
- "icon": "facebook.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/facebook-pages",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Facebook Pages Spec",
- "type": "object",
- "required": [ "access_token", "page_id" ],
- "additionalProperties": true,
- "properties": {
- "access_token": {
- "type": "string",
- "title": "Page Access Token",
- "description": "Facebook Page Access Token",
- "airbyte_secret": true,
- "order": 0
- },
- "page_id": {
- "type": "string",
- "title": "Page ID",
- "description": "Page ID",
- "order": 1
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "graph.facebook.com" ]
- }
- }, {
- "sourceDefinitionId": "dfd88b22-b603-4c3d-aad7-3701784586b1",
- "name": "Sample Data (Faker)",
- "dockerRepository": "airbyte/source-faker",
- "dockerImageTag": "2.0.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/faker",
- "icon": "faker.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/faker",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Faker Source Spec",
- "type": "object",
- "required": [ "count" ],
- "additionalProperties": true,
- "properties": {
- "count": {
- "title": "Count",
- "description": "How many users should be generated in total. This setting does not apply to the purchases or products stream.",
- "type": "integer",
- "minimum": 1,
- "default": 1000,
- "order": 0
- },
- "seed": {
- "title": "Seed",
- "description": "Manually control the faker random seed to return the same values on subsequent runs (leave -1 for random)",
- "type": "integer",
- "default": -1,
- "order": 1
- },
- "records_per_sync": {
- "title": "Records Per Sync",
- "description": "How many fake records will be returned for each sync, for each stream? By default, it will take 2 syncs to create the requested 1000 records.",
- "type": "integer",
- "minimum": 1,
- "default": 500,
- "order": 2
- },
- "records_per_slice": {
- "title": "Records Per Stream Slice",
- "description": "How many fake records will be in each page (stream slice), before a state message is emitted?",
- "type": "integer",
- "minimum": 1,
- "default": 1000,
- "order": 3
- },
- "parallelism": {
- "title": "Parallelism",
- "description": "How many parallel workers should we use to generate fake data? Choose a value equal to the number of CPUs you will allocate to this source.",
- "type": "integer",
- "minimum": 1,
- "default": 4,
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "resourceRequirements": {
- "jobSpecific": [ {
- "jobType": "sync",
- "resourceRequirements": {
- "cpu_request": "1.0",
- "cpu_limit": "4.0"
- }
- } ]
- },
- "allowedHosts": {
- "hosts": [ ]
- },
- "suggestedStreams": {
- "streams": [ "users", "products", "purchases" ]
- }
- }, {
- "sourceDefinitionId": "eb3e9c1c-0467-4eb7-a172-5265e04ccd0a",
- "name": "Fastbill",
- "dockerRepository": "airbyte/source-fastbill",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/fastbill",
- "icon": "fastbill.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/fastbill",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Fastbill Spec",
- "type": "object",
- "required": [ "username", "api_key" ],
- "properties": {
- "username": {
- "title": "Username",
- "type": "string",
- "description": "Username for Fastbill account"
- },
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Fastbill API key",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "3825db3e-c94b-42ac-bd53-b5a9507ace2b",
- "name": "Fauna",
- "dockerRepository": "airbyte/source-fauna",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/fauna",
- "icon": "fauna.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://github.com/fauna/airbyte/blob/source-fauna/docs/integrations/sources/fauna.md",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Fauna Spec",
- "type": "object",
- "required": [ "domain", "port", "scheme", "secret" ],
- "additionalProperties": true,
- "properties": {
- "domain": {
- "order": 0,
- "type": "string",
- "title": "Domain",
- "description": "Domain of Fauna to query. Defaults db.fauna.com. See the docs.",
- "default": "db.fauna.com"
- },
- "port": {
- "order": 1,
- "type": "integer",
- "title": "Port",
- "description": "Endpoint port.",
- "default": 443
- },
- "scheme": {
- "order": 2,
- "type": "string",
- "title": "Scheme",
- "description": "URL scheme.",
- "default": "https"
- },
- "secret": {
- "order": 3,
- "type": "string",
- "title": "Fauna Secret",
- "description": "Fauna secret, used when authenticating with the database.",
- "airbyte_secret": true
- },
- "collection": {
- "order": 5,
- "type": "object",
- "title": "Collection",
- "description": "Settings for the Fauna Collection.",
- "required": [ "page_size", "deletions" ],
- "properties": {
- "page_size": {
- "order": 4,
- "type": "integer",
- "title": "Page Size",
- "default": 64,
- "description": "The page size used when reading documents from the database. The larger the page size, the faster the connector processes documents. However, if a page is too large, the connector may fail.
\nChoose your page size based on how large the documents are.
\nSee the docs."
- },
- "deletions": {
- "order": 5,
- "type": "object",
- "title": "Deletion Mode",
- "description": "This only applies to incremental syncs.
\nEnabling deletion mode informs your destination of deleted documents.
\nDisabled - Leave this feature disabled, and ignore deleted documents.
\nEnabled - Enables this feature. When a document is deleted, the connector exports a record with a \"deleted at\" column containing the time that the document was deleted.",
- "oneOf": [ {
- "title": "Disabled",
- "type": "object",
- "order": 0,
- "required": [ "deletion_mode" ],
- "properties": {
- "deletion_mode": {
- "type": "string",
- "const": "ignore"
- }
- }
- }, {
- "title": "Enabled",
- "type": "object",
- "order": 1,
- "required": [ "deletion_mode", "column" ],
- "properties": {
- "deletion_mode": {
- "type": "string",
- "const": "deleted_field"
- },
- "column": {
- "type": "string",
- "title": "Deleted At Column",
- "description": "Name of the \"deleted at\" column.",
- "default": "deleted_at"
- }
- }
- } ]
- }
- }
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "778daa7c-feaf-4db6-96f3-70fd645acc77",
- "name": "File (CSV, JSON, Excel, Feather, Parquet)",
- "dockerRepository": "airbyte/source-file",
- "dockerImageTag": "0.2.38",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/file",
- "icon": "file.svg",
- "sourceType": "file",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/file",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "File Source Spec",
- "type": "object",
- "additionalProperties": true,
- "required": [ "dataset_name", "format", "url", "provider" ],
- "properties": {
- "dataset_name": {
- "type": "string",
- "title": "Dataset Name",
- "description": "The Name of the final table to replicate this file into (should include letters, numbers dash and underscores only)."
- },
- "format": {
- "type": "string",
- "enum": [ "csv", "json", "jsonl", "excel", "excel_binary", "feather", "parquet", "yaml" ],
- "default": "csv",
- "title": "File Format",
- "description": "The Format of the file which should be replicated (Warning: some formats may be experimental, please refer to the docs)."
- },
- "reader_options": {
- "type": "string",
- "title": "Reader Options",
- "description": "This should be a string in JSON format. It depends on the chosen file format to provide additional options and tune its behavior.",
- "examples": [ "{}", "{\"sep\": \" \"}", "{\"sep\": \"\t\", \"header\": 0, \"names\": [\"column1\", \"column2\"] }" ]
- },
- "url": {
- "type": "string",
- "title": "URL",
- "description": "The URL path to access the file which should be replicated.",
- "examples": [ "https://storage.googleapis.com/covid19-open-data/v2/latest/epidemiology.csv", "gs://my-google-bucket/data.csv", "s3://gdelt-open-data/events/20190914.export.csv" ]
- },
- "provider": {
- "type": "object",
- "title": "Storage Provider",
- "description": "The storage Provider or Location of the file(s) which should be replicated.",
- "default": "Public Web",
- "oneOf": [ {
- "title": "HTTPS: Public Web",
- "required": [ "storage" ],
- "properties": {
- "storage": {
- "type": "string",
- "const": "HTTPS"
- },
- "user_agent": {
- "type": "boolean",
- "title": "User-Agent",
- "default": false,
- "description": "Add User-Agent to request"
- }
- }
- }, {
- "title": "GCS: Google Cloud Storage",
- "required": [ "storage" ],
- "properties": {
- "storage": {
- "type": "string",
- "title": "Storage",
- "const": "GCS"
- },
- "service_account_json": {
- "type": "string",
- "title": "Service Account JSON",
- "description": "In order to access private Buckets stored on Google Cloud, this connector would need a service account json credentials with the proper permissions as described here. Please generate the credentials.json file and copy/paste its content to this field (expecting JSON formats). If accessing publicly available data, this field is not necessary."
- }
- }
- }, {
- "title": "S3: Amazon Web Services",
- "required": [ "storage" ],
- "properties": {
- "storage": {
- "type": "string",
- "title": "Storage",
- "const": "S3"
- },
- "aws_access_key_id": {
- "type": "string",
- "title": "AWS Access Key ID",
- "description": "In order to access private Buckets stored on AWS S3, this connector would need credentials with the proper permissions. If accessing publicly available data, this field is not necessary."
- },
- "aws_secret_access_key": {
- "type": "string",
- "title": "AWS Secret Access Key",
- "description": "In order to access private Buckets stored on AWS S3, this connector would need credentials with the proper permissions. If accessing publicly available data, this field is not necessary.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "AzBlob: Azure Blob Storage",
- "required": [ "storage", "storage_account" ],
- "properties": {
- "storage": {
- "type": "string",
- "title": "Storage",
- "const": "AzBlob"
- },
- "storage_account": {
- "type": "string",
- "title": "Storage Account",
- "description": "The globally unique name of the storage account that the desired blob sits within. See here for more details."
- },
- "sas_token": {
- "type": "string",
- "title": "SAS Token",
- "description": "To access Azure Blob Storage, this connector would need credentials with the proper permissions. One option is a SAS (Shared Access Signature) token. If accessing publicly available data, this field is not necessary.",
- "airbyte_secret": true
- },
- "shared_key": {
- "type": "string",
- "title": "Shared Key",
- "description": "To access Azure Blob Storage, this connector would need credentials with the proper permissions. One option is a storage account shared key (aka account key or access key). If accessing publicly available data, this field is not necessary.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "SSH: Secure Shell",
- "required": [ "storage", "user", "host" ],
- "properties": {
- "storage": {
- "type": "string",
- "title": "Storage",
- "const": "SSH"
- },
- "user": {
- "type": "string",
- "title": "User",
- "description": ""
- },
- "password": {
- "type": "string",
- "title": "Password",
- "description": "",
- "airbyte_secret": true
- },
- "host": {
- "type": "string",
- "title": "Host",
- "description": ""
- },
- "port": {
- "type": "string",
- "title": "Port",
- "default": "22",
- "description": ""
- }
- }
- }, {
- "title": "SCP: Secure copy protocol",
- "required": [ "storage", "user", "host" ],
- "properties": {
- "storage": {
- "type": "string",
- "title": "Storage",
- "const": "SCP"
- },
- "user": {
- "type": "string",
- "title": "User",
- "description": ""
- },
- "password": {
- "type": "string",
- "title": "Password",
- "description": "",
- "airbyte_secret": true
- },
- "host": {
- "type": "string",
- "title": "Host",
- "description": ""
- },
- "port": {
- "type": "string",
- "title": "Port",
- "default": "22",
- "description": ""
- }
- }
- }, {
- "title": "SFTP: Secure File Transfer Protocol",
- "required": [ "storage", "user", "host" ],
- "properties": {
- "storage": {
- "type": "string",
- "title": "Storage",
- "const": "SFTP"
- },
- "user": {
- "type": "string",
- "title": "User",
- "description": ""
- },
- "password": {
- "type": "string",
- "title": "Password",
- "description": "",
- "airbyte_secret": true
- },
- "host": {
- "type": "string",
- "title": "Host",
- "description": ""
- },
- "port": {
- "type": "string",
- "title": "Port",
- "default": "22",
- "description": ""
- }
- }
- }, {
- "title": "Local Filesystem (limited)",
- "required": [ "storage" ],
- "properties": {
- "storage": {
- "type": "string",
- "title": "Storage",
- "description": "WARNING: Note that the local storage URL available for reading must start with the local mount \"/local/\" at the moment until we implement more advanced docker mounting options.",
- "const": "local"
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*" ]
- }
- }, {
- "sourceDefinitionId": "acb5f973-a565-441e-992f-4946f3e65662",
- "name": "Firebase Realtime Database",
- "dockerRepository": "airbyte/source-firebase-realtime-database",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/firebase-realtime-database",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/firebase-realtime-database",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Firebase Realtime Database Spec",
- "type": "object",
- "required": [ "database_name", "google_application_credentials" ],
- "properties": {
- "database_name": {
- "title": "Database Name",
- "type": "string",
- "description": "Database name (This will be part of the url pointing to the database, https://.firebaseio.com/)"
- },
- "google_application_credentials": {
- "title": "Service Account Key JSON",
- "type": "string",
- "description": "Cert credentials in JSON format of Service Account with Firebase Realtime Database Viewer role. (see, https://firebase.google.com/docs/projects/iam/roles-predefined-product#realtime-database)",
- "airbyte_secret": true
- },
- "path": {
- "title": "Node Path",
- "type": "string",
- "description": "Path to a node in the Firebase realtime database"
- },
- "buffer_size": {
- "title": "Buffer Size",
- "type": "number",
- "description": "Number of records to fetch at once"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "supported_sync_modes": [ "full_refresh" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "*" ]
- }
- }, {
- "sourceDefinitionId": "8a5d48f6-03bb-4038-a942-a8d3f175cca3",
- "name": "Freshcaller",
- "dockerRepository": "airbyte/source-freshcaller",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshcaller",
- "icon": "freshcaller.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshcaller",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Freshcaller Spec",
- "type": "object",
- "required": [ "domain", "api_key", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "domain": {
- "type": "string",
- "title": "Domain for Freshcaller account",
- "description": "Used to construct Base URL for the Freshcaller APIs",
- "examples": [ "snaptravel" ]
- },
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Freshcaller API Key. See the docs for more information on how to obtain this key.",
- "airbyte_secret": true
- },
- "requests_per_minute": {
- "title": "Requests per minute",
- "type": "integer",
- "description": "The number of requests per minute that this source allowed to use. There is a rate limit of 50 requests per minute per app per account."
- },
- "start_date": {
- "title": "Start Date",
- "description": "UTC date and time. Any data created after this date will be replicated.",
- "format": "date-time",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2022-01-01T12:00:00Z" ]
- },
- "sync_lag_minutes": {
- "title": "Lag in minutes for each sync",
- "type": "integer",
- "description": "Lag in minutes for each sync, i.e., at time T, data for the time range [prev_sync_time, T-30] will be fetched"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false
- }, {
- "sourceDefinitionId": "f95337f1-2ad1-4baf-922f-2ca9152de630",
- "name": "Flexport",
- "dockerRepository": "airbyte/source-flexport",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/flexport",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/flexport",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Flexport Spec",
- "additionalProperties": true,
- "type": "object",
- "required": [ "api_key", "start_date" ],
- "properties": {
- "api_key": {
- "order": 0,
- "type": "string",
- "title": "API Key",
- "airbyte_secret": true
- },
- "start_date": {
- "order": 1,
- "title": "Start Date",
- "type": "string",
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "ec4b9503-13cb-48ab-a4ab-6ade4be46567",
- "name": "Freshdesk",
- "dockerRepository": "airbyte/source-freshdesk",
- "dockerImageTag": "3.0.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshdesk",
- "icon": "freshdesk.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshdesk",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Freshdesk Spec",
- "type": "object",
- "required": [ "domain", "api_key" ],
- "additionalProperties": true,
- "properties": {
- "domain": {
- "type": "string",
- "description": "Freshdesk domain",
- "title": "Domain",
- "examples": [ "myaccount.freshdesk.com" ],
- "pattern": "^[a-zA-Z0-9._-]*\\.freshdesk\\.com$"
- },
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Freshdesk API Key. See the docs for more information on how to obtain this key.",
- "airbyte_secret": true
- },
- "requests_per_minute": {
- "title": "Requests per minute",
- "type": "integer",
- "description": "The number of requests per minute that this source allowed to use. There is a rate limit of 50 requests per minute per app per account."
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "UTC date and time. Any data created after this date will be replicated. If this parameter is not set, all data will be replicated.",
- "format": "date-time",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2020-12-01T00:00:00Z" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*.freshdesk.com" ]
- }
- }, {
- "sourceDefinitionId": "eca08d79-7b92-4065-b7f3-79c14836ebe7",
- "name": "Freshsales",
- "dockerRepository": "airbyte/source-freshsales",
- "dockerImageTag": "0.1.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshsales",
- "icon": "freshsales.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshsales",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Freshsales Spec",
- "type": "object",
- "required": [ "domain_name", "api_key" ],
- "additionalProperties": true,
- "properties": {
- "domain_name": {
- "type": "string",
- "title": "Domain Name",
- "description": "The Name of your Freshsales domain",
- "examples": [ "mydomain.myfreshworks.com" ]
- },
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Freshsales API Key. See here. The key is case sensitive.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "*.myfreshworks.com" ]
- }
- }, {
- "sourceDefinitionId": "9bb85338-ea95-4c93-b267-6be89125b267",
- "name": "Freshservice",
- "dockerRepository": "airbyte/source-freshservice",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshservice",
- "icon": "freshservice.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshservice",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Freshservice Spec",
- "type": "object",
- "required": [ "domain_name", "api_key", "start_date" ],
- "additionalProperties": false,
- "properties": {
- "domain_name": {
- "type": "string",
- "title": "Domain Name",
- "description": "The name of your Freshservice domain",
- "examples": [ "mydomain.freshservice.com" ]
- },
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Freshservice API Key. See here. The key is case sensitive.",
- "airbyte_secret": true
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "UTC date and time in the format 2020-10-01T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2020-10-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "2a8c41ae-8c23-4be0-a73f-2ab10ca1a820",
- "name": "GCS",
- "dockerRepository": "airbyte/source-gcs",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gcs",
- "icon": "gcs.svg",
- "sourceType": "file",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Gcs Spec",
- "type": "object",
- "required": [ "gcs_bucket", "gcs_path", "service_account" ],
- "properties": {
- "gcs_bucket": {
- "type": "string",
- "title": "GCS bucket",
- "description": "GCS bucket name"
- },
- "gcs_path": {
- "type": "string",
- "title": "GCS Path",
- "description": "GCS path to data"
- },
- "service_account": {
- "type": "string",
- "title": "Service Account Information.",
- "description": "Enter your Google Cloud service account key in JSON format",
- "airbyte_secret": true,
- "examples": [ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false
- }, {
- "sourceDefinitionId": "5ea4459a-8f1a-452a-830f-a65c38cc438d",
- "name": "Genesys",
- "dockerRepository": "airbyte/source-genesys",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/genesys",
- "icon": "genesys.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/genesys",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Genesys Connector Configuration",
- "type": "object",
- "required": [ "start_date", "tenant_endpoint", "client_id", "client_secret" ],
- "properties": {
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "Your OAuth user Client ID",
- "airbyte_secret": true,
- "order": 0
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "Your OAuth user Client Secret",
- "airbyte_secret": true,
- "order": 1
- },
- "tenant_endpoint": {
- "title": "Tenant Endpoint Location",
- "type": "string",
- "description": "Please choose the right endpoint where your Tenant is located. More info by this Link",
- "enum": [ "Americas (US East)", "Americas (US East 2)", "Americas (US West)", "Americas (Canada)", "Americas (São Paulo)", "EMEA (Frankfurt)", "EMEA (Dublin)", "EMEA (London)", "Asia Pacific (Mumbai)", "Asia Pacific (Seoul)", "Asia Pacific (Sydney)" ],
- "order": 2
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "Start Date in format: YYYY-MM-DD",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false
- }, {
- "sourceDefinitionId": "e1a3866b-d3b2-43b6-b6d7-8c1ee4d7f53f",
- "name": "GetLago",
- "dockerRepository": "airbyte/source-getlago",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/getlago",
- "icon": "getlago.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/getlago",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Getlago Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Your API Key. See here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6cbea164-3237-433b-9abb-36d384ee4cbf",
- "name": "Gridly",
- "dockerRepository": "airbyte/source-gridly",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gridly",
- "icon": "gridly.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gridly",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Gridly Spec",
- "type": "object",
- "required": [ "api_key", "grid_id" ],
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "airbyte_secret": true
- },
- "grid_id": {
- "type": "string",
- "title": "Grid ID",
- "description": "ID of a grid, or can be ID of a branch"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "ef69ef6e-aa7f-4af1-a01d-ef775033524e",
- "name": "GitHub",
- "dockerRepository": "airbyte/source-github",
- "dockerImageTag": "0.4.7",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/github",
- "icon": "github.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/github",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "GitHub Source Spec",
- "type": "object",
- "required": [ "start_date", "repository" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authentication",
- "description": "Choose how to authenticate to GitHub",
- "type": "object",
- "order": 0,
- "group": "auth",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth",
- "required": [ "access_token" ],
- "properties": {
- "option_title": {
- "type": "string",
- "const": "OAuth Credentials",
- "order": 0
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "OAuth access token",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Personal Access Token",
- "required": [ "personal_access_token" ],
- "properties": {
- "option_title": {
- "type": "string",
- "const": "PAT Credentials",
- "order": 0
- },
- "personal_access_token": {
- "type": "string",
- "title": "Personal Access Tokens",
- "description": "Log into GitHub and then generate a personal access token. To load balance your API quota consumption across multiple API tokens, input multiple tokens separated with \",\"",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "start_date": {
- "type": "string",
- "title": "Start date",
- "description": "The date from which you'd like to replicate data from GitHub in the format YYYY-MM-DDT00:00:00Z. For the streams which support this configuration, only data generated on or after the start date will be replicated. This field doesn't apply to all streams, see the docs for more info",
- "examples": [ "2021-03-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "order": 1,
- "format": "date-time"
- },
- "repository": {
- "type": "string",
- "examples": [ "airbytehq/airbyte airbytehq/another-repo", "airbytehq/*", "airbytehq/airbyte" ],
- "title": "GitHub Repositories",
- "description": "Space-delimited list of GitHub organizations/repositories, e.g. `airbytehq/airbyte` for single repository, `airbytehq/*` for get all repositories from organization and `airbytehq/airbyte airbytehq/another-repo` for multiple repositories.",
- "order": 2,
- "pattern_descriptor": "org/repo1 org/repo2"
- },
- "branch": {
- "type": "string",
- "title": "Branch",
- "examples": [ "airbytehq/airbyte/master airbytehq/airbyte/my-branch" ],
- "description": "Space-delimited list of GitHub repository branches to pull commits for, e.g. `airbytehq/airbyte/master`. If no branches are specified for a repository, the default branch will be pulled.",
- "order": 3,
- "pattern_descriptor": "org/repo/branch1 org/repo/branch2"
- },
- "page_size_for_large_streams": {
- "type": "integer",
- "title": "Page size for large streams",
- "minimum": 1,
- "maximum": 100,
- "default": 10,
- "description": "The Github connector contains several streams with a large amount of data. The page size of such streams depends on the size of your repository. We recommended that you specify values between 10 and 30.",
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "option_title" ],
- "predicate_value": "OAuth Credentials",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.github.com" ]
- },
- "suggestedStreams": {
- "streams": [ "branches", "comments", "issues", "organizations", "pull_requests", "repositories", "stargazers", "tags", "teams", "users" ]
- },
- "maxSecondsBetweenMessages": 5400
- }, {
- "sourceDefinitionId": "5e6175e5-68e1-4c17-bff9-56103bbb0d80",
- "name": "Gitlab",
- "dockerRepository": "airbyte/source-gitlab",
- "dockerImageTag": "1.0.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gitlab",
- "icon": "gitlab.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gitlab",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Gitlab Spec",
- "type": "object",
- "required": [ "api_url", "start_date", "credentials" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "order": 0,
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "oauth2.0"
- },
- "client_id": {
- "type": "string",
- "description": "The API ID of the Gitlab developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "description": "The API Secret the Gitlab developer application.",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true
- },
- "token_expiry_date": {
- "type": "string",
- "description": "The date-time when the access token should be refreshed.",
- "format": "date-time"
- },
- "refresh_token": {
- "type": "string",
- "description": "The key to refresh the expired access_token.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Private Token",
- "type": "object",
- "required": [ "access_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "access_token"
- },
- "access_token": {
- "type": "string",
- "title": "Private Token",
- "description": "Log into your Gitlab account and then generate a personal Access Token.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "api_url": {
- "type": "string",
- "examples": [ "gitlab.com" ],
- "title": "API URL",
- "default": "gitlab.com",
- "description": "Please enter your basic URL from GitLab instance.",
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for GitLab API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "examples": [ "2021-03-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "order": 2,
- "format": "date-time"
- },
- "groups": {
- "type": "string",
- "examples": [ "airbyte.io" ],
- "title": "Groups",
- "description": "Space-delimited list of groups. e.g. airbyte.io.",
- "order": 3
- },
- "projects": {
- "type": "string",
- "title": "Projects",
- "examples": [ "airbyte.io/documentation" ],
- "description": "Space-delimited list of projects. e.g. airbyte.io/documentation meltano/tap-gitlab.",
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "properties": {
- "domain": {
- "type": "string",
- "path_in_connector_config": [ "api_url" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- },
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- },
- "token_expiry_date": {
- "type": "string",
- "format": "date-time",
- "path_in_connector_config": [ "credentials", "token_expiry_date" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "*" ]
- }
- }, {
- "sourceDefinitionId": "cf8ff320-6272-4faa-89e6-4402dc17e5d5",
- "name": "Glassfrog",
- "dockerRepository": "airbyte/source-glassfrog",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/glassfrog",
- "icon": "glassfrog.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/glassfrog",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Glassfrog Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API key provided by Glassfrog",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "ce38aec4-5a77-439a-be29-9ca44fd4e811",
- "name": "GNews",
- "dockerRepository": "airbyte/source-gnews",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gnews",
- "icon": "gnews.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gnews",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Gnews Spec",
- "type": "object",
- "required": [ "api_key", "query" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "API Key",
- "order": 0,
- "airbyte_secret": true
- },
- "query": {
- "type": "string",
- "order": 1,
- "title": "Query",
- "description": "This parameter allows you to specify your search keywords to find the news articles you are looking for. The keywords will be used to return the most relevant articles. It is possible to use logical operators with keywords. - Phrase Search Operator: This operator allows you to make an exact search. Keywords surrounded by \n quotation marks are used to search for articles with the exact same keyword sequence. \n For example the query: \"Apple iPhone\" will return articles matching at least once this sequence of keywords.\n- Logical AND Operator: This operator allows you to make sure that several keywords are all used in the article\n search. By default the space character acts as an AND operator, it is possible to replace the space character \n by AND to obtain the same result. For example the query: Apple Microsoft is equivalent to Apple AND Microsoft\n- Logical OR Operator: This operator allows you to retrieve articles matching the keyword a or the keyword b.\n It is important to note that this operator has a higher precedence than the AND operator. For example the \n query: Apple OR Microsoft will return all articles matching the keyword Apple as well as all articles matching \n the keyword Microsoft\n- Logical NOT Operator: This operator allows you to remove from the results the articles corresponding to the\n specified keywords. To use it, you need to add NOT in front of each word or phrase surrounded by quotes.\n For example the query: Apple NOT iPhone will return all articles matching the keyword Apple but not the keyword\n iPhone",
- "examples": [ "Microsoft Windows 10", "Apple OR Microsoft", "Apple AND NOT iPhone", "(Windows 7) AND (Windows 10)", "Intel AND (i7 OR i9)" ]
- },
- "language": {
- "type": "string",
- "title": "Language",
- "decription": "This parameter allows you to specify the language of the news articles returned by the API. You have to set as value the 2 letters code of the language you want to filter.",
- "order": 2,
- "enum": [ "ar", "zh", "nl", "en", "fr", "de", "el", "he", "hi", "it", "ja", "ml", "mr", "no", "pt", "ro", "ru", "es", "sv", "ta", "te", "uk" ]
- },
- "country": {
- "type": "string",
- "title": "Country",
- "description": "This parameter allows you to specify the country where the news articles returned by the API were published, the contents of the articles are not necessarily related to the specified country. You have to set as value the 2 letters code of the country you want to filter.",
- "order": 3,
- "enum": [ "au", "br", "ca", "cn", "eg", "fr", "de", "gr", "hk", "in", "ie", "il", "it", "jp", "nl", "no", "pk", "pe", "ph", "pt", "ro", "ru", "sg", "es", "se", "ch", "tw", "ua", "gb", "us" ]
- },
- "in": {
- "type": "array",
- "title": "In",
- "description": "This parameter allows you to choose in which attributes the keywords are searched. The attributes that can be set are title, description and content. It is possible to combine several attributes.",
- "order": 4,
- "items": {
- "type": "string",
- "enum": [ "title", "description", "content" ]
- }
- },
- "nullable": {
- "type": "array",
- "title": "Nullable",
- "description": "This parameter allows you to specify the attributes that you allow to return null values. The attributes that can be set are title, description and content. It is possible to combine several attributes",
- "order": 5,
- "items": {
- "type": "string",
- "enum": [ "title", "description", "content" ]
- }
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "This parameter allows you to filter the articles that have a publication date greater than or equal to the specified value. The date must respect the following format: YYYY-MM-DD hh:mm:ss (in UTC)",
- "order": 6,
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$",
- "examples": [ "2022-08-21 16:27:09" ]
- },
- "end_date": {
- "type": "string",
- "title": "End Date",
- "description": "This parameter allows you to filter the articles that have a publication date smaller than or equal to the specified value. The date must respect the following format: YYYY-MM-DD hh:mm:ss (in UTC)",
- "order": 6,
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$",
- "examples": [ "2022-08-21 16:27:09" ]
- },
- "sortby": {
- "type": "string",
- "title": "Sort By",
- "description": "This parameter allows you to choose with which type of sorting the articles should be returned. Two values are possible:\n - publishedAt = sort by publication date, the articles with the most recent publication date are returned first\n - relevance = sort by best match to keywords, the articles with the best match are returned first",
- "order": 7,
- "enum": [ "publishedAt", "relevance" ]
- },
- "top_headlines_query": {
- "type": "string",
- "order": 8,
- "title": "Top Headlines Query",
- "description": "This parameter allows you to specify your search keywords to find the news articles you are looking for. The keywords will be used to return the most relevant articles. It is possible to use logical operators with keywords. - Phrase Search Operator: This operator allows you to make an exact search. Keywords surrounded by \n quotation marks are used to search for articles with the exact same keyword sequence. \n For example the query: \"Apple iPhone\" will return articles matching at least once this sequence of keywords.\n- Logical AND Operator: This operator allows you to make sure that several keywords are all used in the article\n search. By default the space character acts as an AND operator, it is possible to replace the space character \n by AND to obtain the same result. For example the query: Apple Microsoft is equivalent to Apple AND Microsoft\n- Logical OR Operator: This operator allows you to retrieve articles matching the keyword a or the keyword b.\n It is important to note that this operator has a higher precedence than the AND operator. For example the \n query: Apple OR Microsoft will return all articles matching the keyword Apple as well as all articles matching \n the keyword Microsoft\n- Logical NOT Operator: This operator allows you to remove from the results the articles corresponding to the\n specified keywords. To use it, you need to add NOT in front of each word or phrase surrounded by quotes.\n For example the query: Apple NOT iPhone will return all articles matching the keyword Apple but not the keyword\n iPhone",
- "examples": [ "Microsoft Windows 10", "Apple OR Microsoft", "Apple AND NOT iPhone", "(Windows 7) AND (Windows 10)", "Intel AND (i7 OR i9)" ]
- },
- "top_headlines_topic": {
- "type": "string",
- "title": "Top Headlines Topic",
- "description": "This parameter allows you to change the category for the request.",
- "order": 9,
- "enum": [ "breaking-news", "world", "nation", "business", "technology", "entertainment", "sports", "science", "health" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "ba15ac82-5c6a-4fb2-bf24-925c23a1180c",
- "name": "GoCardless",
- "dockerRepository": "airbyte/source-gocardless",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gocardless",
- "icon": "gocardless.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gocardless",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Gocardless Spec",
- "type": "object",
- "required": [ "access_token", "gocardless_environment", "gocardless_version", "start_date" ],
- "properties": {
- "access_token": {
- "title": "Access Token",
- "type": "string",
- "pattern": "^(sandbox|live)_.+$",
- "description": "Gocardless API TOKEN",
- "airbyte_secret": true,
- "order": 0
- },
- "gocardless_environment": {
- "title": "GoCardless API Environment",
- "type": "string",
- "enum": [ "sandbox", "live" ],
- "default": "sandbox",
- "description": "Environment you are trying to connect to.",
- "order": 1
- },
- "gocardless_version": {
- "title": "GoCardless API Version",
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "description": "GoCardless version. This is a date. You can find the latest here: \nhttps://developer.gocardless.com/api-reference/#api-usage-making-requests\n",
- "order": 2
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data\nbefore this date will not be replicated.\n",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "32382e40-3b49-4b99-9c5c-4076501914e7",
- "name": "Gong",
- "dockerRepository": "airbyte/source-gong",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gong",
- "icon": "gong.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gong",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Gong Spec",
- "type": "object",
- "required": [ "access_key", "access_key_secret" ],
- "additionalProperties": true,
- "properties": {
- "access_key": {
- "type": "string",
- "title": "Gong Access Key",
- "description": "Gong Access Key",
- "airbyte_secret": true
- },
- "access_key_secret": {
- "type": "string",
- "title": "Gong Access Key Secret",
- "description": "Gong Access Key Secret",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "The date from which to list calls, in the ISO-8601 format; if not specified, the calls start with the earliest recorded call. For web-conference calls recorded by Gong, the date denotes its scheduled time, otherwise, it denotes its actual start time.",
- "examples": [ "2018-02-18T08:00:00Z" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "253487c0-2246-43ba-a21f-5116b20a2c50",
- "name": "Google Ads",
- "dockerRepository": "airbyte/source-google-ads",
- "dockerImageTag": "0.2.14",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-ads",
- "icon": "google-adwords.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-ads",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Google Ads Spec",
- "type": "object",
- "required": [ "credentials", "start_date", "customer_id" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "type": "object",
- "description": "",
- "title": "Google Credentials",
- "order": 0,
- "required": [ "developer_token", "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "developer_token": {
- "type": "string",
- "title": "Developer Token",
- "order": 0,
- "description": "Developer token granted by Google to use their APIs. More instruction on how to find this value in our docs",
- "airbyte_secret": true
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "order": 1,
- "description": "The Client ID of your Google Ads developer application. More instruction on how to find this value in our docs"
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "order": 2,
- "description": "The Client Secret of your Google Ads developer application. More instruction on how to find this value in our docs",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "order": 3,
- "description": "The token for obtaining a new access token. More instruction on how to find this value in our docs",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "order": 4,
- "description": "Access Token for making authenticated requests. More instruction on how to find this value in our docs",
- "airbyte_secret": true
- }
- }
- },
- "customer_id": {
- "title": "Customer ID(s)",
- "type": "string",
- "description": "Comma separated list of (client) customer IDs. Each customer ID must be specified as a 10-digit number without dashes. More instruction on how to find this value in our docs. Metrics streams like AdGroupAdReport cannot be requested for a manager account.",
- "pattern": "^[0-9]{10}(,[0-9]{10})*$",
- "examples": [ "6783948572,5839201945" ],
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25. Any data before this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "2017-01-25" ],
- "order": 2,
- "format": "date"
- },
- "end_date": {
- "type": "string",
- "title": "End Date",
- "description": "UTC date and time in the format 2017-01-25. Any data after this date will not be replicated.",
- "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "2017-01-30" ],
- "order": 6,
- "format": "date"
- },
- "custom_queries": {
- "type": "array",
- "title": "Custom GAQL Queries",
- "description": "",
- "order": 3,
- "items": {
- "type": "object",
- "required": [ "query", "table_name" ],
- "properties": {
- "query": {
- "type": "string",
- "title": "Custom Query",
- "description": "A custom defined GAQL query for building the report. Should not contain segments.date expression because it is used by incremental streams. See Google's query builder for more information.",
- "examples": [ "SELECT segments.ad_destination_type, campaign.advertising_channel_sub_type FROM campaign WHERE campaign.status = 'PAUSED'" ]
- },
- "table_name": {
- "type": "string",
- "title": "Destination Table Name",
- "description": "The table name in your destination database for choosen query."
- }
- }
- }
- },
- "login_customer_id": {
- "type": "string",
- "title": "Login Customer ID for Managed Accounts",
- "description": "If your access to the customer account is through a manager account, this field is required and must be set to the customer ID of the manager account (10-digit number without dashes). More information about this field you can see here",
- "pattern": "^([0-9]{10})?$",
- "examples": [ "7349206847" ],
- "order": 4
- },
- "conversion_window_days": {
- "title": "Conversion Window",
- "type": "integer",
- "description": "A conversion window is the period of time after an ad interaction (such as an ad click or video view) during which a conversion, such as a purchase, is recorded in Google Ads. For more information, see Google's documentation.",
- "minimum": 0,
- "maximum": 1095,
- "default": 14,
- "examples": [ 14 ],
- "order": 5
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ], [ "developer_token" ] ],
- "oauthFlowOutputParameters": [ [ "access_token" ], [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "accounts.google.com", "googleads.googleapis.com" ]
- }
- }, {
- "sourceDefinitionId": "eff3616a-f9c3-11eb-9a03-0242ac130003",
- "name": "Google Analytics (Universal Analytics)",
- "dockerRepository": "airbyte/source-google-analytics-v4",
- "dockerImageTag": "0.1.34",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-analytics-v4",
- "icon": "google-analytics.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-analytics-universal-analytics",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Google Analytics (Universal Analytics) Spec",
- "type": "object",
- "required": [ "view_id", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "order": 0,
- "type": "object",
- "title": "Credentials",
- "description": "Credentials for the service",
- "oneOf": [ {
- "title": "Authenticate via Google (Oauth)",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Google Analytics developer application.",
- "airbyte_secret": true,
- "order": 1
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Google Analytics developer application.",
- "airbyte_secret": true,
- "order": 2
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "The token for obtaining a new access token.",
- "airbyte_secret": true,
- "order": 3
- },
- "access_token": {
- "title": "Access Token",
- "type": "string",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- }, {
- "type": "object",
- "title": "Service Account Key Authentication",
- "required": [ "credentials_json" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Service",
- "order": 0
- },
- "credentials_json": {
- "title": "Service Account JSON Key",
- "type": "string",
- "description": "The JSON key of the service account to use for authorization",
- "examples": [ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }" ],
- "airbyte_secret": true
- }
- }
- } ]
- },
- "start_date": {
- "order": 1,
- "type": "string",
- "title": "Replication Start Date",
- "description": "The date in the format YYYY-MM-DD. Any data before this date will not be replicated.",
- "examples": [ "2020-06-01" ]
- },
- "view_id": {
- "order": 2,
- "type": "string",
- "title": "View ID",
- "description": "The ID for the Google Analytics View you want to fetch data from. This can be found from the Google Analytics Account Explorer."
- },
- "custom_reports": {
- "order": 3,
- "type": "string",
- "title": "Custom Reports",
- "description": "A JSON array describing the custom reports you want to sync from Google Analytics. See the docs for more information about the exact format you can use to fill out this field."
- },
- "window_in_days": {
- "type": "integer",
- "title": "Data request time increment in days",
- "description": "The time increment used by the connector when requesting data from the Google Analytics API. More information is available in the the docs. The bigger this value is, the faster the sync will be, but the more likely that sampling will be applied to your data, potentially causing inaccuracies in the returned results. We recommend setting this to 1 unless you have a hard requirement to make the sync faster at the expense of accuracy. The minimum allowed value for this field is 1, and the maximum is 364. ",
- "examples": [ 30, 60, 90, 120, 200, 364 ],
- "default": 1,
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "access_token" ], [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "oauth2.googleapis.com", "www.googleapis.com", "analyticsdata.googleapis.com", "analyticsreporting.googleapis.com" ]
- }
- }, {
- "sourceDefinitionId": "3cc2eafd-84aa-4dca-93af-322d9dfeec1a",
- "name": "Google Analytics 4 (GA4)",
- "dockerRepository": "airbyte/source-google-analytics-data-api",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-analytics-data-api",
- "icon": "google-analytics.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-analytics-data-api",
- "connectionSpecification": {
- "$schema": "https://json-schema.org/draft-07/schema#",
- "title": "Google Analytics (Data API) Spec",
- "type": "object",
- "required": [ "property_id", "date_ranges_start_date" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "order": 0,
- "type": "object",
- "title": "Credentials",
- "description": "Credentials for the service",
- "oneOf": [ {
- "title": "Authenticate via Google (Oauth)",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Google Analytics developer application.",
- "order": 1
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Google Analytics developer application.",
- "airbyte_secret": true,
- "order": 2
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "The token for obtaining a new access token.",
- "airbyte_secret": true,
- "order": 3
- },
- "access_token": {
- "title": "Access Token",
- "type": "string",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- }, {
- "type": "object",
- "title": "Service Account Key Authentication",
- "required": [ "credentials_json" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Service",
- "order": 0
- },
- "credentials_json": {
- "title": "Service Account JSON Key",
- "type": "string",
- "description": "The JSON key of the service account to use for authorization",
- "examples": [ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }" ],
- "airbyte_secret": true,
- "order": 1
- }
- }
- } ]
- },
- "property_id": {
- "type": "string",
- "title": "Property ID",
- "description": "A Google Analytics GA4 property identifier whose events are tracked. Specified in the URL path and not the body",
- "order": 1
- },
- "date_ranges_start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The start date from which to replicate report data in the format YYYY-MM-DD. Data generated before this date will not be included in the report.",
- "format": "date",
- "order": 2
- },
- "custom_reports": {
- "order": 3,
- "type": "string",
- "title": "Custom Reports",
- "description": "A JSON array describing the custom reports you want to sync from Google Analytics. See the docs for more information about the exact format you can use to fill out this field."
- },
- "window_in_days": {
- "type": "integer",
- "title": "Data request time increment in days",
- "description": "The time increment used by the connector when requesting data from the Google Analytics API. More information is available in the the docs. The bigger this value is, the faster the sync will be, but the more likely that sampling will be applied to your data, potentially causing inaccuracies in the returned results. We recommend setting this to 1 unless you have a hard requirement to make the sync faster at the expense of accuracy. The minimum allowed value for this field is 1, and the maximum is 364.",
- "examples": [ 30, 60, 90, 120, 200, 364 ],
- "minimum": 1,
- "maximum": 364,
- "default": 1,
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "access_token" ], [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "oauth2.googleapis.com", "www.googleapis.com", "analyticsdata.googleapis.com" ]
- }
- }, {
- "sourceDefinitionId": "d19ae824-e289-4b14-995a-0632eb46d246",
- "name": "Google Directory",
- "dockerRepository": "airbyte/source-google-directory",
- "dockerImageTag": "0.1.9",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-directory",
- "icon": "googledirectory.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-directory",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Google Directory Spec",
- "type": "object",
- "required": [ ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Google Credentials",
- "description": "Google APIs use the OAuth 2.0 protocol for authentication and authorization. The Source supports Web server application and Service accounts scenarios.",
- "type": "object",
- "oneOf": [ {
- "title": "Sign in via Google (OAuth)",
- "description": "For these scenario user only needs to give permission to read Google Directory data.",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "credentials_title": {
- "type": "string",
- "title": "Credentials Title",
- "description": "Authentication Scenario",
- "const": "Web server app",
- "enum": [ "Web server app" ],
- "default": "Web server app",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of the developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client secret",
- "type": "string",
- "description": "The Client Secret of the developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "The Token for obtaining a new access token.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Service Account Key",
- "description": "For these scenario user should obtain service account's credentials from the Google API Console and provide delegated email.",
- "type": "object",
- "required": [ "credentials_json", "email" ],
- "properties": {
- "credentials_title": {
- "type": "string",
- "title": "Credentials Title",
- "description": "Authentication Scenario",
- "const": "Service accounts",
- "enum": [ "Service accounts" ],
- "default": "Service accounts",
- "order": 0
- },
- "credentials_json": {
- "type": "string",
- "title": "Credentials JSON",
- "description": "The contents of the JSON service account key. See the docs for more information on how to generate this key.",
- "airbyte_secret": true
- },
- "email": {
- "type": "string",
- "title": "Email",
- "description": "The email of the user, which has permissions to access the Google Workspace Admin APIs."
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "1e9086ab-ddac-4c1d-aafd-ba43ff575fe4",
- "name": "Google PageSpeed Insights",
- "dockerRepository": "airbyte/source-google-pagespeed-insights",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-pagespeed-insights",
- "icon": "google-pagespeed-insights.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/google-pagespeed-insights",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Google PageSpeed Insights Spec",
- "type": "object",
- "required": [ "urls", "strategies", "categories" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Google PageSpeed API Key. See here. The key is optional - however the API is heavily rate limited when using without API Key. Creating and using the API key therefore is recommended. The key is case sensitive.",
- "airbyte_secret": true
- },
- "urls": {
- "type": "array",
- "items": {
- "type": "string",
- "pattern": "^(?:origin:)?(http(s)?:\\/\\/)[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:\\/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$"
- },
- "title": "URLs to analyse",
- "description": "The URLs to retrieve pagespeed information from. The connector will attempt to sync PageSpeed reports for all the defined URLs. Format: https://(www.)url.domain",
- "example": "https://example.com"
- },
- "strategies": {
- "type": "array",
- "items": {
- "type": "string",
- "enum": [ "desktop", "mobile" ]
- },
- "title": "Analyses Strategies",
- "description": "The analyses strategy to use. Either \"desktop\" or \"mobile\"."
- },
- "categories": {
- "type": "array",
- "items": {
- "type": "string",
- "enum": [ "accessibility", "best-practices", "performance", "pwa", "seo" ]
- },
- "title": "Lighthouse Categories",
- "description": "Defines which Lighthouse category to run. One or many of: \"accessibility\", \"best-practices\", \"performance\", \"pwa\", \"seo\"."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "eb4c9e00-db83-4d63-a386-39cfa91012a8",
- "name": "Google Search Console",
- "dockerRepository": "airbyte/source-google-search-console",
- "dockerImageTag": "0.1.22",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-search-console",
- "icon": "googlesearchconsole.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-search-console",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Google Search Console Spec",
- "type": "object",
- "required": [ "site_urls", "start_date", "authorization" ],
- "properties": {
- "site_urls": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "title": "Website URL Property",
- "description": "The URLs of the website property attached to your GSC account. Read more here.",
- "examples": [ "https://example1.com/", "sc-domain:example2.com" ],
- "order": 0
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "UTC date in the format 2017-01-25. Any data before this date will not be replicated.",
- "examples": [ "2021-01-01" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 1,
- "format": "date"
- },
- "end_date": {
- "type": "string",
- "title": "End Date",
- "description": "UTC date in the format 2017-01-25. Any data after this date will not be replicated. Must be greater or equal to the start date field.",
- "examples": [ "2021-12-12" ],
- "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 2,
- "format": "date"
- },
- "authorization": {
- "type": "object",
- "title": "Authentication Type",
- "description": "",
- "order": 3,
- "oneOf": [ {
- "title": "OAuth",
- "type": "object",
- "required": [ "auth_type", "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The client ID of your Google Search Console developer application. Read more here.",
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The client secret of your Google Search Console developer application. Read more here.",
- "airbyte_secret": true
- },
- "access_token": {
- "title": "Access Token",
- "type": "string",
- "description": "Access token for making authenticated requests. Read more here.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "The token for obtaining a new access token. Read more here.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Service Account Key Authentication",
- "required": [ "auth_type", "service_account_info", "email" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Service",
- "order": 0
- },
- "service_account_info": {
- "title": "Service Account JSON Key",
- "type": "string",
- "description": "The JSON key of the service account to use for authorization. Read more here.",
- "examples": [ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }" ],
- "airbyte_secret": true
- },
- "email": {
- "title": "Admin Email",
- "type": "string",
- "description": "The email of the user which has permissions to access the Google Workspace Admin APIs."
- }
- }
- } ]
- },
- "custom_reports": {
- "order": 4,
- "type": "string",
- "title": "Custom Reports",
- "description": "A JSON array describing the custom reports you want to sync from Google Search Console. See the docs for more information about the exact format you can use to fill out this field."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "authorization", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "access_token" ], [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*.googleapis.com" ]
- }
- }, {
- "sourceDefinitionId": "71607ba1-c0ac-4799-8049-7f4b90dd50f7",
- "name": "Google Sheets",
- "dockerRepository": "airbyte/source-google-sheets",
- "dockerImageTag": "0.2.37",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-sheets",
- "icon": "google-sheets.svg",
- "sourceType": "file",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-sheets",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Google Sheets Source Spec",
- "type": "object",
- "required": [ "spreadsheet_id", "credentials" ],
- "additionalProperties": true,
- "properties": {
- "spreadsheet_id": {
- "type": "string",
- "title": "Spreadsheet Link",
- "description": "Enter the link to the Google spreadsheet you want to sync",
- "examples": [ "https://docs.google.com/spreadsheets/d/1hLd9Qqti3UyLXZB2aFfUWDT7BG-arw2xy4HR3D-dwUb/edit" ]
- },
- "row_batch_size": {
- "type": "integer",
- "title": "Row Batch Size",
- "description": "Number of rows fetched when making a Google Sheet API call. Defaults to 200.",
- "default": 200
- },
- "names_conversion": {
- "type": "boolean",
- "title": "Columns Name Conversion",
- "description": "Columns name conversion using a set of rules, for example, 'My Name' -> 'my-name'.",
- "default": false
- },
- "credentials": {
- "type": "object",
- "title": "Authentication",
- "description": "Credentials for connecting to the Google Sheets API",
- "oneOf": [ {
- "title": "Authenticate via Google (OAuth)",
- "type": "object",
- "required": [ "auth_type", "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client"
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "Enter your Google application's Client ID",
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "Enter your Google application's Client Secret",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "Enter your Google application's refresh token",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Service Account Key Authentication",
- "type": "object",
- "required": [ "auth_type", "service_account_info" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Service"
- },
- "service_account_info": {
- "type": "string",
- "title": "Service Account Information.",
- "description": "Enter your Google Cloud service account key in JSON format",
- "airbyte_secret": true,
- "examples": [ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }" ]
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*.googleapis.com" ]
- }
- }, {
- "sourceDefinitionId": "a68fbcde-b465-4ab3-b2a6-b0590a875835",
- "name": "Google Webfonts",
- "dockerRepository": "airbyte/source-google-webfonts",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-webfonts",
- "icon": "googleworkpace.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-webfonts",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Google Webfonts Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API key is required to access google apis, For getting your's goto google console and generate api key for Webfonts",
- "airbyte_secret": true
- },
- "sort": {
- "type": "string",
- "description": "Optional, to find how to sort"
- },
- "prettyPrint": {
- "type": "string",
- "description": "Optional, boolean type"
- },
- "alt": {
- "type": "string",
- "description": "Optional, Available params- json, media, proto"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "ed9dfefa-1bbc-419d-8c5e-4d78f0ef6734",
- "name": "Google Workspace Admin Reports",
- "dockerRepository": "airbyte/source-google-workspace-admin-reports",
- "dockerImageTag": "0.1.8",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-workspace-admin-reports",
- "icon": "googleworkpace.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-workspace-admin-reports",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Google Directory Spec",
- "type": "object",
- "required": [ "credentials_json", "email" ],
- "additionalProperties": false,
- "properties": {
- "credentials_json": {
- "type": "string",
- "title": "Credentials JSON",
- "description": "The contents of the JSON service account key. See the docs for more information on how to generate this key.",
- "airbyte_secret": true
- },
- "email": {
- "type": "string",
- "title": "Email",
- "description": "The email of the user, who has permissions to access the Google Workspace Admin APIs."
- },
- "lookback": {
- "type": "integer",
- "title": "Lookback Window in Days",
- "minimum": 0,
- "maximum": 180,
- "description": "Sets the range of time shown in the report. The maximum value allowed by the Google API is 180 days."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "59f1e50a-331f-4f09-b3e8-2e8d4d355f44",
- "name": "Greenhouse",
- "dockerRepository": "airbyte/source-greenhouse",
- "dockerImageTag": "0.3.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/greenhouse",
- "icon": "greenhouse.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/greenhouse",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Greenhouse Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Greenhouse API Key. See the docs for more information on how to generate this key.",
- "airbyte_secret": true,
- "order": 0
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "harvest.greenhouse.io" ]
- }
- }, {
- "sourceDefinitionId": "bff9a277-e01d-420d-81ee-80f28a307318",
- "name": "Gutendex",
- "dockerRepository": "airbyte/source-gutendex",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gutendex",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gutendex",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Gutendex Spec",
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "author_year_start": {
- "type": "string",
- "description": "(Optional) Defines the minimum birth year of the authors. Books by authors born prior to the start year will not be returned. Supports both positive (CE) or negative (BCE) integer values",
- "pattern": "^[-]?[0-9]{1,4}$",
- "examples": [ 2002, 500, -500, 2020 ]
- },
- "author_year_end": {
- "type": "string",
- "description": "(Optional) Defines the maximum birth year of the authors. Books by authors born after the end year will not be returned. Supports both positive (CE) or negative (BCE) integer values",
- "pattern": "^[-]?[0-9]{1,4}$",
- "examples": [ 2002, 500, -500, 2020 ]
- },
- "copyright": {
- "type": "string",
- "description": "(Optional) Use this to find books with a certain copyright status - true for books with existing copyrights, false for books in the public domain in the USA, or null for books with no available copyright information.",
- "pattern": "^(true|false|null)$",
- "examples": [ true, false, null ]
- },
- "languages": {
- "type": "string",
- "description": "(Optional) Use this to find books in any of a list of languages. They must be comma-separated, two-character language codes.",
- "examples": [ "en", "en,fr,fi" ]
- },
- "search": {
- "type": "string",
- "description": "(Optional) Use this to search author names and book titles with given words. They must be separated by a space (i.e. %20 in URL-encoded format) and are case-insensitive.",
- "examples": [ "dickens%20great%20expect", "dickens" ]
- },
- "sort": {
- "type": "string",
- "description": "(Optional) Use this to sort books - ascending for Project Gutenberg ID numbers from lowest to highest, descending for IDs highest to lowest, or popular (the default) for most popular to least popular by number of downloads.",
- "pattern": "^(ascending|descending|popular)$",
- "examples": [ "ascending", "descending", "popular" ]
- },
- "topic": {
- "type": "string",
- "description": "(Optional) Use this to search for a case-insensitive key-phrase in books' bookshelves or subjects.",
- "examples": [ "children", "fantasy" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6fe89830-d04d-401b-aad6-6552ffa5c4af",
- "name": "Harness",
- "dockerRepository": "farosai/airbyte-harness-source",
- "dockerImageTag": "0.1.23",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/harness",
- "icon": "harness.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.faros.ai",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Harness Spec",
- "type": "object",
- "required": [ "api_key", "account_id" ],
- "additionalProperties": false,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "Harness API key",
- "airbyte_secret": true
- },
- "account_id": {
- "type": "string",
- "title": "Harness account ID"
- },
- "api_url": {
- "type": "string",
- "title": "Harness API URL",
- "default": "https://app.harness.io",
- "examples": [ "https://my-harness-server.example.com" ]
- },
- "cutoff_days": {
- "type": "number",
- "title": "Harness Cutoff Days",
- "default": 90,
- "description": "Only fetch deployments updated after cutoff"
- },
- "page_size": {
- "type": "number",
- "title": "Harness Page Size",
- "default": 100,
- "description": "number of pipelines (builds) to fetch per call"
- },
- "deployment_timeout": {
- "type": "number",
- "title": "Harness Deployment Timeout",
- "default": 24,
- "description": "Max number of hours to consider for a deployment to be running/queued before giving up on syncing it"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "fe2b4084-3386-4d3b-9ad6-308f61a6f1e6",
- "name": "Harvest",
- "dockerRepository": "airbyte/source-harvest",
- "dockerImageTag": "0.1.17",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/harvest",
- "icon": "harvest.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/harvest",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Harvest Spec",
- "type": "object",
- "required": [ "account_id", "replication_start_date" ],
- "additionalProperties": true,
- "properties": {
- "account_id": {
- "title": "Account ID",
- "description": "Harvest account ID. Required for all Harvest requests in pair with Personal Access Token",
- "airbyte_secret": true,
- "type": "string",
- "order": 0
- },
- "replication_start_date": {
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "type": "string",
- "order": 1,
- "format": "date-time"
- },
- "replication_end_date": {
- "title": "End Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data after this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "type": "string",
- "airbyte_hidden": true,
- "order": 2,
- "format": "date-time"
- },
- "credentials": {
- "title": "Authentication mechanism",
- "description": "Choose how to authenticate to Harvest.",
- "type": "object",
- "order": 3,
- "oneOf": [ {
- "type": "object",
- "title": "Authenticate via Harvest (OAuth)",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "additionalProperties": true,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Harvest developer application."
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Harvest developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "Refresh Token to renew the expired Access Token.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Authenticate with Personal Access Token",
- "required": [ "api_token" ],
- "additionalProperties": true,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Token",
- "order": 0
- },
- "api_token": {
- "title": "Personal Access Token",
- "description": "Log into Harvest and then create new personal access token.",
- "type": "string",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- },
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "Client",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.harvestapp.com" ]
- }
- }, {
- "sourceDefinitionId": "492b56d1-937c-462e-8076-21ad2031e784",
- "name": "Hellobaton",
- "dockerRepository": "airbyte/source-hellobaton",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/hellobaton",
- "icon": "hellobaton.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Hellobaton Spec",
- "type": "object",
- "required": [ "api_key", "company" ],
- "additionalProperties": false,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "authentication key required to access the api endpoints",
- "airbyte_secret": true
- },
- "company": {
- "type": "string",
- "description": "Company name that generates your base api url",
- "examples": [ "google", "facebook", "microsoft" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "8097ceb9-383f-42f6-9f92-d3fd4bcc7689",
- "name": "Hubplanner",
- "dockerRepository": "airbyte/source-hubplanner",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/hubplanner",
- "icon": "hubplanner.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/hubplanner",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Hubplanner Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "Hubplanner API key. See https://github.com/hubplanner/API#authentication for more details.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "36c891d9-4bd9-43ac-bad2-10e12756272c",
- "name": "HubSpot",
- "dockerRepository": "airbyte/source-hubspot",
- "dockerImageTag": "0.6.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/hubspot",
- "icon": "hubspot.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/hubspot",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "HubSpot Source Spec",
- "type": "object",
- "required": [ "start_date", "credentials" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "title": "Start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "format": "date-time"
- },
- "credentials": {
- "title": "Authentication",
- "description": "Choose how to authenticate to HubSpot.",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth",
- "required": [ "client_id", "client_secret", "refresh_token", "credentials_title" ],
- "properties": {
- "credentials_title": {
- "type": "string",
- "title": "Credentials",
- "description": "Name of the credentials",
- "const": "OAuth Credentials",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "description": "The Client ID of your HubSpot developer application. See the Hubspot docs if you need help finding this ID.",
- "type": "string",
- "examples": [ "123456789000" ]
- },
- "client_secret": {
- "title": "Client Secret",
- "description": "The client secret for your HubSpot developer application. See the Hubspot docs if you need help finding this secret.",
- "type": "string",
- "examples": [ "secret" ],
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "description": "Refresh token to renew an expired access token. See the Hubspot docs if you need help finding this token.",
- "type": "string",
- "examples": [ "refresh_token" ],
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Private App",
- "required": [ "access_token", "credentials_title" ],
- "properties": {
- "credentials_title": {
- "type": "string",
- "title": "Credentials",
- "description": "Name of the credentials set",
- "const": "Private App Credentials",
- "order": 0
- },
- "access_token": {
- "title": "Access token",
- "description": "HubSpot Access token. See the Hubspot docs if you need help finding this token.",
- "type": "string",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.hubapi.com" ]
- }
- }, {
- "sourceDefinitionId": "f23b7b7c-d705-49a3-9042-09add3b104a5",
- "name": "IP2Whois",
- "dockerRepository": "airbyte/source-ip2whois",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/ip2whois",
- "icon": "ip2whois.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/ip2whois",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Ip2whois Spec",
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API key",
- "type": "string",
- "description": "Your API Key. See here.",
- "airbyte_secret": true
- },
- "domain": {
- "title": "Domain",
- "type": "string",
- "description": "Domain name. See here.",
- "examples": [ "www.google.com", "www.facebook.com" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "447e0381-3780-4b46-bb62-00a4e3c8b8e2",
- "name": "IBM Db2",
- "dockerRepository": "airbyte/source-db2",
- "dockerImageTag": "0.1.19",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/db2",
- "icon": "db2.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/db2",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "IBM Db2 Source Spec",
- "type": "object",
- "required": [ "host", "port", "db", "username", "password", "encryption" ],
- "properties": {
- "host": {
- "description": "Host of the Db2.",
- "type": "string",
- "order": 0
- },
- "port": {
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 8123,
- "examples": [ "8123" ],
- "order": 1
- },
- "db": {
- "description": "Name of the database.",
- "type": "string",
- "examples": [ "default" ],
- "order": 2
- },
- "username": {
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 5
- },
- "encryption": {
- "title": "Encryption",
- "type": "object",
- "description": "Encryption method to use when communicating with the database",
- "order": 6,
- "oneOf": [ {
- "title": "Unencrypted",
- "description": "Data transfer will not be encrypted.",
- "required": [ "encryption_method" ],
- "properties": {
- "encryption_method": {
- "type": "string",
- "const": "unencrypted"
- }
- }
- }, {
- "title": "TLS Encrypted (verify certificate)",
- "description": "Verify and use the cert provided by the server.",
- "required": [ "encryption_method", "ssl_certificate" ],
- "properties": {
- "encryption_method": {
- "type": "string",
- "const": "encrypted_verify_certificate"
- },
- "ssl_certificate": {
- "title": "SSL PEM file",
- "description": "Privacy Enhanced Mail (PEM) files are concatenated certificate containers frequently used in certificate installations",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true
- },
- "key_store_password": {
- "title": "Key Store Password. This field is optional. If you do not fill in this field, the password will be randomly generated.",
- "description": "Key Store Password",
- "type": "string",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "${host}" ]
- }
- }, {
- "sourceDefinitionId": "38f84314-fe6a-4257-97be-a8dcd942d693",
- "name": "Insightly",
- "dockerRepository": "airbyte/source-insightly",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/insightly",
- "icon": "insightly.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/insightly",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Insightly Spec",
- "type": "object",
- "required": [ "token", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "token": {
- "type": [ "string", "null" ],
- "title": "API Token",
- "description": "Your Insightly API token.",
- "airbyte_secret": true
- },
- "start_date": {
- "type": [ "string", "null" ],
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for Insightly in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated. Note that it will be used only for incremental streams.",
- "examples": [ "2021-03-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6acf6b55-4f1e-4fca-944e-1a3caef8aba8",
- "name": "Instagram",
- "dockerRepository": "airbyte/source-instagram",
- "dockerImageTag": "1.0.5",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/instagram",
- "icon": "instagram.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/instagram",
- "changelogUrl": "https://docs.airbyte.com/integrations/sources/instagram",
- "connectionSpecification": {
- "title": "Source Instagram",
- "type": "object",
- "properties": {
- "start_date": {
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for User Insights, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "type": "string",
- "format": "date-time"
- },
- "access_token": {
- "title": "Access Token",
- "description": "The value of the access token generated with instagram_basic, instagram_manage_insights, pages_show_list, pages_read_engagement, Instagram Public Content Access permissions. See the docs for more information",
- "airbyte_secret": true,
- "type": "string"
- }
- },
- "required": [ "start_date", "access_token" ]
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ ],
- "oauthFlowInitParameters": [ ],
- "oauthFlowOutputParameters": [ [ "access_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "graph.facebook.com" ]
- }
- }, {
- "sourceDefinitionId": "1901024c-0249-45d0-bcac-31a954652927",
- "name": "Instatus",
- "dockerRepository": "airbyte/source-instatus",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/instatus",
- "icon": "instatus.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/instatus",
- "connectionSpecification": {
- "title": "Instatus Spec",
- "type": "object",
- "additionalProperties": true,
- "required": [ "api_key" ],
- "properties": {
- "api_key": {
- "type": "string",
- "title": "Rest API Key",
- "airbyte_secret": true,
- "description": "Instatus REST API key"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d8313939-3782-41b0-be29-b3ca20d8dd3a",
- "name": "Intercom",
- "dockerRepository": "airbyte/source-intercom",
- "dockerImageTag": "0.2.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/intercom",
- "icon": "intercom.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/intercom",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Intercom Spec",
- "type": "object",
- "required": [ "start_date", "access_token" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "title": "Start date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2020-11-16T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "format": "date-time"
- },
- "access_token": {
- "title": "Access token",
- "type": "string",
- "description": "Access token for making authenticated requests. See the Intercom docs for more information.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ ],
- "oauthFlowInitParameters": [ ],
- "oauthFlowOutputParameters": [ [ "access_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.intercom.io" ]
- }
- }, {
- "sourceDefinitionId": "3d15163b-11d8-412f-b808-795c9b2c3a3a",
- "name": "Intruder",
- "dockerRepository": "airbyte/source-intruder",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/intruder",
- "icon": "intruder.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/intruder",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Intruder Spec",
- "type": "object",
- "required": [ "access_token" ],
- "additionalProperties": true,
- "properties": {
- "access_token": {
- "title": "API Access token",
- "type": "string",
- "description": "Your API Access token. See here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "2e875208-0c0b-4ee4-9e92-1cb3156ea799",
- "name": "Iterable",
- "dockerRepository": "airbyte/source-iterable",
- "dockerImageTag": "0.1.27",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/iterable",
- "icon": "iterable.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/iterable",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Iterable Spec",
- "type": "object",
- "required": [ "start_date", "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Iterable API Key. See the docs for more information on how to obtain this key.",
- "airbyte_secret": true,
- "order": 0
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for Iterable, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "examples": [ "2021-04-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "order": 1,
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.iterable.com" ]
- }
- }, {
- "sourceDefinitionId": "d6f73702-d7a0-4e95-9758-b0fb1af0bfba",
- "name": "Jenkins",
- "dockerRepository": "farosai/airbyte-jenkins-source",
- "dockerImageTag": "0.1.23",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/jenkins",
- "icon": "jenkins.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.faros.ai",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Jenkins Spec",
- "type": "object",
- "required": [ "server_url", "user", "token" ],
- "additionalProperties": false,
- "properties": {
- "server_url": {
- "type": "string",
- "title": "Jenkins Server URL",
- "examples": [ "https://my-jenkins-server.example.com" ]
- },
- "user": {
- "type": "string",
- "description": "Jenkins User"
- },
- "token": {
- "type": "string",
- "title": "Jenkins Token",
- "airbyte_secret": true
- },
- "depth": {
- "type": "number",
- "title": "Depth",
- "description": "Jenkins JSON API does not support deep scan, it is required to generate a suitable tree for the corresponding depth. Job in some cases have many sub jobs, depth needs to quantify how many sub jobs are showed. If depth is not provided we will try to compute it automatically"
- },
- "pageSize": {
- "type": "integer",
- "minimum": 1,
- "default": 10,
- "title": "Page Size",
- "description": "Quantity of jobs on a single page fetched from Jenkins"
- },
- "last100Builds": {
- "type": "boolean",
- "default": false,
- "title": "Last 100 Builds Only",
- "description": "Fetch only 100 last builds from Jenkins server"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "68e63de2-bb83-4c7e-93fa-a8a9051e3993",
- "name": "Jira",
- "dockerRepository": "airbyte/source-jira",
- "dockerImageTag": "0.3.7",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/jira",
- "icon": "jira.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/jira",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Jira Spec",
- "type": "object",
- "required": [ "api_token", "domain", "email" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "type": "string",
- "title": "API Token",
- "description": "Jira API Token. See the docs for more information on how to generate this key.",
- "airbyte_secret": true,
- "order": 0
- },
- "domain": {
- "type": "string",
- "title": "Domain",
- "examples": [ ".atlassian.net", ".jira.com", "jira..com" ],
- "description": "The Domain for your Jira account, e.g. airbyteio.atlassian.net, airbyteio.jira.com, jira.your-domain.com",
- "order": 1
- },
- "email": {
- "type": "string",
- "title": "Email",
- "description": "The user email for your Jira account.",
- "order": 2
- },
- "projects": {
- "type": "array",
- "title": "Projects",
- "items": {
- "type": "string"
- },
- "examples": [ "PROJ1", "PROJ2" ],
- "description": "List of Jira project keys to replicate data for.",
- "order": 3
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date from which you want to replicate data from Jira, use the format YYYY-MM-DDT00:00:00Z. Note that this field only applies to certain streams, and only data generated on or after the start date will be replicated. For more information, refer to the documentation.",
- "examples": [ "2021-03-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "format": "date-time",
- "order": 4
- },
- "expand_issue_changelog": {
- "type": "boolean",
- "title": "Expand Issue Changelog",
- "description": "Expand the changelog when replicating issues.",
- "default": false,
- "order": 5
- },
- "render_fields": {
- "type": "boolean",
- "title": "Render Issue Fields",
- "description": "Render issue fields in HTML format in addition to Jira JSON-like format.",
- "default": false,
- "order": 6
- },
- "enable_experimental_streams": {
- "type": "boolean",
- "title": "Enable Experimental Streams",
- "description": "Allow the use of experimental streams which rely on undocumented Jira API endpoints. See https://docs.airbyte.com/integrations/sources/jira#experimental-tables for more info.",
- "default": false,
- "order": 7
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "${domain}" ]
- },
- "maxSecondsBetweenMessages": 21600
- }, {
- "sourceDefinitionId": "e300ece7-b073-43a3-852e-8aff36a57f13",
- "name": "K6 Cloud",
- "dockerRepository": "airbyte/source-k6-cloud",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/k6-cloud",
- "icon": "k6cloud.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/k6-cloud",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "K6 Cloud Spec",
- "type": "object",
- "required": [ "api_token" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "title": "Api Token",
- "type": "string",
- "description": "Your API Token. See here. The key is case sensitive.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d917a47b-8537-4d0d-8c10-36a9928d4265",
- "name": "Kafka",
- "dockerRepository": "airbyte/source-kafka",
- "dockerImageTag": "0.2.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/kafka",
- "icon": "kafka.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/kafka",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Kafka Source Spec",
- "type": "object",
- "required": [ "bootstrap_servers", "subscription", "protocol" ],
- "additionalProperties": true,
- "properties": {
- "MessageFormat": {
- "title": "MessageFormat",
- "type": "object",
- "description": "The serialization used based on this ",
- "oneOf": [ {
- "title": "JSON",
- "properties": {
- "deserialization_type": {
- "type": "string",
- "const": "JSON"
- }
- }
- }, {
- "title": "AVRO",
- "properties": {
- "deserialization_type": {
- "const": "AVRO"
- },
- "deserialization_strategy": {
- "type": "string",
- "enum": [ "TopicNameStrategy", "RecordNameStrategy", "TopicRecordNameStrategy" ],
- "default": "TopicNameStrategy"
- },
- "schema_registry_url": {
- "type": "string",
- "examples": [ "http://localhost:8081" ]
- },
- "schema_registry_username": {
- "type": "string",
- "default": ""
- },
- "schema_registry_password": {
- "type": "string",
- "default": ""
- }
- }
- } ]
- },
- "bootstrap_servers": {
- "title": "Bootstrap Servers",
- "description": "A list of host/port pairs to use for establishing the initial connection to the Kafka cluster. The client will make use of all servers irrespective of which servers are specified here for bootstrapping—this list only impacts the initial hosts used to discover the full set of servers. This list should be in the form host1:port1,host2:port2,...
. Since these servers are just used for the initial connection to discover the full cluster membership (which may change dynamically), this list need not contain the full set of servers (you may want more than one, though, in case a server is down).",
- "type": "string",
- "examples": [ "kafka-broker1:9092,kafka-broker2:9092" ]
- },
- "subscription": {
- "title": "Subscription Method",
- "type": "object",
- "description": "You can choose to manually assign a list of partitions, or subscribe to all topics matching specified pattern to get dynamically assigned partitions.",
- "oneOf": [ {
- "title": "Manually assign a list of partitions",
- "required": [ "subscription_type", "topic_partitions" ],
- "properties": {
- "subscription_type": {
- "description": "Manually assign a list of partitions to this consumer. This interface does not allow for incremental assignment and will replace the previous assignment (if there is one).\nIf the given list of topic partitions is empty, it is treated the same as unsubscribe().",
- "type": "string",
- "const": "assign"
- },
- "topic_partitions": {
- "title": "List of topic:partition Pairs",
- "type": "string",
- "examples": [ "sample.topic:0, sample.topic:1" ]
- }
- }
- }, {
- "title": "Subscribe to all topics matching specified pattern",
- "required": [ "subscription_type", "topic_pattern" ],
- "properties": {
- "subscription_type": {
- "description": "The Topic pattern from which the records will be read.",
- "type": "string",
- "const": "subscribe"
- },
- "topic_pattern": {
- "title": "Topic Pattern",
- "type": "string",
- "examples": [ "sample.topic" ]
- }
- }
- } ]
- },
- "test_topic": {
- "title": "Test Topic",
- "description": "The Topic to test in case the Airbyte can consume messages.",
- "type": "string",
- "examples": [ "test.topic" ]
- },
- "group_id": {
- "title": "Group ID",
- "description": "The Group ID is how you distinguish different consumer groups.",
- "type": "string",
- "examples": [ "group.id" ]
- },
- "max_poll_records": {
- "title": "Max Poll Records",
- "description": "The maximum number of records returned in a single call to poll(). Note, that max_poll_records does not impact the underlying fetching behavior. The consumer will cache the records from each fetch request and returns them incrementally from each poll.",
- "type": "integer",
- "default": 500
- },
- "polling_time": {
- "title": "Polling Time",
- "description": "Amount of time Kafka connector should try to poll for messages.",
- "type": "integer",
- "default": 100
- },
- "protocol": {
- "title": "Protocol",
- "type": "object",
- "description": "The Protocol used to communicate with brokers.",
- "oneOf": [ {
- "title": "PLAINTEXT",
- "required": [ "security_protocol" ],
- "properties": {
- "security_protocol": {
- "type": "string",
- "const": "PLAINTEXT"
- }
- }
- }, {
- "title": "SASL PLAINTEXT",
- "required": [ "security_protocol", "sasl_mechanism", "sasl_jaas_config" ],
- "properties": {
- "security_protocol": {
- "type": "string",
- "const": "SASL_PLAINTEXT"
- },
- "sasl_mechanism": {
- "title": "SASL Mechanism",
- "description": "The SASL mechanism used for client connections. This may be any mechanism for which a security provider is available.",
- "type": "string",
- "const": "PLAIN"
- },
- "sasl_jaas_config": {
- "title": "SASL JAAS Config",
- "description": "The JAAS login context parameters for SASL connections in the format used by JAAS configuration files.",
- "type": "string",
- "default": "",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "SASL SSL",
- "required": [ "security_protocol", "sasl_mechanism", "sasl_jaas_config" ],
- "properties": {
- "security_protocol": {
- "type": "string",
- "const": "SASL_SSL"
- },
- "sasl_mechanism": {
- "title": "SASL Mechanism",
- "description": "The SASL mechanism used for client connections. This may be any mechanism for which a security provider is available.",
- "type": "string",
- "default": "GSSAPI",
- "enum": [ "GSSAPI", "OAUTHBEARER", "SCRAM-SHA-256", "SCRAM-SHA-512", "PLAIN" ]
- },
- "sasl_jaas_config": {
- "title": "SASL JAAS Config",
- "description": "The JAAS login context parameters for SASL connections in the format used by JAAS configuration files.",
- "type": "string",
- "default": "",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "client_id": {
- "title": "Client ID",
- "description": "An ID string to pass to the server when making requests. The purpose of this is to be able to track the source of requests beyond just ip/port by allowing a logical application name to be included in server-side request logging.",
- "type": "string",
- "examples": [ "airbyte-consumer" ]
- },
- "enable_auto_commit": {
- "title": "Enable Auto Commit",
- "description": "If true, the consumer's offset will be periodically committed in the background.",
- "type": "boolean",
- "default": true
- },
- "auto_commit_interval_ms": {
- "title": "Auto Commit Interval, ms",
- "description": "The frequency in milliseconds that the consumer offsets are auto-committed to Kafka if enable.auto.commit is set to true.",
- "type": "integer",
- "default": 5000
- },
- "client_dns_lookup": {
- "title": "Client DNS Lookup",
- "description": "Controls how the client uses DNS lookups. If set to use_all_dns_ips, connect to each returned IP address in sequence until a successful connection is established. After a disconnection, the next IP is used. Once all IPs have been used once, the client resolves the IP(s) from the hostname again. If set to resolve_canonical_bootstrap_servers_only, resolve each bootstrap address into a list of canonical names. After the bootstrap phase, this behaves the same as use_all_dns_ips. If set to default (deprecated), attempt to connect to the first IP address returned by the lookup, even if the lookup returns multiple IP addresses.",
- "type": "string",
- "default": "use_all_dns_ips",
- "enum": [ "default", "use_all_dns_ips", "resolve_canonical_bootstrap_servers_only" ]
- },
- "retry_backoff_ms": {
- "title": "Retry Backoff, ms",
- "description": "The amount of time to wait before attempting to retry a failed request to a given topic partition. This avoids repeatedly sending requests in a tight loop under some failure scenarios.",
- "type": "integer",
- "default": 100
- },
- "request_timeout_ms": {
- "title": "Request Timeout, ms",
- "description": "The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted.",
- "type": "integer",
- "default": 30000
- },
- "receive_buffer_bytes": {
- "title": "Receive Buffer, bytes",
- "description": "The size of the TCP receive buffer (SO_RCVBUF) to use when reading data. If the value is -1, the OS default will be used.",
- "type": "integer",
- "default": 32768
- },
- "auto_offset_reset": {
- "title": "Auto Offset Reset",
- "description": "What to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server - earliest: automatically reset the offset to the earliest offset, latest: automatically reset the offset to the latest offset, none: throw exception to the consumer if no previous offset is found for the consumer's group, anything else: throw exception to the consumer.",
- "type": "string",
- "default": "latest",
- "enum": [ "latest", "earliest", "none" ]
- },
- "repeated_calls": {
- "title": "Repeated Calls",
- "description": "The number of repeated calls to poll() if no messages were received.",
- "type": "integer",
- "default": 3
- },
- "max_records_process": {
- "title": "Maximum Records",
- "description": "The Maximum to be processed per execution",
- "type": "integer",
- "default": 100000
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "supported_source_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "60c24725-00ae-490c-991d-55b78c3197e0",
- "name": "Klarna",
- "dockerRepository": "airbyte/source-klarna",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/klarna",
- "icon": "klarna.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/klarna",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Klarna Spec",
- "type": "object",
- "required": [ "region", "playground", "username", "password" ],
- "additionalProperties": true,
- "properties": {
- "region": {
- "title": "Region",
- "type": "string",
- "enum": [ "eu", "us", "oc" ],
- "description": "Base url region (For playground eu https://docs.klarna.com/klarna-payments/api/payments-api/#tag/API-URLs). Supported 'eu', 'us', 'oc'"
- },
- "playground": {
- "title": "Playground",
- "type": "boolean",
- "description": "Propertie defining if connector is used against playground or production environment",
- "default": false
- },
- "username": {
- "title": "Username",
- "type": "string",
- "description": "Consists of your Merchant ID (eid) - a unique number that identifies your e-store, combined with a random string (https://developers.klarna.com/api/#authentication)"
- },
- "password": {
- "title": "Password",
- "type": "string",
- "description": "A string which is associated with your Merchant ID and is used to authorize use of Klarna's APIs (https://developers.klarna.com/api/#authentication)",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "95e8cffd-b8c4-4039-968e-d32fb4a69bde",
- "name": "Klaviyo",
- "dockerRepository": "airbyte/source-klaviyo",
- "dockerImageTag": "0.3.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/klaviyo",
- "icon": "klaviyo.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/klaviyo",
- "changelogUrl": "https://docs.airbyte.com/integrations/sources/klaviyo",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Klaviyo Spec",
- "type": "object",
- "properties": {
- "api_key": {
- "title": "Api Key",
- "description": "Klaviyo API Key. See our docs if you need help finding this key.",
- "airbyte_secret": true,
- "type": "string"
- },
- "start_date": {
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "type": "string",
- "format": "date-time"
- }
- },
- "required": [ "api_key", "start_date" ]
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "a.klaviyo.com", "klaviyo.com" ]
- }
- }, {
- "sourceDefinitionId": "547dc08e-ab51-421d-953b-8f3745201a8c",
- "name": "Kyriba",
- "dockerRepository": "airbyte/source-kyriba",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/kyriba",
- "icon": "kyriba.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Kyriba Spec",
- "type": "object",
- "required": [ "domain", "username", "password", "start_date" ],
- "additionalProperties": false,
- "properties": {
- "domain": {
- "type": "string",
- "description": "Kyriba domain",
- "title": "Domain",
- "examples": [ "demo.kyriba.com" ],
- "pattern": "^[a-zA-Z0-9._-]*\\.[a-zA-Z0-9._-]*\\.[a-z]*"
- },
- "username": {
- "type": "string",
- "description": "Username to be used in basic auth",
- "title": "Username"
- },
- "password": {
- "type": "string",
- "description": "Password to be used in basic auth",
- "title": "Password",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "description": "The date the sync should start from.",
- "title": "Start Date",
- "examples": [ "2021-01-10" ],
- "pattern": "^\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12][0-9]|3[01])$"
- },
- "end_date": {
- "type": "string",
- "description": "The date the sync should end. If let empty the sync will run to the current date.",
- "title": "End Date",
- "examples": [ "2022-03-01" ],
- "pattern": "^(?:(\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12][0-9]|3[01]))|)$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "f96bb511-5e3c-48fc-b408-547953cd81a4",
- "name": "LaunchDarkly",
- "dockerRepository": "airbyte/source-launchdarkly",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/launchdarkly",
- "icon": "launchdarkly.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/launchdarkly",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Launchdarkly Spec",
- "type": "object",
- "required": [ "access_token" ],
- "additionalProperties": true,
- "properties": {
- "access_token": {
- "title": "Access token",
- "type": "string",
- "description": "Your Access token. See here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "789f8e7a-2d28-11ec-8d3d-0242ac130003",
- "name": "Lemlist",
- "dockerRepository": "airbyte/source-lemlist",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/lemlist",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/lemlist",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Lemlist Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": false,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API key",
- "description": "Lemlist API key.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "3981c999-bd7d-4afc-849b-e53dea90c948",
- "name": "Lever Hiring",
- "dockerRepository": "airbyte/source-lever-hiring",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/lever-hiring",
- "icon": "leverhiring.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/lever-hiring",
- "changelogUrl": "https://docs.airbyte.com/integrations/sources/lever-hiring#changelog",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Lever Hiring Source Spec",
- "type": "object",
- "required": [ "start_date" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "order": 3,
- "title": "Authentication Mechanism",
- "description": "Choose how to authenticate to Lever Hiring.",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "Authenticate via Lever (OAuth)",
- "required": [ "refresh_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Lever Hiring developer application."
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Lever Hiring developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "The token for obtaining new access token.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Authenticate via Lever (Api Key)",
- "required": [ "api_key" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Api Key",
- "order": 0
- },
- "api_key": {
- "title": "Api key",
- "type": "string",
- "description": "The Api Key of your Lever Hiring account.",
- "airbyte_secret": true,
- "order": 1
- }
- }
- } ]
- },
- "start_date": {
- "order": 0,
- "type": "string",
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. Note that it will be used only in the following incremental streams: comments, commits, and issues.",
- "examples": [ "2021-03-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
- },
- "environment": {
- "order": 1,
- "type": "string",
- "title": "Environment",
- "description": "The environment in which you'd like to replicate data for Lever. This is used to determine which Lever API endpoint to use.",
- "default": "Sandbox",
- "enum": [ "Production", "Sandbox" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- },
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "Client",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "properties": {
- "environment": {
- "type": "string",
- "path_in_connector_config": [ "environment" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "137ece28-5434-455c-8f34-69dc3782f451",
- "name": "LinkedIn Ads",
- "dockerRepository": "airbyte/source-linkedin-ads",
- "dockerImageTag": "0.1.15",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/linkedin-ads",
- "icon": "linkedin.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/linkedin-ads",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Linkedin Ads Spec",
- "type": "object",
- "required": [ "start_date" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authentication",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "oAuth2.0"
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The client ID of the LinkedIn Ads developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client secret",
- "description": "The client secret the LinkedIn Ads developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh token",
- "description": "The key to refresh the expired access token.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Access token",
- "type": "object",
- "required": [ "access_token" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "access_token"
- },
- "access_token": {
- "type": "string",
- "title": "Access token",
- "description": "The token value generated using the authentication code. See the docs to obtain yours.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "start_date": {
- "type": "string",
- "title": "Start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "description": "UTC date in the format 2020-09-17. Any data before this date will not be replicated.",
- "examples": [ "2021-05-17" ],
- "format": "date"
- },
- "account_ids": {
- "title": "Account IDs",
- "type": "array",
- "description": "Specify the account IDs separated by a space, to pull the data from. Leave empty, if you want to pull the data from all associated accounts. See the LinkedIn Ads docs for more info.",
- "items": {
- "type": "integer"
- },
- "default": [ ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.linkedin.com" ]
- },
- "maxSecondsBetweenMessages": 21600
- }, {
- "sourceDefinitionId": "af54297c-e8f8-4d63-a00d-a94695acc9d3",
- "name": "LinkedIn Pages",
- "dockerRepository": "airbyte/source-linkedin-pages",
- "dockerImageTag": "1.0.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/linkedin-pages",
- "icon": "linkedin.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/linkedin-pages/",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Linkedin Pages Spec",
- "type": "object",
- "required": [ "org_id" ],
- "additionalProperties": true,
- "properties": {
- "org_id": {
- "title": "Organization ID",
- "type": "string",
- "airbyte_secret": true,
- "description": "Specify the Organization ID",
- "examples": [ "123456789" ]
- },
- "credentials": {
- "title": "Authentication",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "oAuth2.0"
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The client ID of the LinkedIn developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client secret",
- "description": "The client secret of the LinkedIn developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh token",
- "description": "The token value generated using the LinkedIn Developers OAuth Token Tools. See the docs to obtain yours.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Access token",
- "type": "object",
- "required": [ "access_token" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "access_token"
- },
- "access_token": {
- "type": "string",
- "title": "Access token",
- "description": "The token value generated using the LinkedIn Developers OAuth Token Tools. See the docs to obtain yours.",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "7b86879e-26c5-4ef6-a5ce-2be5c7b46d1e",
- "name": "Linnworks",
- "dockerRepository": "airbyte/source-linnworks",
- "dockerImageTag": "0.1.5",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/linnworks",
- "icon": "linnworks.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/linnworks",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Linnworks Spec",
- "type": "object",
- "required": [ "application_id", "application_secret", "token", "start_date" ],
- "additionalProperties": false,
- "properties": {
- "application_id": {
- "title": "Application ID.",
- "description": "Linnworks Application ID",
- "type": "string"
- },
- "application_secret": {
- "title": "Application Secret",
- "description": "Linnworks Application Secret",
- "type": "string",
- "airbyte_secret": true
- },
- "token": {
- "title": "API Token",
- "type": "string"
- },
- "start_date": {
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "type": "string",
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "45e0b135-615c-40ac-b38e-e65b0944197f",
- "name": "Lokalise",
- "dockerRepository": "airbyte/source-lokalise",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/lokalise",
- "icon": "lokalise.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/lokalise",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Lokalise Spec",
- "type": "object",
- "required": [ "api_key", "project_id" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Lokalise API Key with read-access. Available at Profile settings > API tokens. See here.",
- "airbyte_secret": true
- },
- "project_id": {
- "title": "Project Id",
- "type": "string",
- "description": "Lokalise project ID. Available at Project Settings > General."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "00405b19-9768-4e0c-b1ae-9fc2ee2b2a8c",
- "name": "Looker",
- "dockerRepository": "airbyte/source-looker",
- "dockerImageTag": "0.2.8",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/looker",
- "icon": "looker.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/looker",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Looker Spec",
- "type": "object",
- "required": [ "domain", "client_id", "client_secret" ],
- "additionalProperties": true,
- "properties": {
- "domain": {
- "type": "string",
- "title": "Domain",
- "examples": [ "domainname.looker.com", "looker.clientname.com", "123.123.124.123:8000" ],
- "description": "Domain for your Looker account, e.g. airbyte.cloud.looker.com,looker.[clientname].com,IP address"
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID is first part of an API3 key that is specific to each Looker user. See the docs for more information on how to generate this key."
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret is second part of an API3 key.",
- "airbyte_secret": true
- },
- "run_look_ids": {
- "title": "Look IDs to Run",
- "type": "array",
- "items": {
- "type": "string",
- "pattern": "^[0-9]*$"
- },
- "description": "The IDs of any Looks to run"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "b03a9f3e-22a5-11eb-adc1-0242ac120002",
- "name": "Mailchimp",
- "dockerRepository": "airbyte/source-mailchimp",
- "dockerImageTag": "0.3.5",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailchimp",
- "icon": "mailchimp.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailchimp",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Mailchimp Spec",
- "type": "object",
- "required": [ ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "type": "object",
- "title": "Authentication",
- "oneOf": [ {
- "title": "OAuth2.0",
- "type": "object",
- "required": [ "auth_type", "access_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "oauth2.0",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your OAuth application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your OAuth application.",
- "airbyte_secret": true
- },
- "access_token": {
- "title": "Access Token",
- "type": "string",
- "description": "An access token generated using the above client ID and secret.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "API Key",
- "required": [ "auth_type", "apikey" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "apikey",
- "order": 1
- },
- "apikey": {
- "type": "string",
- "title": "API Key",
- "description": "Mailchimp API Key. See the docs for information on how to generate this key.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "campaign_id": {
- "type": "string",
- "title": "ID of a campaign to sync email activities",
- "airbyte_hidden": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*.api.mailchimp.com" ]
- }
- }, {
- "sourceDefinitionId": "56582331-5de2-476b-b913-5798de77bbdf",
- "name": "Mailjet Mail",
- "dockerRepository": "airbyte/source-mailjet-mail",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailjet-mail",
- "icon": "mailjetmail.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailjet-mail",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Mailjet Mail Spec",
- "type": "object",
- "required": [ "api_key", "api_key_secret" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Your API Key. See here."
- },
- "api_key_secret": {
- "title": "API Secret Key",
- "type": "string",
- "description": "Your API Secret Key. See here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6ec2acea-7fd1-4378-b403-41a666e0c028",
- "name": "Mailjet SMS",
- "dockerRepository": "airbyte/source-mailjet-sms",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailjet-sms",
- "icon": "mailjetsms.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailjet-sms",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Mailjet Sms Spec",
- "type": "object",
- "required": [ "token" ],
- "additionalProperties": true,
- "properties": {
- "token": {
- "title": "Access Token",
- "type": "string",
- "description": "Your access token. See here.",
- "airbyte_secret": true
- },
- "start_date": {
- "title": "Start date",
- "type": "integer",
- "description": "Retrieve SMS messages created after the specified timestamp. Required format - Unix timestamp.",
- "pattern": "^[0-9]*$",
- "examples": [ 1666261656 ]
- },
- "end_date": {
- "title": "End date",
- "type": "integer",
- "description": "Retrieve SMS messages created before the specified timestamp. Required format - Unix timestamp.",
- "pattern": "^[0-9]*$",
- "examples": [ 1666281656 ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "dc3b9003-2432-4e93-a7f4-4620b0f14674",
- "name": "MailerLite",
- "dockerRepository": "airbyte/source-mailerlite",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailerlite",
- "icon": "mailerlite.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailerlite",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Mailerlite Spec",
- "type": "object",
- "required": [ "api_token" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "type": "string",
- "description": "Your API Token. See here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "2707d529-3c04-46eb-9c7e-40d4038df6f7",
- "name": "MailerSend",
- "dockerRepository": "airbyte/source-mailersend",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailersend",
- "icon": "mailersend.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailersend",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Mailersend Spec",
- "type": "object",
- "required": [ "api_token", "domain_id" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "type": "string",
- "description": "Your API Token. See here.",
- "airbyte_secret": true
- },
- "domain_id": {
- "type": "string",
- "description": "The domain entity in mailersend",
- "examples": [ "airbyte.com", "linkana.com" ]
- },
- "start_date": {
- "type": "number",
- "description": "Timestamp is assumed to be UTC.",
- "examples": [ 123131321 ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "5b9cb09e-1003-4f9c-983d-5779d1b2cd51",
- "name": "Mailgun",
- "dockerRepository": "airbyte/source-mailgun",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailgun",
- "icon": "mailgun.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailgun",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Mailgun Spec",
- "type": "object",
- "required": [ "private_key" ],
- "additionalProperties": true,
- "properties": {
- "private_key": {
- "type": "string",
- "airbyte_secret": true,
- "description": "Primary account API key to access your Mailgun data.",
- "title": "Private API Key"
- },
- "domain_region": {
- "type": "string",
- "description": "Domain region code. 'EU' or 'US' are possible values. The default is 'US'.",
- "title": "Domain Region Code"
- },
- "start_date": {
- "title": "Replication Start Date",
- "description": "UTC date and time in the format 2020-10-01 00:00:00. Any data before this date will not be replicated. If omitted, defaults to 3 days ago.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$",
- "examples": [ "2020-10-01 00:00:00" ],
- "type": "string",
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "9e0556f4-69df-4522-a3fb-03264d36b348",
- "name": "Marketo",
- "dockerRepository": "airbyte/source-marketo",
- "dockerImageTag": "1.0.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/marketo",
- "icon": "marketo.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/marketo",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Marketo Spec",
- "type": "object",
- "required": [ "domain_url", "client_id", "client_secret", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "domain_url": {
- "title": "Domain URL",
- "type": "string",
- "order": 3,
- "description": "Your Marketo Base URL. See the docs for info on how to obtain this.",
- "examples": [ "https://000-AAA-000.mktorest.com" ],
- "airbyte_secret": true
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Marketo developer application. See the docs for info on how to obtain this.",
- "order": 0,
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Marketo developer application. See the docs for info on how to obtain this.",
- "order": 1,
- "airbyte_secret": true
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "order": 2,
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2020-09-25T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*.mktorest.com" ]
- }
- }, {
- "sourceDefinitionId": "c7cb421b-942e-4468-99ee-e369bcabaec5",
- "name": "Metabase",
- "dockerRepository": "airbyte/source-metabase",
- "dockerImageTag": "0.3.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/metabase",
- "icon": "metabase.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/metabase",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Metabase Source Spec",
- "type": "object",
- "required": [ "instance_api_url" ],
- "additionalProperties": true,
- "properties": {
- "instance_api_url": {
- "type": "string",
- "title": "Metabase Instance API URL",
- "description": "URL to your metabase instance API",
- "examples": [ "https://localhost:3000/api/" ],
- "pattern": "^https://",
- "order": 0
- },
- "username": {
- "type": "string",
- "order": 1
- },
- "password": {
- "type": "string",
- "airbyte_secret": true,
- "order": 2
- },
- "session_token": {
- "type": "string",
- "description": "To generate your session token, you need to run the following command: ``` curl -X POST \\\n -H \"Content-Type: application/json\" \\\n -d '{\"username\": \"person@metabase.com\", \"password\": \"fakepassword\"}' \\\n http://localhost:3000/api/session\n``` Then copy the value of the `id` field returned by a successful call to that API.\nNote that by default, sessions are good for 14 days and needs to be regenerated.",
- "airbyte_secret": true,
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta"
- }, {
- "sourceDefinitionId": "b5ea17b1-f170-46dc-bc31-cc744ca984c1",
- "name": "Microsoft SQL Server (MSSQL)",
- "dockerRepository": "airbyte/source-mssql",
- "dockerImageTag": "1.0.14",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mssql",
- "icon": "mssql.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mssql",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "MSSQL Source Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username" ],
- "properties": {
- "host": {
- "description": "The hostname of the database.",
- "title": "Host",
- "type": "string",
- "order": 0
- },
- "port": {
- "description": "The port of the database.",
- "title": "Port",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "examples": [ "1433" ],
- "order": 1
- },
- "database": {
- "description": "The name of the database.",
- "title": "Database",
- "type": "string",
- "examples": [ "master" ],
- "order": 2
- },
- "schemas": {
- "title": "Schemas",
- "description": "The list of schemas to sync from. Defaults to user. Case sensitive.",
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 0,
- "uniqueItems": true,
- "default": [ "dbo" ],
- "order": 3
- },
- "username": {
- "description": "The username which is used to access the database.",
- "title": "Username",
- "type": "string",
- "order": 4
- },
- "password": {
- "description": "The password associated with the username.",
- "title": "Password",
- "type": "string",
- "airbyte_secret": true,
- "order": 5
- },
- "jdbc_url_params": {
- "title": "JDBC URL Params",
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "type": "string",
- "order": 6
- },
- "ssl_method": {
- "title": "SSL Method",
- "type": "object",
- "description": "The encryption method which is used when communicating with the database.",
- "order": 7,
- "oneOf": [ {
- "title": "Unencrypted",
- "description": "Data transfer will not be encrypted.",
- "required": [ "ssl_method" ],
- "properties": {
- "ssl_method": {
- "type": "string",
- "const": "unencrypted"
- }
- }
- }, {
- "title": "Encrypted (trust server certificate)",
- "description": "Use the certificate provided by the server without verification. (For testing purposes only!)",
- "required": [ "ssl_method" ],
- "properties": {
- "ssl_method": {
- "type": "string",
- "const": "encrypted_trust_server_certificate"
- }
- }
- }, {
- "title": "Encrypted (verify certificate)",
- "description": "Verify and use the certificate provided by the server.",
- "required": [ "ssl_method", "trustStoreName", "trustStorePassword" ],
- "properties": {
- "ssl_method": {
- "type": "string",
- "const": "encrypted_verify_certificate"
- },
- "hostNameInCertificate": {
- "title": "Host Name In Certificate",
- "type": "string",
- "description": "Specifies the host name of the server. The value of this property must match the subject property of the certificate.",
- "order": 7
- }
- }
- } ]
- },
- "replication_method": {
- "type": "object",
- "title": "Replication Method",
- "description": "The replication method used for extracting data from the database. STANDARD replication requires no setup on the DB side but will not be able to represent deletions incrementally. CDC uses {TBC} to detect inserts, updates, and deletes. This needs to be configured on the source database itself.",
- "default": "STANDARD",
- "order": 8,
- "oneOf": [ {
- "title": "Standard",
- "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "STANDARD",
- "order": 0
- }
- }
- }, {
- "title": "Logical Replication (CDC)",
- "description": "CDC uses {TBC} to detect inserts, updates, and deletes. This needs to be configured on the source database itself.",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "CDC",
- "order": 0
- },
- "data_to_sync": {
- "title": "Data to Sync",
- "type": "string",
- "default": "Existing and New",
- "enum": [ "Existing and New", "New Changes Only" ],
- "description": "What data should be synced under the CDC. \"Existing and New\" will read existing data as a snapshot, and sync new changes through CDC. \"New Changes Only\" will skip the initial snapshot, and only sync new changes through CDC.",
- "order": 1
- },
- "snapshot_isolation": {
- "title": "Initial Snapshot Isolation Level",
- "type": "string",
- "default": "Snapshot",
- "enum": [ "Snapshot", "Read Committed" ],
- "description": "Existing data in the database are synced through an initial snapshot. This parameter controls the isolation level that will be used during the initial snapshotting. If you choose the \"Snapshot\" level, you must enable the snapshot isolation mode on the database.",
- "order": 2
- },
- "initial_waiting_seconds": {
- "type": "integer",
- "title": "Initial Waiting Time in Seconds (Advanced)",
- "description": "The amount of time the connector will wait when it launches to determine if there is new data to sync or not. Defaults to 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about initial waiting time.",
- "default": 300,
- "min": 120,
- "max": 1200,
- "order": 3
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
- }
- }, {
- "sourceDefinitionId": "eaf50f04-21dd-4620-913b-2a83f5635227",
- "name": "Microsoft teams",
- "dockerRepository": "airbyte/source-microsoft-teams",
- "dockerImageTag": "0.2.5",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/microsoft-teams",
- "icon": "microsoft-teams.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/microsoft-teams",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Microsoft Teams Spec",
- "type": "object",
- "required": [ "period" ],
- "additionalProperties": true,
- "properties": {
- "period": {
- "type": "string",
- "title": "Period",
- "description": "Specifies the length of time over which the Team Device Report stream is aggregated. The supported values are: D7, D30, D90, and D180.",
- "examples": [ "D7" ]
- },
- "credentials": {
- "title": "Authentication mechanism",
- "description": "Choose how to authenticate to Microsoft",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "Authenticate via Microsoft (OAuth 2.0)",
- "required": [ "tenant_id", "client_id", "client_secret", "refresh_token" ],
- "additionalProperties": false,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client",
- "enum": [ "Client" ],
- "default": "Client",
- "order": 0
- },
- "tenant_id": {
- "title": "Directory (tenant) ID",
- "type": "string",
- "description": "A globally unique identifier (GUID) that is different than your organization name or domain. Follow these steps to obtain: open one of the Teams where you belong inside the Teams Application -> Click on the … next to the Team title -> Click on Get link to team -> Copy the link to the team and grab the tenant ID form the URL"
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Microsoft Teams developer application."
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Microsoft Teams developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "A Refresh Token to renew the expired Access Token.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Authenticate via Microsoft",
- "required": [ "tenant_id", "client_id", "client_secret" ],
- "additionalProperties": false,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Token",
- "enum": [ "Token" ],
- "default": "Token",
- "order": 0
- },
- "tenant_id": {
- "title": "Directory (tenant) ID",
- "type": "string",
- "description": "A globally unique identifier (GUID) that is different than your organization name or domain. Follow these steps to obtain: open one of the Teams where you belong inside the Teams Application -> Click on the … next to the Team title -> Click on Get link to team -> Copy the link to the team and grab the tenant ID form the URL"
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Microsoft Teams developer application."
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Microsoft Teams developer application.",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "Client",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "tenant_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "tenant_id" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "9220e3de-3b60-4bb2-a46f-046d59ea235a",
- "name": "Microsoft Dataverse",
- "dockerRepository": "airbyte/source-microsoft-dataverse",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/microsoft-dataverse",
- "icon": "microsoftdataverse.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/microsoft-dataverse",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Microsoft Dataverse Spec",
- "type": "object",
- "required": [ "url", "tenant_id", "client_id", "client_secret_value" ],
- "additionalProperties": true,
- "properties": {
- "url": {
- "type": "string",
- "description": "URL to Microsoft Dataverse API",
- "title": "URL",
- "examples": [ "https://.crm.dynamics.com" ],
- "order": 0
- },
- "tenant_id": {
- "type": "string",
- "description": "Tenant Id of your Microsoft Dataverse Instance",
- "title": "Tenant Id",
- "airbyte_secret": true,
- "order": 1
- },
- "client_id": {
- "type": "string",
- "description": "App Registration Client Id",
- "title": "Client Id",
- "airbyte_secret": true,
- "order": 2
- },
- "client_secret_value": {
- "type": "string",
- "description": "App Registration Client Secret",
- "title": "Client Secret",
- "airbyte_secret": true,
- "order": 3
- },
- "odata_maxpagesize": {
- "type": "integer",
- "description": "Max number of results per page. Default=5000",
- "title": "Max page size",
- "default": 5000,
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "12928b32-bf0a-4f1e-964f-07e12e37153a",
- "name": "Mixpanel",
- "dockerRepository": "airbyte/source-mixpanel",
- "dockerImageTag": "0.1.31",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mixpanel",
- "icon": "mixpanel.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mixpanel",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Mixpanel Spec",
- "type": "object",
- "properties": {
- "credentials": {
- "title": "Authentication *",
- "description": "Choose how to authenticate to Mixpanel",
- "type": "object",
- "order": 0,
- "oneOf": [ {
- "type": "object",
- "title": "Service Account",
- "required": [ "username", "secret" ],
- "properties": {
- "option_title": {
- "type": "string",
- "const": "Service Account",
- "order": 0
- },
- "username": {
- "order": 1,
- "title": "Username",
- "type": "string",
- "description": "Mixpanel Service Account Username. See the docs for more information on how to obtain this."
- },
- "secret": {
- "order": 2,
- "title": "Secret",
- "type": "string",
- "description": "Mixpanel Service Account Secret. See the docs for more information on how to obtain this.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Project Secret",
- "required": [ "api_secret" ],
- "properties": {
- "option_title": {
- "type": "string",
- "const": "Project Secret",
- "order": 0
- },
- "api_secret": {
- "order": 1,
- "title": "Project Secret",
- "type": "string",
- "description": "Mixpanel project secret. See the docs for more information on how to obtain this.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "project_id": {
- "order": 1,
- "title": "Project ID",
- "description": "Your project ID number. See the docs for more information on how to obtain this.",
- "type": "integer"
- },
- "attribution_window": {
- "order": 2,
- "title": "Attribution Window",
- "type": "integer",
- "description": " A period of time for attributing results to ads and the lookback period after those actions occur during which ad results are counted. Default attribution window is 5 days.",
- "default": 5
- },
- "project_timezone": {
- "order": 3,
- "title": "Project Timezone",
- "type": "string",
- "description": "Time zone in which integer date times are stored. The project timezone may be found in the project settings in the Mixpanel console.",
- "default": "US/Pacific",
- "examples": [ "US/Pacific", "UTC" ]
- },
- "select_properties_by_default": {
- "order": 4,
- "title": "Select Properties By Default",
- "type": "boolean",
- "description": "Setting this config parameter to TRUE ensures that new properties on events and engage records are captured. Otherwise new properties will be ignored.",
- "default": true
- },
- "start_date": {
- "order": 5,
- "title": "Start Date",
- "type": "string",
- "description": "The date in the format YYYY-MM-DD. Any data before this date will not be replicated. If this option is not set, the connector will replicate data from up to one year ago by default.",
- "examples": [ "2021-11-16" ],
- "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}Z)?$",
- "format": "date-time"
- },
- "end_date": {
- "order": 6,
- "title": "End Date",
- "type": "string",
- "description": "The date in the format YYYY-MM-DD. Any data after this date will not be replicated. Left empty to always sync to most recent date",
- "examples": [ "2021-11-16" ],
- "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}Z)?$",
- "format": "date-time"
- },
- "region": {
- "order": 7,
- "title": "Region",
- "description": "The region of mixpanel domain instance either US or EU.",
- "type": "string",
- "enum": [ "US", "EU" ],
- "default": "US"
- },
- "date_window_size": {
- "order": 8,
- "title": "Date slicing window",
- "description": "Defines window size in days, that used to slice through data. You can reduce it, if amount of data in each window is too big for your environment.",
- "type": "integer",
- "minimum": 1,
- "default": 30
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "mixpanel.com", "eu.mixpanel.com" ]
- }
- }, {
- "sourceDefinitionId": "80a54ea2-9959-4040-aac1-eee42423ec9b",
- "name": "Monday",
- "dockerRepository": "airbyte/source-monday",
- "dockerImageTag": "0.2.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/monday",
- "icon": "monday.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/monday",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Monday Spec",
- "type": "object",
- "required": [ ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "auth_type", "client_id", "client_secret", "access_token" ],
- "properties": {
- "subdomain": {
- "type": "string",
- "title": "Subdomain/Slug",
- "description": "Slug/subdomain of the account, or the first part of the URL that comes before .monday.com",
- "default": "",
- "order": 0
- },
- "auth_type": {
- "type": "string",
- "const": "oauth2.0",
- "order": 1
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your OAuth application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your OAuth application.",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "API Token",
- "required": [ "auth_type", "api_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "api_token",
- "order": 0
- },
- "api_token": {
- "type": "string",
- "title": "Personal API Token",
- "description": "API Token for making authenticated requests.",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "subdomain": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "subdomain" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.monday.com" ]
- }
- }, {
- "sourceDefinitionId": "b2e713cd-cc36-4c0a-b5bd-b47cb8a0561e",
- "name": "MongoDb",
- "dockerRepository": "airbyte/source-mongodb-v2",
- "dockerImageTag": "0.1.19",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mongodb-v2",
- "icon": "mongodb.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mongodb-v2",
- "changelogUrl": "https://docs.airbyte.com/integrations/sources/mongodb-v2",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "MongoDb Source Spec",
- "type": "object",
- "required": [ "database" ],
- "additionalProperties": true,
- "properties": {
- "instance_type": {
- "type": "object",
- "title": "MongoDb Instance Type",
- "description": "The MongoDb instance to connect to. For MongoDB Atlas and Replica Set TLS connection is used by default.",
- "order": 0,
- "oneOf": [ {
- "title": "Standalone MongoDb Instance",
- "required": [ "instance", "host", "port" ],
- "properties": {
- "instance": {
- "type": "string",
- "enum": [ "standalone" ],
- "default": "standalone"
- },
- "host": {
- "title": "Host",
- "type": "string",
- "description": "The host name of the Mongo database.",
- "order": 0
- },
- "port": {
- "title": "Port",
- "type": "integer",
- "description": "The port of the Mongo database.",
- "minimum": 0,
- "maximum": 65536,
- "default": 27017,
- "examples": [ "27017" ],
- "order": 1
- },
- "tls": {
- "title": "TLS Connection",
- "type": "boolean",
- "description": "Indicates whether TLS encryption protocol will be used to connect to MongoDB. It is recommended to use TLS connection if possible. For more information see documentation.",
- "default": false,
- "order": 2
- }
- }
- }, {
- "title": "Replica Set",
- "required": [ "instance", "server_addresses" ],
- "properties": {
- "instance": {
- "type": "string",
- "enum": [ "replica" ],
- "default": "replica"
- },
- "server_addresses": {
- "title": "Server Addresses",
- "type": "string",
- "description": "The members of a replica set. Please specify `host`:`port` of each member separated by comma.",
- "examples": [ "host1:27017,host2:27017,host3:27017" ],
- "order": 0
- },
- "replica_set": {
- "title": "Replica Set",
- "type": "string",
- "description": "A replica set in MongoDB is a group of mongod processes that maintain the same data set.",
- "order": 1
- }
- }
- }, {
- "title": "MongoDB Atlas",
- "additionalProperties": false,
- "required": [ "instance", "cluster_url" ],
- "properties": {
- "instance": {
- "type": "string",
- "enum": [ "atlas" ],
- "default": "atlas"
- },
- "cluster_url": {
- "title": "Cluster URL",
- "type": "string",
- "description": "The URL of a cluster to connect to.",
- "order": 0
- }
- }
- } ]
- },
- "database": {
- "title": "Database Name",
- "type": "string",
- "description": "The database you want to replicate.",
- "order": 1
- },
- "user": {
- "title": "User",
- "type": "string",
- "description": "The username which is used to access the database.",
- "order": 2
- },
- "password": {
- "title": "Password",
- "type": "string",
- "description": "The password associated with this username.",
- "airbyte_secret": true,
- "order": 3
- },
- "auth_source": {
- "title": "Authentication Source",
- "type": "string",
- "description": "The authentication source where the user information is stored.",
- "default": "admin",
- "examples": [ "admin" ],
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "722ba4bf-06ec-45a4-8dd5-72e4a5cf3903",
- "name": "My Hours",
- "dockerRepository": "airbyte/source-my-hours",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/my-hours",
- "icon": "my-hours.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/my-hours",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "My Hours Spec",
- "type": "object",
- "required": [ "email", "password", "start_date" ],
- "additionalProperties": false,
- "properties": {
- "email": {
- "title": "Email",
- "type": "string",
- "description": "Your My Hours username",
- "example": "john@doe.com"
- },
- "password": {
- "title": "Password",
- "type": "string",
- "description": "The password associated to the username",
- "airbyte_secret": true
- },
- "start_date": {
- "title": "Start Date",
- "description": "Start date for collecting time logs",
- "examples": [ "%Y-%m-%d", "2016-01-01" ],
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
- },
- "logs_batch_size": {
- "title": "Time logs batch size",
- "description": "Pagination size used for retrieving logs in days",
- "examples": [ 30 ],
- "type": "integer",
- "minimum": 1,
- "maximum": 365,
- "default": 30
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "435bb9a5-7887-4809-aa58-28c27df0d7ad",
- "name": "MySQL",
- "dockerRepository": "airbyte/source-mysql",
- "dockerImageTag": "2.0.18",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mysql",
- "icon": "mysql.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mysql",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "MySql Source Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username", "replication_method" ],
- "properties": {
- "host": {
- "description": "The host name of the database.",
- "title": "Host",
- "type": "string",
- "order": 0
- },
- "port": {
- "description": "The port to connect to.",
- "title": "Port",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 3306,
- "examples": [ "3306" ],
- "order": 1
- },
- "database": {
- "description": "The database name.",
- "title": "Database",
- "type": "string",
- "order": 2
- },
- "username": {
- "description": "The username which is used to access the database.",
- "title": "Username",
- "type": "string",
- "order": 3
- },
- "password": {
- "description": "The password associated with the username.",
- "title": "Password",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
- "title": "JDBC URL Parameters (Advanced)",
- "type": "string",
- "order": 5
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL.",
- "type": "boolean",
- "default": true,
- "order": 6
- },
- "ssl_mode": {
- "title": "SSL modes",
- "description": "SSL connection modes. Read more in the docs.",
- "type": "object",
- "order": 7,
- "oneOf": [ {
- "title": "preferred",
- "description": "Automatically attempt SSL connection. If the MySQL server does not support SSL, continue with a regular connection.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "preferred",
- "order": 0
- }
- }
- }, {
- "title": "required",
- "description": "Always connect with SSL. If the MySQL server doesn’t support SSL, the connection will not be established. Certificate Authority (CA) and Hostname are not verified.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "required",
- "order": 0
- }
- }
- }, {
- "title": "Verify CA",
- "description": "Always connect with SSL. Verifies CA, but allows connection even if Hostname does not match.",
- "required": [ "mode", "ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify_ca",
- "order": 0
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- },
- "client_certificate": {
- "type": "string",
- "title": "Client certificate",
- "description": "Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)",
- "airbyte_secret": true,
- "multiline": true,
- "order": 2,
- "always_show": true
- },
- "client_key": {
- "type": "string",
- "title": "Client key",
- "description": "Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)",
- "airbyte_secret": true,
- "multiline": true,
- "order": 3,
- "always_show": true
- },
- "client_key_password": {
- "type": "string",
- "title": "Client key password",
- "description": "Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- }, {
- "title": "Verify Identity",
- "description": "Always connect with SSL. Verify both CA and Hostname.",
- "required": [ "mode", "ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify_identity",
- "order": 0
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- },
- "client_certificate": {
- "type": "string",
- "title": "Client certificate",
- "description": "Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)",
- "airbyte_secret": true,
- "multiline": true,
- "order": 2,
- "always_show": true
- },
- "client_key": {
- "type": "string",
- "title": "Client key",
- "description": "Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)",
- "airbyte_secret": true,
- "multiline": true,
- "order": 3,
- "always_show": true
- },
- "client_key_password": {
- "type": "string",
- "title": "Client key password",
- "description": "Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- },
- "replication_method": {
- "type": "object",
- "title": "Replication Method",
- "description": "Replication method to use for extracting data from the database.",
- "order": 8,
- "oneOf": [ {
- "title": "Standard",
- "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "STANDARD",
- "order": 0
- }
- }
- }, {
- "title": "Logical Replication (CDC)",
- "description": "CDC uses the Binlog to detect inserts, updates, and deletes. This needs to be configured on the source database itself.",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "CDC",
- "order": 0
- },
- "initial_waiting_seconds": {
- "type": "integer",
- "title": "Initial Waiting Time in Seconds (Advanced)",
- "description": "The amount of time the connector will wait when it launches to determine if there is new data to sync or not. Defaults to 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about initial waiting time.",
- "default": 300,
- "min": 120,
- "max": 1200,
- "order": 1
- },
- "server_time_zone": {
- "type": "string",
- "title": "Configured server timezone for the MySQL source (Advanced)",
- "description": "Enter the configured MySQL server timezone. This should only be done if the configured timezone in your MySQL instance does not conform to IANNA standard.",
- "order": 2
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
- }
- }, {
- "sourceDefinitionId": "4a961f66-5e99-4430-8320-a73afe52f7a2",
- "name": "n8n",
- "dockerRepository": "airbyte/source-n8n",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/n8n",
- "icon": "n8n.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/n8n",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "N8n Spec",
- "type": "object",
- "required": [ "host", "api_key" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "type": "string",
- "description": "Hostname of the n8n instance"
- },
- "api_key": {
- "type": "string",
- "description": "Your API KEY. See here"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "1a8667d7-7978-43cd-ba4d-d32cbd478971",
- "name": "NASA",
- "dockerRepository": "airbyte/source-nasa",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/nasa",
- "icon": "nasa.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/nasa-apod",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "NASA spec",
- "type": "object",
- "required": [ "api_key" ],
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API access key used to retrieve data from the NASA APOD API.",
- "airbyte_secret": true
- },
- "concept_tags": {
- "type": "boolean",
- "default": false,
- "description": "Indicates whether concept tags should be returned with the rest of the response. The concept tags are not necessarily included in the explanation, but rather derived from common search tags that are associated with the description text. (Better than just pure text search.) Defaults to False."
- },
- "count": {
- "type": "integer",
- "minimum": 1,
- "maximum": 100,
- "description": "A positive integer, no greater than 100. If this is specified then `count` randomly chosen images will be returned in a JSON array. Cannot be used in conjunction with `date` or `start_date` and `end_date`."
- },
- "start_date": {
- "type": "string",
- "description": "Indicates the start of a date range. All images in the range from `start_date` to `end_date` will be returned in a JSON array. Must be after 1995-06-16, the first day an APOD picture was posted. There are no images for tomorrow available through this API.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "2022-10-20" ],
- "format": "date"
- },
- "end_date": {
- "type": "string",
- "description": "Indicates that end of a date range. If `start_date` is specified without an `end_date` then `end_date` defaults to the current date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "2022-10-20" ],
- "format": "date"
- },
- "thumbs": {
- "type": "boolean",
- "default": false,
- "description": "Indicates whether the API should return a thumbnail image URL for video files. If set to True, the API returns URL of video thumbnail. If an APOD is not a video, this parameter is ignored."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "api.nasa.gov" ]
- }
- }, {
- "sourceDefinitionId": "4f2f093d-ce44-4121-8118-9d13b7bfccd0",
- "name": "Netsuite",
- "dockerRepository": "airbyte/source-netsuite",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/netsuite",
- "icon": "netsuite.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Netsuite Spec",
- "type": "object",
- "required": [ "realm", "consumer_key", "consumer_secret", "token_key", "token_secret", "start_datetime" ],
- "additionalProperties": true,
- "properties": {
- "realm": {
- "type": "string",
- "title": "Realm (Account Id)",
- "description": "Netsuite realm e.g. 2344535, as for `production` or 2344535_SB1, as for the `sandbox`",
- "order": 0,
- "airbyte_secret": true
- },
- "consumer_key": {
- "type": "string",
- "title": "Consumer Key",
- "description": "Consumer key associated with your integration",
- "order": 1,
- "airbyte_secret": true
- },
- "consumer_secret": {
- "type": "string",
- "title": "Consumer Secret",
- "description": "Consumer secret associated with your integration",
- "order": 2,
- "airbyte_secret": true
- },
- "token_key": {
- "type": "string",
- "title": "Token Key (Token Id)",
- "description": "Access token key",
- "order": 3,
- "airbyte_secret": true
- },
- "token_secret": {
- "type": "string",
- "title": "Token Secret",
- "description": "Access token secret",
- "order": 4,
- "airbyte_secret": true
- },
- "object_types": {
- "type": "array",
- "title": "Object Types",
- "items": {
- "type": "string"
- },
- "description": "The API names of the Netsuite objects you want to sync. Setting this speeds up the connection setup process by limiting the number of schemas that need to be retrieved from Netsuite.",
- "order": 5,
- "examples": [ "customer", "salesorder", "etc" ],
- "default": [ ]
- },
- "start_datetime": {
- "type": "string",
- "title": "Start Date",
- "description": "Starting point for your data replication, in format of \"YYYY-MM-DDTHH:mm:ssZ\"",
- "order": 6,
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ]
- },
- "window_in_days": {
- "type": "integer",
- "title": "Window in Days",
- "description": "The amount of days used to query the data with date chunks. Set smaller value, if you have lots of data.",
- "order": 7,
- "default": 30
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "df38991e-f35b-4af2-996d-36817f614587",
- "name": "News API",
- "dockerRepository": "airbyte/source-news-api",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/news-api",
- "icon": "newsapi.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/news-api",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "News Api Spec",
- "type": "object",
- "required": [ "api_key", "country", "category", "sort_by" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true,
- "order": 0
- },
- "search_query": {
- "type": "string",
- "description": "Search query. See https://newsapi.org/docs/endpoints/everything for \ninformation.\n",
- "examples": [ "+bitcoin OR +crypto", "sunak AND (truss OR johnson)" ],
- "order": 1
- },
- "search_in": {
- "type": "array",
- "description": "Where to apply search query. Possible values are: title, description,\ncontent.\n",
- "items": {
- "type": "string",
- "enum": [ "title", "description", "content" ]
- },
- "order": 2
- },
- "sources": {
- "type": "array",
- "description": "Identifiers (maximum 20) for the news sources or blogs you want\nheadlines from. Use the `/sources` endpoint to locate these\nprogrammatically or look at the sources index:\nhttps://newsapi.com/sources. Will override both country and category.\n",
- "items": {
- "type": "string"
- },
- "order": 3
- },
- "domains": {
- "type": "array",
- "description": "A comma-seperated string of domains (eg bbc.co.uk, techcrunch.com,\nengadget.com) to restrict the search to.\n",
- "items": {
- "type": "string"
- },
- "order": 4
- },
- "exclude_domains": {
- "type": "array",
- "description": "A comma-seperated string of domains (eg bbc.co.uk, techcrunch.com,\nengadget.com) to remove from the results.\n",
- "items": {
- "type": "string"
- },
- "order": 5
- },
- "start_date": {
- "type": "string",
- "description": "A date and optional time for the oldest article allowed. This should\nbe in ISO 8601 format (e.g. 2021-01-01 or 2021-01-01T12:00:00).\n",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2})?$",
- "order": 6
- },
- "end_date": {
- "type": "string",
- "description": "A date and optional time for the newest article allowed. This should\nbe in ISO 8601 format (e.g. 2021-01-01 or 2021-01-01T12:00:00).\n",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2})?$",
- "order": 7
- },
- "language": {
- "type": "string",
- "description": "The 2-letter ISO-639-1 code of the language you want to get headlines\nfor. Possible options: ar de en es fr he it nl no pt ru se ud zh.\n",
- "enum": [ "ar", "de", "en", "es", "fr", "he", "it", "nl", false, "pt", "ru", "se", "ud", "zh" ],
- "order": 8
- },
- "country": {
- "type": "string",
- "description": "The 2-letter ISO 3166-1 code of the country you want to get headlines\nfor. You can't mix this with the sources parameter.\n",
- "enum": [ "ae", "ar", "at", "au", "be", "bg", "br", "ca", "ch", "cn", "co", "cu", "cz", "de", "eg", "fr", "gb", "gr", "hk", "hu", "id", "ie", "il", "in", "it", "jp", "kr", "lt", "lv", "ma", "mx", "my", "ng", "nl", false, "nz", "ph", "pl", "pt", "ro", "rs", "ru", "sa", "se", "sg", "si", "sk", "th", "tr", "tw", "ua", "us", "ve", "za" ],
- "default": "us",
- "order": 9
- },
- "category": {
- "type": "string",
- "description": "The category you want to get top headlines for.",
- "enum": [ "business", "entertainment", "general", "health", "science", "sports", "technology" ],
- "default": "business",
- "order": 10
- },
- "sort_by": {
- "type": "string",
- "description": "The order to sort the articles in. Possible options: relevancy,\npopularity, publishedAt.\n",
- "enum": [ "relevancy", "popularity", "publishedAt" ],
- "default": "publishedAt",
- "order": 11
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "60bd11d8-2632-4daa-a688-b47336d32093",
- "name": "Newsdata",
- "dockerRepository": "airbyte/source-newsdata",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/newsdata",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/newsdata",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Newsdata Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true,
- "order": 0
- },
- "OneOf": {
- "query": {
- "type": "string",
- "description": "Keywords or phrases to search for in the news title and content. Advanced Search options:\n - Search `Social`: query = \"social\"\n - Search `Social Pizza`: query = \"social pizza\"\n - Search `Social` but not with `pizza`: query = \"social -pizza\"\n - Search `Social` but not with `pizza` and `wildfire`: query = \"social -pizza -wildfire\"\n - Search `Social` and `pizza`: query = \"social AND pizza\"\n - Search `Social` and `pizza` and `pasta`: query = \"social AND pizza AND pasta\"\n - Search `Social` or `pizza`: query = \"social OR pizza\"\n - Search `Social` or `pizza` but not `pasta`: query = \"social OR pizza -pasta\"\n - Search `Social` or `pizza` or `pasta`: query = \"social OR pizza OR pasta\"\nNote: You can't use AND and OR in the same query.",
- "order": 1
- },
- "query_in_title": {
- "type": "string",
- "description": "Same as `query`, but restricting the search to only the news title. It cannot be used along with `query`.",
- "order": 1
- }
- },
- "domain": {
- "type": "array",
- "description": "Domains (maximum 5) to restrict the search to. Use the sources stream to find top sources id.",
- "maxitems": 5,
- "items": {
- "type": "string"
- },
- "order": 2
- },
- "country": {
- "type": "array",
- "description": "2-letter ISO 3166-1 countries (maximum 5) to restrict the search to.",
- "maxitems": 5,
- "order": 3,
- "items": {
- "type": "string",
- "enum": [ "ar", "au", "at", "bd", "by", "be", "br", "bg", "ca", "cl", "cn", "co", "cr", "cu", "cz", "dk", "do", "ec", "eg", "ee", "et", "fi", "fr", "de", "gr", "hk", "hu", "in", "id", "iq", "ie", "il", "it", "jp", "kz", "kw", "lv", "lb", "lt", "my", "mx", "ma", "mm", "nl", "nz", "ng", "kp", "no", "pk", "pe", "ph", "pl", "pt", "pr", "ro", "ru", "sa", "rs", "sg", "sk", "si", "za", "kr", "es", "se", "ch", "tw", "tz", "th", "tr", "ua", "ae", "gb", "us", "ve", "vi" ]
- }
- },
- "category": {
- "type": "array",
- "description": "Categories (maximum 5) to restrict the search to.",
- "maxitems": 5,
- "order": 4,
- "items": {
- "type": "string",
- "enum": [ "business", "entertainment", "environment", "food", "health", "politics", "science", "sports", "technology", "top", "world" ]
- }
- },
- "language": {
- "type": "array",
- "description": "Languages (maximum 5) to restrict the search to.",
- "maxitems": 5,
- "order": 5,
- "items": {
- "type": "string",
- "enum": [ "be", "am", "ar", "bn", "bs", "bg", "my", "ckb", "zh", "hr", "cs", "da", "nl", "en", "et", "fi", "fr", "de", "el", "he", "hi", "hu", "in", "it", "jp", "ko", "lv", "lt", "ms", "no", "pl", "pt", "ro", "ru", "sr", "sk", "sl", "es", "sw", "sv", "th", "tr", "uk", "ur", "vi" ]
- }
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6e00b415-b02e-4160-bf02-58176a0ae687",
- "name": "Notion",
- "dockerRepository": "airbyte/source-notion",
- "dockerImageTag": "1.0.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/notion",
- "icon": "notion.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/notion",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Notion Source Spec",
- "type": "object",
- "required": [ "start_date" ],
- "properties": {
- "start_date": {
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00.000Z. Any data before this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
- "examples": [ "2020-11-16T00:00:00.000Z" ],
- "type": "string",
- "format": "date-time"
- },
- "credentials": {
- "title": "Authenticate using",
- "description": "Pick an authentication method.",
- "type": "object",
- "order": 1,
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "auth_type", "client_id", "client_secret", "access_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "OAuth2.0"
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The ClientID of your Notion integration.",
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The ClientSecret of your Notion integration.",
- "airbyte_secret": true
- },
- "access_token": {
- "title": "Access Token",
- "type": "string",
- "description": "Access Token is a token you received by complete the OauthWebFlow of Notion.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Access Token",
- "required": [ "auth_type", "token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "token"
- },
- "token": {
- "title": "Access Token",
- "description": "Notion API access token, see the docs for more information on how to obtain this token.",
- "type": "string",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "access_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.notion.com" ]
- }
- }, {
- "sourceDefinitionId": "0fae6a9a-04eb-44d4-96e1-e02d3dbc1d83",
- "name": "New York Times",
- "dockerRepository": "airbyte/source-nytimes",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/nytimes",
- "icon": "nytimes.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/nytimes",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Nytimes Spec",
- "type": "object",
- "required": [ "api_key", "start_date", "period" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "API Key",
- "airbyte_secret": true,
- "order": 0
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "Start date to begin the article retrieval (format YYYY-MM)",
- "pattern": "^[0-9]{4}-[0-9]{2}$",
- "examples": [ "2022-08", "1851-01" ],
- "format": "date",
- "order": 1
- },
- "end_date": {
- "type": "string",
- "title": "End Date",
- "description": "End date to stop the article retrieval (format YYYY-MM)",
- "pattern": "^[0-9]{4}-[0-9]{2}$",
- "examples": [ "2022-08", "1851-01" ],
- "format": "date",
- "order": 2
- },
- "period": {
- "type": "integer",
- "title": "Period (used for Most Popular streams)",
- "description": "Period of time (in days)",
- "order": 3,
- "enum": [ 1, 7, 30 ]
- },
- "share_type": {
- "type": "string",
- "title": "Share Type (used for Most Popular Shared stream)",
- "description": "Share Type",
- "order": 4,
- "enum": [ "facebook" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "1d4fdb25-64fc-4569-92da-fcdca79a8372",
- "name": "Okta",
- "dockerRepository": "airbyte/source-okta",
- "dockerImageTag": "0.1.14",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/okta",
- "icon": "okta.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/okta",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Okta Spec",
- "type": "object",
- "required": [ ],
- "additionalProperties": true,
- "properties": {
- "domain": {
- "type": "string",
- "title": "Okta domain",
- "description": "The Okta domain. See the docs for instructions on how to find it.",
- "airbyte_secret": false
- },
- "start_date": {
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format YYYY-MM-DDTHH:MM:SSZ. Any data before this date will not be replicated.",
- "examples": [ "2022-07-22T00:00:00Z" ],
- "title": "Start Date"
- },
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "auth_type", "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "oauth2.0",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your OAuth application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your OAuth application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "Refresh Token to obtain new Access Token, when it's expired.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "API Token",
- "required": [ "auth_type", "api_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "api_token",
- "order": 0
- },
- "api_token": {
- "type": "string",
- "title": "Personal API Token",
- "description": "An Okta token. See the docs for instructions on how to generate it.",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "e7f0c5e2-4815-48c4-90cf-f47124209835",
- "name": "Omnisend",
- "dockerRepository": "airbyte/source-omnisend",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/omnisend",
- "icon": "omnisend.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/omnisend",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Omnisend Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "bb6afd81-87d5-47e3-97c4-e2c2901b1cf8",
- "name": "OneSignal",
- "dockerRepository": "airbyte/source-onesignal",
- "dockerImageTag": "1.0.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/onesignal",
- "icon": "onesignal.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/onesignal",
- "connectionSpecification": {
- "$schema": "https://json-schema.org/draft-07/schema#",
- "title": "OneSignal Source Spec",
- "type": "object",
- "required": [ "user_auth_key", "start_date", "outcome_names", "applications" ],
- "additionalProperties": true,
- "properties": {
- "user_auth_key": {
- "type": "string",
- "title": "User Auth Key",
- "description": "OneSignal User Auth Key, see the docs for more information on how to obtain this key.",
- "airbyte_secret": true,
- "order": 0
- },
- "applications": {
- "type": "array",
- "title": "Applications",
- "description": "Applications keys, see the docs for more information on how to obtain this data",
- "items": {
- "type": "object",
- "properties": {
- "app_name": {
- "type": "string",
- "title": "OneSignal App Name",
- "order": 0
- },
- "app_id": {
- "type": "string",
- "title": "OneSignal App ID",
- "order": 1,
- "airbyte_secret": true
- },
- "app_api_key": {
- "type": "string",
- "title": "REST API Key",
- "order": 2,
- "airbyte_secret": true
- }
- },
- "required": [ "app_id", "app_api_key" ]
- },
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for OneSignal API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "examples": [ "2020-11-16T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "format": "date-time",
- "order": 2
- },
- "outcome_names": {
- "type": "string",
- "title": "Outcome Names",
- "description": "Comma-separated list of names and the value (sum/count) for the returned outcome data. See the docs for more details",
- "examples": [ "os__session_duration.count,os__click.count,CustomOutcomeName.sum" ],
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "77d5ca6b-d345-4dce-ba1e-1935a75778b8",
- "name": "Open Exchange Rates",
- "dockerRepository": "airbyte/source-open-exchange-rates",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/open-exchange-rates",
- "icon": "airbyte.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/openexchangesrates",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Open Exchange Rates Spec",
- "type": "object",
- "required": [ "app_id", "start_date" ],
- "properties": {
- "app_id": {
- "type": "string",
- "description": "App ID provided by Open Exchange Rates",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "description": "Start getting data from that date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ]
- },
- "base": {
- "type": "string",
- "description": "Change base currency (3-letter code, default is USD - only modifiable in paid plans)",
- "examples": [ "EUR", "USD" ],
- "default": "USD"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d8540a80-6120-485d-b7d6-272bca477d9b",
- "name": "OpenWeather",
- "dockerRepository": "airbyte/source-openweather",
- "dockerImageTag": "0.1.6",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/openweather",
- "icon": "openweather.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Open Weather Spec",
- "type": "object",
- "required": [ "appid", "lat", "lon" ],
- "additionalProperties": true,
- "properties": {
- "lat": {
- "title": "Latitude",
- "type": "string",
- "pattern": "^[-]?\\d{1,2}(\\.\\d+)?$",
- "examples": [ "45.7603", "-21.249107858038816" ],
- "description": "Latitude for which you want to get weather condition from. (min -90, max 90)"
- },
- "lon": {
- "title": "Longitude",
- "type": "string",
- "pattern": "^[-]?\\d{1,3}(\\.\\d+)?$",
- "examples": [ "4.835659", "-70.39482074115321" ],
- "description": "Longitude for which you want to get weather condition from. (min -180, max 180)"
- },
- "appid": {
- "title": "App ID",
- "type": "string",
- "description": "Your OpenWeather API Key. See here. The key is case sensitive.",
- "airbyte_secret": true
- },
- "units": {
- "title": "Units",
- "type": "string",
- "description": "Units of measurement. standard, metric and imperial units are available. If you do not use the units parameter, standard units will be applied by default.",
- "enum": [ "standard", "metric", "imperial" ],
- "examples": [ "standard", "metric", "imperial" ]
- },
- "lang": {
- "title": "Language",
- "type": "string",
- "description": "You can use lang parameter to get the output in your language. The contents of the description field will be translated. See here for the list of supported languages.",
- "enum": [ "af", "al", "ar", "az", "bg", "ca", "cz", "da", "de", "el", "en", "eu", "fa", "fi", "fr", "gl", "he", "hi", "hr", "hu", "id", "it", "ja", "kr", "la", "lt", "mk", "no", "nl", "pl", "pt", "pt_br", "ro", "ru", "sv", "se", "sk", "sl", "sp", "es", "sr", "th", "tr", "ua", "uk", "vi", "zh_cn", "zh_tw", "zu" ],
- "examples": [ "en", "fr", "pt_br", "uk", "zh_cn", "zh_tw" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "06bdb480-2598-40b8-8b0f-fc2e2d2abdda",
- "name": "Opsgenie",
- "dockerRepository": "airbyte/source-opsgenie",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/opsgenie",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Opsgenie Spec",
- "type": "object",
- "required": [ "api_token", "endpoint" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "type": "string",
- "description": "API token used to access the Opsgenie platform",
- "airbyte_secret": true
- },
- "endpoint": {
- "type": "string",
- "description": "Service endpoint to use for API calls.",
- "examples": [ "api.opsgenie.com", "api.eu.opsgenie.com" ],
- "default": "api.opsgenie.com"
- },
- "start_date": {
- "type": "string",
- "description": "The date from which you'd like to replicate data from Opsgenie in the format of YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated. Note that it will be used only in the following incremental streams: issues.",
- "examples": [ "2022-07-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "b39a7370-74c3-45a6-ac3a-380d48520a83",
- "name": "Oracle DB",
- "dockerRepository": "airbyte/source-oracle",
- "dockerImageTag": "0.3.24",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/oracle",
- "icon": "oracle.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/oracle",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Oracle Source Spec",
- "type": "object",
- "required": [ "host", "port", "username" ],
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 1
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.\nOracle Corporations recommends the following port numbers:\n1521 - Default listening port for client connections to the listener. \n2484 - Recommended and officially registered listening port for client connections to the listener using TCP/IP with SSL",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 1521,
- "order": 2
- },
- "connection_data": {
- "title": "Connect by",
- "type": "object",
- "description": "Connect data that will be used for DB connection",
- "order": 3,
- "oneOf": [ {
- "title": "Service name",
- "description": "Use service name",
- "required": [ "service_name" ],
- "properties": {
- "connection_type": {
- "type": "string",
- "const": "service_name",
- "order": 0
- },
- "service_name": {
- "title": "Service name",
- "type": "string",
- "order": 1
- }
- }
- }, {
- "title": "System ID (SID)",
- "description": "Use SID (Oracle System Identifier)",
- "required": [ "sid" ],
- "properties": {
- "connection_type": {
- "type": "string",
- "const": "sid",
- "order": 0
- },
- "sid": {
- "title": "System ID (SID)",
- "type": "string",
- "order": 1
- }
- }
- } ]
- },
- "username": {
- "title": "User",
- "description": "The username which is used to access the database.",
- "type": "string",
- "order": 4
- },
- "password": {
- "title": "Password",
- "description": "The password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 5
- },
- "schemas": {
- "title": "Schemas",
- "description": "The list of schemas to sync from. Defaults to user. Case sensitive.",
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 1,
- "uniqueItems": true,
- "order": 6
- },
- "jdbc_url_params": {
- "title": "JDBC URL Params",
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "type": "string",
- "order": 7
- },
- "encryption": {
- "title": "Encryption",
- "type": "object",
- "description": "The encryption method with is used when communicating with the database.",
- "order": 8,
- "oneOf": [ {
- "title": "Unencrypted",
- "description": "Data transfer will not be encrypted.",
- "required": [ "encryption_method" ],
- "properties": {
- "encryption_method": {
- "type": "string",
- "const": "unencrypted"
- }
- }
- }, {
- "title": "Native Network Encryption (NNE)",
- "description": "The native network encryption gives you the ability to encrypt database connections, without the configuration overhead of TCP/IP and SSL/TLS and without the need to open and listen on different ports.",
- "required": [ "encryption_method" ],
- "properties": {
- "encryption_method": {
- "type": "string",
- "const": "client_nne"
- },
- "encryption_algorithm": {
- "type": "string",
- "description": "This parameter defines what encryption algorithm is used.",
- "title": "Encryption Algorithm",
- "default": "AES256",
- "enum": [ "AES256", "RC4_56", "3DES168" ]
- }
- }
- }, {
- "title": "TLS Encrypted (verify certificate)",
- "description": "Verify and use the certificate provided by the server.",
- "required": [ "encryption_method", "ssl_certificate" ],
- "properties": {
- "encryption_method": {
- "type": "string",
- "const": "encrypted_verify_certificate"
- },
- "ssl_certificate": {
- "title": "SSL PEM File",
- "description": "Privacy Enhanced Mail (PEM) files are concatenated certificate containers frequently used in certificate installations.",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
- }
- }, {
- "sourceDefinitionId": "7f0455fb-4518-4ec0-b7a3-d808bf8081cc",
- "name": "Orb",
- "dockerRepository": "airbyte/source-orb",
- "dockerImageTag": "1.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/orb",
- "icon": "orb.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.withorb.com/",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Orb Spec",
- "type": "object",
- "required": [ "api_key", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "Orb API Key",
- "description": "Orb API Key, issued from the Orb admin console.",
- "airbyte_secret": true,
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2022-03-01T00:00:00Z. Any data with created_at before this data will not be synced. For Subscription Usage, this becomes the `timeframe_start` API parameter.",
- "examples": [ "2022-03-01T00:00:00Z" ],
- "order": 2
- },
- "lookback_window_days": {
- "type": "integer",
- "title": "Lookback Window (in days)",
- "default": 0,
- "minimum": 0,
- "description": "When set to N, the connector will always refresh resources created within the past N days. By default, updated objects that are not newly created are not incrementally synced.",
- "order": 3
- },
- "string_event_properties_keys": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "title": "Event properties keys (string values)",
- "description": "Property key names to extract from all events, in order to enrich ledger entries corresponding to an event deduction.",
- "order": 4
- },
- "numeric_event_properties_keys": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "title": "Event properties keys (numeric values)",
- "description": "Property key names to extract from all events, in order to enrich ledger entries corresponding to an event deduction.",
- "order": 5
- },
- "subscription_usage_grouping_key": {
- "type": "string",
- "title": "Subscription usage grouping key (string value)",
- "description": "Property key name to group subscription usage by."
- },
- "plan_id": {
- "type": "string",
- "title": "Orb Plan ID for Subscription Usage (string value)",
- "description": "Orb Plan ID to filter subscriptions that should have usage fetched."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "95bcc041-1d1a-4c2e-8802-0ca5b1bfa36a",
- "name": "Orbit",
- "dockerRepository": "airbyte/source-orbit",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/orbit",
- "icon": "orbit.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/orbit",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Orbit Source Spec",
- "type": "object",
- "required": [ "api_token", "workspace" ],
- "additionalProperties": false,
- "properties": {
- "api_token": {
- "type": "string",
- "airbyte_secret": true,
- "title": "API Token",
- "description": "Authorizes you to work with Orbit workspaces associated with the token.",
- "order": 0
- },
- "workspace": {
- "type": "string",
- "title": "Workspace",
- "description": "The unique name of the workspace that your API token is associated with.",
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "Date in the format 2022-06-26. Only load members whose last activities are after this date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 2
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "2bf6c581-bec5-4e32-891d-de33036bd631",
- "name": "Oura",
- "dockerRepository": "airbyte/source-oura",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/oura",
- "icon": "oura.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Oura Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true,
- "order": 0
- },
- "start_datetime": {
- "type": "string",
- "description": "Start datetime to sync from. Default is current UTC datetime minus 1\nday.\n",
- "pattern": "^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$",
- "order": 1
- },
- "end_datetime": {
- "type": "string",
- "description": "End datetime to sync until. Default is current UTC datetime.",
- "pattern": "^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$",
- "order": 2
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "3490c201-5d95-4783-b600-eaf07a4c7787",
- "name": "Outreach",
- "dockerRepository": "airbyte/source-outreach",
- "dockerImageTag": "0.2.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/outreach",
- "icon": "outreach.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/outreach",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Outreach Spec",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token", "redirect_uri", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your Outreach developer application."
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your Outreach developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "The token for obtaining the new access token.",
- "airbyte_secret": true
- },
- "redirect_uri": {
- "type": "string",
- "title": "Redirect URI",
- "description": "A Redirect URI is the location where the authorization server sends the user once the app has been successfully authorized and granted an authorization code or access token."
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for Outreach API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "examples": [ "2020-11-16T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "ad15c7ba-72a7-440b-af15-b9a963dc1a8a",
- "name": "Pardot",
- "dockerRepository": "airbyte/source-pardot",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pardot",
- "icon": "salesforcepardot.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pardot",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Pardot Spec",
- "type": "object",
- "required": [ "pardot_business_unit_id", "client_id", "client_secret", "refresh_token" ],
- "additionalProperties": false,
- "properties": {
- "pardot_business_unit_id": {
- "description": "Pardot Business ID, can be found at Setup > Pardot > Pardot Account Setup",
- "type": "string"
- },
- "client_id": {
- "description": "The Consumer Key that can be found when viewing your app in Salesforce",
- "type": "string",
- "airbyte_secret": true
- },
- "client_secret": {
- "description": "The Consumer Secret that can be found when viewing your app in Salesforce",
- "type": "string",
- "airbyte_secret": true
- },
- "refresh_token": {
- "description": "Salesforce Refresh Token used for Airbyte to access your Salesforce account. If you don't know what this is, follow this guide to retrieve it.",
- "type": "string",
- "airbyte_secret": true
- },
- "start_date": {
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. Leave blank to skip this filter",
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "default": null,
- "examples": [ "2021-07-25T00:00:00Z" ]
- },
- "is_sandbox": {
- "description": "Whether or not the the app is in a Salesforce sandbox. If you do not know what this, assume it is false.",
- "type": "boolean",
- "default": false
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "2817b3f0-04e4-4c7a-9f32-7a5e8a83db95",
- "name": "PagerDuty",
- "dockerRepository": "farosai/airbyte-pagerduty-source",
- "dockerImageTag": "0.1.23",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pagerduty",
- "icon": "pagerduty.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.faros.ai",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "PagerDuty Spec",
- "type": "object",
- "required": [ "token" ],
- "additionalProperties": false,
- "properties": {
- "token": {
- "type": "string",
- "title": "PagerDuty API key",
- "airbyte_secret": true
- },
- "pageSize": {
- "type": "number",
- "minimum": 1,
- "maximum": 25,
- "default": 25,
- "title": "Page Size",
- "description": "page size to use when querying PagerDuty API"
- },
- "cutoffDays": {
- "type": "number",
- "minimum": 1,
- "default": 90,
- "title": "Cutoff Days",
- "description": "fetch pipelines updated in the last number of days"
- },
- "incidentLogEntriesOverview": {
- "type": "boolean",
- "title": "Incident Log Entries Overview",
- "description": "If true, will return a subset of log entries that show only the most important changes to the incident.",
- "default": true
- },
- "defaultSeverity": {
- "type": "string",
- "title": "Severity category",
- "description": "A default severity category if not present",
- "examples": [ "Sev1", "Sev2", "Sev3", "Sev4", "Sev5", "Custom" ],
- "pattern": "^(Sev[0-5])?(Custom)?$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d30fb809-6456-484d-8e2c-ee12e0f6888d",
- "name": "PartnerStack",
- "dockerRepository": "airbyte/source-partnerstack",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/partnerstack",
- "icon": "partnerstack.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/partnerstack",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Partnerstack Spec",
- "type": "object",
- "required": [ "public_key", "private_key" ],
- "additionalProperties": true,
- "properties": {
- "public_key": {
- "type": "string",
- "title": "Partnerstack Public key",
- "description": "The Live Public Key for a Partnerstack account.",
- "airbyte_secret": true
- },
- "private_key": {
- "type": "string",
- "title": "Partnerstack Private key",
- "description": "The Live Private Key for a Partnerstack account.",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2017-01-25T00:00:00Z" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d913b0f2-cc51-4e55-a44c-8ba1697b9239",
- "name": "Paypal Transaction",
- "dockerRepository": "airbyte/source-paypal-transaction",
- "dockerImageTag": "0.1.12",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/paypal-transaction",
- "icon": "paypal.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/paypal-transactions",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Paypal Transaction Search",
- "type": "object",
- "required": [ "start_date", "is_sandbox" ],
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your Paypal developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client secret",
- "description": "The Client Secret of your Paypal developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh token",
- "description": "The key to refresh the expired access token.",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "Start Date for data extraction in ISO format. Date must be in range from 3 years till 12 hrs before present time.",
- "examples": [ "2021-06-11T23:59:59-00:00" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}[+-][0-9]{2}:[0-9]{2}$"
- },
- "is_sandbox": {
- "title": "Sandbox",
- "description": "Determines whether to use the sandbox or production environment.",
- "type": "boolean",
- "default": false
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api-m.paypal.com", "api-m.sandbox.paypal.com" ]
- }
- }, {
- "sourceDefinitionId": "193bdcb8-1dd9-48d1-aade-91cadfd74f9b",
- "name": "Paystack",
- "dockerRepository": "airbyte/source-paystack",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/paystack",
- "icon": "paystack.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/paystack",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Paystack Source Spec",
- "type": "object",
- "required": [ "secret_key", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "secret_key": {
- "type": "string",
- "title": "Secret Key",
- "pattern": "^(s|r)k_(live|test)_[a-zA-Z0-9]+$",
- "description": "The Paystack API key (usually starts with 'sk_live_'; find yours here).",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "format": "date-time"
- },
- "lookback_window_days": {
- "type": "integer",
- "title": "Lookback Window (in days)",
- "default": 0,
- "minimum": 0,
- "description": "When set, the connector will always reload data from the past N days, where N is the value set here. This is useful if your data is updated after creation."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.paystack.co" ]
- }
- }, {
- "sourceDefinitionId": "b1ccb590-e84f-46c0-83a0-2048ccfffdae",
- "name": "Pendo",
- "dockerRepository": "airbyte/source-pendo",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pendo",
- "icon": "pendo.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pendo",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [ "api_key" ],
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "airbyte_secret": true
- }
- },
- "additionalProperties": true
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "3052c77e-8b91-47e2-97a0-a29a22794b4b",
- "name": "PersistIq",
- "dockerRepository": "airbyte/source-persistiq",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/persistiq",
- "icon": "persistiq.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/persistiq",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Persistiq Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": false,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "PersistIq API Key. See the docs for more information on where to find that key.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "69d9eb65-8026-47dc-baf1-e4bf67901fd6",
- "name": "Pexels API",
- "dockerRepository": "airbyte/source-pexels-api",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pexels-api",
- "icon": "pexels.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pexels-api",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Pexel API Spec",
- "type": "object",
- "required": [ "api_key", "query" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key from the pexels website",
- "type": "string",
- "description": "API key is required to access pexels api, For getting your's goto https://www.pexels.com/api/documentation and create account for free.",
- "airbyte_secret": true
- },
- "query": {
- "title": "Specific query for the search",
- "type": "string",
- "description": "Optional, the search query, Example Ocean, Tigers, Pears, etc.",
- "examples": [ "people", "oceans" ]
- },
- "orientation": {
- "title": "Specific orientation for the search",
- "type": "string",
- "description": "Optional, Desired photo orientation. The current supported orientations are landscape, portrait or square",
- "examples": [ "square", "landscape" ]
- },
- "size": {
- "title": "Specific size for the search",
- "type": "string",
- "description": "Optional, Minimum photo size. The current supported sizes are large(24MP), medium(12MP) or small(4MP).",
- "examples": [ "large", "small" ]
- },
- "color": {
- "title": "Specific color for the search",
- "type": "string",
- "description": "Optional, Desired photo color. Supported colors red, orange, yellow, green, turquoise, blue, violet, pink, brown, black, gray, white or any hexidecimal color code.",
- "examples": [ "red", "orange" ]
- },
- "locale": {
- "title": "Specific locale for the search",
- "type": "string",
- "description": "Optional, The locale of the search you are performing. The current supported locales are 'en-US' 'pt-BR' 'es-ES' 'ca-ES' 'de-DE' 'it-IT' 'fr-FR' 'sv-SE' 'id-ID' 'pl-PL' 'ja-JP' 'zh-TW' 'zh-CN' 'ko-KR' 'th-TH' 'nl-NL' 'hu-HU' 'vi-VN' 'cs-CZ' 'da-DK' 'fi-FI' 'uk-UA' 'el-GR' 'ro-RO' 'nb-NO' 'sk-SK' 'tr-TR' 'ru-RU'.",
- "examples": [ "en-US", "pt-BR" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "5cb7e5fe-38c2-11ec-8d3d-0242ac130003",
- "name": "Pinterest",
- "dockerRepository": "airbyte/source-pinterest",
- "dockerImageTag": "0.2.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pinterest",
- "icon": "pinterest.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pinterest",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Pinterest Spec",
- "type": "object",
- "required": [ "start_date" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "A date in the format YYYY-MM-DD. If you have not set a date, it would be defaulted to latest allowed date by api (914 days from today).",
- "examples": [ "2022-07-28" ]
- },
- "status": {
- "title": "Status",
- "description": "Entity statuses based off of campaigns, ad_groups, and ads. If you do not have a status set, it will be ignored completely.",
- "type": [ "array", "null" ],
- "items": {
- "type": "string",
- "enum": [ "ACTIVE", "PAUSED", "ARCHIVED" ]
- },
- "uniqueItems": true
- },
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "auth_method", "refresh_token" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "oauth2.0",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your OAuth application",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your OAuth application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "Refresh Token to obtain new Access Token, when it's expired.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Access Token",
- "required": [ "auth_method", "access_token" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "access_token",
- "order": 0
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The Access Token to make authenticated requests.",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_method" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.pinterest.com" ]
- }
- }, {
- "sourceDefinitionId": "d8286229-c680-4063-8c59-23b9b391c700",
- "name": "Pipedrive",
- "dockerRepository": "airbyte/source-pipedrive",
- "dockerImageTag": "0.1.17",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pipedrive",
- "icon": "pipedrive.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pipedrive",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Pipedrive Spec",
- "type": "object",
- "required": [ "replication_start_date" ],
- "additionalProperties": true,
- "properties": {
- "authorization": {
- "type": "object",
- "title": "API Key Authentication",
- "required": [ "auth_type", "api_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Token",
- "order": 0
- },
- "api_token": {
- "title": "API Token",
- "type": "string",
- "description": "The Pipedrive API Token.",
- "airbyte_secret": true
- }
- }
- },
- "replication_start_date": {
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. When specified and not None, then stream will behave as incremental",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "type": "string",
- "format": "date-time"
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.pipedrive.com" ]
- }
- }, {
- "sourceDefinitionId": "d60f5393-f99e-4310-8d05-b1876820f40e",
- "name": "Pivotal Tracker",
- "dockerRepository": "airbyte/source-pivotal-tracker",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pivotal-tracker",
- "icon": "pivotal-tracker.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Pivotal Tracker Spec",
- "type": "object",
- "required": [ "api_token" ],
- "additionalProperties": false,
- "properties": {
- "api_token": {
- "type": "string",
- "description": "Pivotal Tracker API token",
- "examples": [ "5c054d0de3440452190fdc5d5a04d871" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "ed799e2b-2158-4c66-8da4-b40fe63bc72a",
- "name": "Plaid",
- "dockerRepository": "airbyte/source-plaid",
- "dockerImageTag": "0.3.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/plaid",
- "icon": "plaid.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://plaid.com/docs/api/",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [ "access_token", "api_key", "client_id", "plaid_env" ],
- "additionalProperties": true,
- "properties": {
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The end-user's Link access token."
- },
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "The Plaid API key to use to hit the API.",
- "airbyte_secret": true
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Plaid client id"
- },
- "plaid_env": {
- "title": "Plaid Environment",
- "type": "string",
- "enum": [ "sandbox", "development", "production" ],
- "description": "The Plaid environment"
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "The date from which you'd like to replicate data for Plaid in the format YYYY-MM-DD. All data generated after this date will be replicated.",
- "examples": [ "2021-03-01" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "603ba446-3d75-41d7-92f3-aba901f8b897",
- "name": "Plausible",
- "dockerRepository": "airbyte/source-plausible",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/plausible",
- "icon": "plausible.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/plausible",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Plausible Spec",
- "type": "object",
- "required": [ "api_key", "site_id" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "Plausible API key",
- "description": "Plausible API Key. See the docs for information on how to generate this key.",
- "airbyte_secret": true
- },
- "site_id": {
- "type": "string",
- "title": "Target website domain",
- "description": "The domain of the site you want to retrieve data for. Enter the name of your site as configured on Plausible, i.e., excluding \"https://\" and \"www\". Can be retrieved from the 'domain' field in your Plausible site settings.",
- "pattern": "^[A-Za-z0-9-.]+\\.[A-Z-a-z0-9-.]+",
- "examples": [ "airbyte.com", "docs.airbyte.com" ]
- },
- "start_date": {
- "type": "string",
- "title": "Data start date",
- "description": "Start date for data to retrieve, in ISO-8601 format.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "b0dd65f1-081f-4731-9c51-38e9e6aa0ebf",
- "name": "Pocket",
- "dockerRepository": "airbyte/source-pocket",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pocket",
- "icon": "pocket.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pocket",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Pocket Spec",
- "type": "object",
- "required": [ "consumer_key", "access_token" ],
- "additionalProperties": true,
- "properties": {
- "consumer_key": {
- "type": "string",
- "title": "Consumer Key",
- "description": "Your application's Consumer Key.",
- "airbyte_secret": true,
- "order": 0
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The user's Pocket access token.",
- "airbyte_secret": true,
- "order": 1
- },
- "state": {
- "type": "string",
- "title": "State",
- "description": "Select the state of the items to retrieve.",
- "order": 2,
- "enum": [ "unread", "archive", "all" ]
- },
- "favorite": {
- "type": "boolean",
- "title": "Is Favorite?",
- "description": "Retrieve only favorited items.",
- "default": false,
- "order": 3
- },
- "tag": {
- "type": "string",
- "title": "Tag Name",
- "description": "Return only items tagged with this tag name. Use _untagged_ for retrieving only untagged items.",
- "order": 4
- },
- "content_type": {
- "type": "string",
- "title": "Content Type",
- "description": "Select the content type of the items to retrieve.",
- "order": 5,
- "enum": [ "article", "video", "image" ]
- },
- "sort": {
- "type": "string",
- "title": "Sort By",
- "description": "Sort retrieved items by the given criteria.",
- "order": 6,
- "enum": [ "newest", "oldest", "title", "site" ]
- },
- "detail_type": {
- "type": "string",
- "title": "Detail Type",
- "description": "Select the granularity of the information about each item.",
- "order": 7,
- "enum": [ "simple", "complete" ]
- },
- "search": {
- "type": "string",
- "title": "Search Query",
- "description": "Only return items whose title or url contain the `search` string.",
- "order": 8
- },
- "domain": {
- "type": "string",
- "title": "Domain",
- "description": "Only return items from a particular `domain`.",
- "order": 9
- },
- "since": {
- "type": "string",
- "title": "Since",
- "description": "Only return items modified since the given timestamp.",
- "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}",
- "examples": [ "2022-10-20 14:14:14" ],
- "order": 10
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6371b14b-bc68-4236-bfbd-468e8df8e968",
- "name": "PokeAPI",
- "dockerRepository": "airbyte/source-pokeapi",
- "dockerImageTag": "0.1.5",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pokeapi",
- "icon": "pokeapi.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pokeapi",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Pokeapi Spec",
- "type": "object",
- "required": [ "pokemon_name" ],
- "additionalProperties": false,
- "properties": {
- "pokemon_name": {
- "type": "string",
- "title": "Pokemon Name",
- "description": "Pokemon requested from the API.",
- "pattern": "^[a-z0-9_\\-]+$",
- "examples": [ "ditto", "luxray", "snorlax" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "5807d72f-0abc-49f9-8fa5-ae820007032b",
- "name": "Polygon Stock API",
- "dockerRepository": "airbyte/source-polygon-stock-api",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/polygon-stock-api",
- "icon": "polygon.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/airtable",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Weather API Spec",
- "type": "object",
- "required": [ "apiKey", "stocksTicker", "multiplier", "timespan", "start_date", "end_date" ],
- "additionalProperties": true,
- "properties": {
- "apiKey": {
- "title": "API Key",
- "type": "string",
- "description": "Your API ACCESS Key",
- "airbyte_secret": true
- },
- "stocksTicker": {
- "title": "Stock Ticker",
- "type": "string",
- "description": "The exchange symbol that this item is traded under.",
- "examples": [ "IBM", "MSFT" ]
- },
- "multiplier": {
- "title": "Multiplier",
- "type": "integer",
- "description": "The size of the timespan multiplier.",
- "examples": [ 1, 2 ]
- },
- "timespan": {
- "title": "Timespan",
- "type": "string",
- "description": "The size of the time window.",
- "examples": [ "day" ]
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "description": "The beginning date for the aggregate window.",
- "examples": [ "2020-10-14" ],
- "format": "date"
- },
- "end_date": {
- "title": "End Date",
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "description": "The target date for the aggregate window.",
- "examples": [ "2020-10-14" ],
- "format": "date"
- },
- "adjusted": {
- "title": "Adjusted",
- "type": "string",
- "description": "Determines whether or not the results are adjusted for splits. By default, results are adjusted and set to true. Set this to false to get results that are NOT adjusted for splits.",
- "examples": [ "true", "false" ]
- },
- "sort": {
- "title": "Sort",
- "type": "string",
- "description": "Sort the results by timestamp. asc will return results in ascending order (oldest at the top), desc will return results in descending order (newest at the top).",
- "examples": [ "asc", "desc" ]
- },
- "limit": {
- "title": "Limit",
- "type": "integer",
- "description": "The target date for the aggregate window.",
- "examples": [ 100, 120 ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "api.polygon.io" ]
- }
- }, {
- "sourceDefinitionId": "af6d50ee-dddf-4126-a8ee-7faee990774f",
- "name": "PostHog",
- "dockerRepository": "airbyte/source-posthog",
- "dockerImageTag": "0.1.9",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/posthog",
- "icon": "posthog.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/posthog",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "PostHog Spec",
- "type": "object",
- "required": [ "api_key", "start_date" ],
- "properties": {
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "The date from which you'd like to replicate the data. Any data before this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2021-01-01T00:00:00Z" ],
- "format": "date-time"
- },
- "api_key": {
- "type": "string",
- "airbyte_secret": true,
- "title": "API Key",
- "description": "API Key. See the docs for information on how to generate this key."
- },
- "base_url": {
- "type": "string",
- "default": "https://app.posthog.com",
- "title": "Base URL",
- "description": "Base PostHog url. Defaults to PostHog Cloud (https://app.posthog.com).",
- "examples": [ "https://posthog.example.com" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "${base_url}", "app.posthog.com" ]
- }
- }, {
- "sourceDefinitionId": "decd338e-5647-4c0b-adf4-da0e75f5a750",
- "name": "Postgres",
- "dockerRepository": "airbyte/source-postgres",
- "dockerImageTag": "2.0.24",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/postgres",
- "icon": "postgresql.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/postgres",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Postgres Source Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username" ],
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0,
- "group": "db"
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 5432,
- "examples": [ "5432" ],
- "order": 1,
- "group": "db"
- },
- "database": {
- "title": "Database Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 2,
- "group": "db"
- },
- "schemas": {
- "title": "Schemas",
- "description": "The list of schemas (case sensitive) to sync from. Defaults to public.",
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 0,
- "uniqueItems": true,
- "default": [ "public" ],
- "order": 3,
- "group": "db"
- },
- "username": {
- "title": "Username",
- "description": "Username to access the database.",
- "type": "string",
- "order": 4,
- "group": "auth"
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 5,
- "group": "auth",
- "always_show": true
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (Eg. key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
- "title": "JDBC URL Parameters (Advanced)",
- "type": "string",
- "order": 6,
- "group": "advanced",
- "pattern_descriptor": "key1=value1&key2=value2"
- },
- "ssl_mode": {
- "title": "SSL Modes",
- "description": "SSL connection modes. \n Read more in the docs.",
- "type": "object",
- "order": 8,
- "group": "security",
- "oneOf": [ {
- "title": "disable",
- "additionalProperties": true,
- "description": "Disables encryption of communication between Airbyte and source database.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "disable",
- "order": 0
- }
- }
- }, {
- "title": "allow",
- "additionalProperties": true,
- "description": "Enables encryption only when required by the source database.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "allow",
- "order": 0
- }
- }
- }, {
- "title": "prefer",
- "additionalProperties": true,
- "description": "Allows unencrypted connection only if the source database does not support encryption.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "prefer",
- "order": 0
- }
- }
- }, {
- "title": "require",
- "additionalProperties": true,
- "description": "Always require encryption. If the source database server does not support encryption, connection will fail.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "require",
- "order": 0
- }
- }
- }, {
- "title": "verify-ca",
- "additionalProperties": true,
- "description": "Always require encryption and verifies that the source database server has a valid SSL certificate.",
- "required": [ "mode", "ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-ca",
- "order": 0
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA Certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- },
- "client_certificate": {
- "type": "string",
- "title": "Client Certificate",
- "description": "Client certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 2,
- "always_show": true
- },
- "client_key": {
- "type": "string",
- "title": "Client Key",
- "description": "Client key",
- "airbyte_secret": true,
- "multiline": true,
- "order": 3,
- "always_show": true
- },
- "client_key_password": {
- "type": "string",
- "title": "Client key password",
- "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- }, {
- "title": "verify-full",
- "additionalProperties": true,
- "description": "This is the most secure mode. Always require encryption and verifies the identity of the source database server.",
- "required": [ "mode", "ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-full",
- "order": 0
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA Certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- },
- "client_certificate": {
- "type": "string",
- "title": "Client Certificate",
- "description": "Client certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 2,
- "always_show": true
- },
- "client_key": {
- "type": "string",
- "title": "Client Key",
- "description": "Client key",
- "airbyte_secret": true,
- "multiline": true,
- "order": 3,
- "always_show": true
- },
- "client_key_password": {
- "type": "string",
- "title": "Client key password",
- "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- },
- "replication_method": {
- "type": "object",
- "title": "Replication Method",
- "description": "Replication method for extracting data from the database.",
- "order": 9,
- "group": "advanced",
- "oneOf": [ {
- "title": "Standard",
- "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "Standard",
- "order": 0
- }
- }
- }, {
- "title": "Logical Replication (CDC)",
- "description": "Logical replication uses the Postgres write-ahead log (WAL) to detect inserts, updates, and deletes. This needs to be configured on the source database itself. Only available on Postgres 10 and above. Read the docs.",
- "required": [ "method", "replication_slot", "publication" ],
- "additionalProperties": true,
- "properties": {
- "method": {
- "type": "string",
- "const": "CDC",
- "order": 1
- },
- "plugin": {
- "type": "string",
- "title": "Plugin",
- "description": "A logical decoding plugin installed on the PostgreSQL server.",
- "enum": [ "pgoutput" ],
- "default": "pgoutput",
- "order": 2
- },
- "replication_slot": {
- "type": "string",
- "title": "Replication Slot",
- "description": "A plugin logical replication slot. Read about replication slots.",
- "order": 3
- },
- "publication": {
- "type": "string",
- "title": "Publication",
- "description": "A Postgres publication used for consuming changes. Read about publications and replication identities.",
- "order": 4
- },
- "initial_waiting_seconds": {
- "type": "integer",
- "title": "Initial Waiting Time in Seconds (Advanced)",
- "description": "The amount of time the connector will wait when it launches to determine if there is new data to sync or not. Defaults to 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about initial waiting time.",
- "default": 300,
- "order": 5,
- "min": 120,
- "max": 1200
- },
- "lsn_commit_behaviour": {
- "type": "string",
- "title": "LSN commit behaviour",
- "description": "Determines when Airbtye should flush the LSN of processed WAL logs in the source database. `After loading Data in the destination` is default. If `While reading Data` is selected, in case of a downstream failure (while loading data into the destination), next sync would result in a full sync.",
- "enum": [ "While reading Data", "After loading Data in the destination" ],
- "default": "After loading Data in the destination",
- "order": 6
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ],
- "group": "security"
- }
- },
- "groups": [ {
- "id": "db"
- }, {
- "id": "auth"
- }, {
- "id": "security",
- "title": "Security"
- }, {
- "id": "advanced",
- "title": "Advanced"
- } ]
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
- },
- "maxSecondsBetweenMessages": 7200
- }, {
- "sourceDefinitionId": "cde75ca1-1e28-4a0f-85bb-90c546de9f1f",
- "name": "Postmark App",
- "dockerRepository": "airbyte/source-postmarkapp",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/postmarkapp",
- "icon": "postmark.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Postmarkapp Spec",
- "type": "object",
- "required": [ "X-Postmark-Server-Token", "X-Postmark-Account-Token" ],
- "additionalProperties": true,
- "properties": {
- "X-Postmark-Server-Token": {
- "title": "X-Postmark-Server-Token",
- "type": "string",
- "description": "API Key for server",
- "airbyte_secret": true
- },
- "X-Postmark-Account-Token": {
- "title": "X-Postmark-Account-Token",
- "type": "string",
- "description": "API Key for account",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d60a46d4-709f-4092-a6b7-2457f7d455f5",
- "name": "PrestaShop",
- "dockerRepository": "airbyte/source-prestashop",
- "dockerImageTag": "0.3.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/prestashop",
- "icon": "prestashop.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/prestashop",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "PrestaShop Spec",
- "type": "object",
- "required": [ "access_key", "url", "start_date" ],
- "properties": {
- "access_key": {
- "type": "string",
- "title": "Access Key",
- "description": "Your PrestaShop access key. See the docs for info on how to obtain this.",
- "order": 0,
- "airbyte_secret": true
- },
- "url": {
- "type": "string",
- "title": "Shop URL",
- "description": "Shop URL without trailing slash.",
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start date",
- "description": "The Start date in the format YYYY-MM-DD.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "2022-01-01" ],
- "format": "date",
- "order": 2
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "${domain}" ]
- }
- }, {
- "sourceDefinitionId": "f636c3c6-4077-45ac-b109-19fc62a283c1",
- "name": "Primetric",
- "dockerRepository": "airbyte/source-primetric",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/primetric",
- "icon": "primetric.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Primetric Spec",
- "type": "object",
- "required": [ "client_id", "client_secret" ],
- "properties": {
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your Primetric developer application. The Client ID is visible here.",
- "pattern": "^[a-zA-Z0-9]+$",
- "airbyte_secret": true,
- "examples": [ "1234aBcD5678EFGh9045Neq79sdDlA15082VMYcj" ],
- "order": 0
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your Primetric developer application. You can manage your client's credentials here.",
- "pattern": "^[a-zA-Z0-9]+$",
- "airbyte_secret": true,
- "order": 1
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "a4617b39-3c14-44cd-a2eb-6e720f269235",
- "name": "Public APIs",
- "dockerRepository": "airbyte/source-public-apis",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/public-apis",
- "icon": "publicapi.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/public-apis",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Public Apis Spec",
- "type": "object",
- "required": [ ],
- "properties": { }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "dbe9b7ae-7b46-4e44-a507-02a343cf7230",
- "name": "Punk API",
- "dockerRepository": "airbyte/source-punk-api",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/punk-api",
- "icon": "punkapi.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/punk-api",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Punk Api Spec",
- "type": "object",
- "required": [ "brewed_before", "brewed_after" ],
- "additionalProperties": true,
- "properties": {
- "id": {
- "title": "Beers with specific ID",
- "type": "string",
- "description": "To extract specific data with Unique ID",
- "examples": [ 1, 22 ]
- },
- "brewed_before": {
- "title": "Brewed before data to get incremental reads",
- "type": "string",
- "description": "To extract specific data with Unique ID",
- "pattern": "^[0-9]{2}-[0-9]{4}$",
- "examples": [ "MM-YYYY" ]
- },
- "brewed_after": {
- "title": "Brewed after data to get incremental reads",
- "type": "string",
- "description": "To extract specific data with Unique ID",
- "pattern": "^[0-9]{2}-[0-9]{4}$",
- "examples": [ "MM-YYYY" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "88ecd3a8-5f5b-11ed-9b6a-0242ac120002",
- "name": "PyPI",
- "dockerRepository": "airbyte/source-pypi",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pypi",
- "icon": "pypi.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/pypi",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Pypi Spec",
- "type": "object",
- "required": [ "project_name" ],
- "additionalProperties": true,
- "properties": {
- "project_name": {
- "type": "string",
- "title": "PyPI Package",
- "description": "Name of the project/package. Can only be in lowercase with hyphen. This is the name used using pip command for installing the package.",
- "examples": [ "sampleproject" ]
- },
- "version": {
- "title": "Package Version",
- "type": "string",
- "description": "Version of the project/package. Use it to find a particular release instead of all releases.",
- "examples": [ "1.2.0" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "f7c0b910-5f66-11ed-9b6a-0242ac120002",
- "name": "Qonto",
- "dockerRepository": "airbyte/source-qonto",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/public-qonto",
- "icon": "qonto.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Qonto Spec",
- "type": "object",
- "required": [ "endpoint", "organization_slug", "secret_key", "iban" ],
- "properties": {
- "endpoint": {
- "title": "Endpoint",
- "type": "string",
- "description": "Please choose the right endpoint to use in this connection",
- "enum": [ "Production", "Test Mocked API Server" ]
- },
- "organization_slug": {
- "title": "Organization slug",
- "type": "string",
- "description": "Organization slug used in Qonto"
- },
- "secret_key": {
- "title": "Secret Key",
- "type": "string",
- "description": "Secret key of the Qonto account",
- "airbyte_secret": true
- },
- "iban": {
- "title": "IBAN",
- "type": "string",
- "description": "International Bank Account Number linked used with your Qonto Account",
- "pattern": "^[A-Z0-9]*$"
- },
- "start_date": {
- "title": "Start date",
- "type": "string",
- "description": "Start getting data from that date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "b08e4776-d1de-4e80-ab5c-1e51dad934a2",
- "name": "Qualaroo",
- "dockerRepository": "airbyte/source-qualaroo",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/qualaroo",
- "icon": "qualaroo.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/qualaroo",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Qualaroo Spec",
- "type": "object",
- "required": [ "token", "key", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "token": {
- "type": "string",
- "title": "API token",
- "description": "A Qualaroo token. See the docs for instructions on how to generate it.",
- "airbyte_secret": true
- },
- "key": {
- "type": "string",
- "title": "API key",
- "description": "A Qualaroo token. See the docs for instructions on how to generate it.",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2021-03-01T00:00:00.000Z" ]
- },
- "survey_ids": {
- "type": "array",
- "items": {
- "type": "string",
- "pattern": "^[0-9]{1,8}$"
- },
- "title": "Qualaroo survey IDs",
- "description": "IDs of the surveys from which you'd like to replicate data. If left empty, data from all surveys to which you have access will be replicated."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ ],
- "oauthFlowInitParameters": [ ],
- "oauthFlowOutputParameters": [ [ "token" ], [ "key" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "cf9c4355-b171-4477-8f2d-6c5cc5fc8b7e",
- "name": "QuickBooks",
- "dockerRepository": "airbyte/source-quickbooks",
- "dockerImageTag": "2.0.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/quickbooks",
- "icon": "quickbooks.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/quickbooks",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source QuickBooks Spec",
- "type": "object",
- "required": [ "credentials", "start_date", "sandbox" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "order": 0,
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date", "realm_id" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "oauth2.0"
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "Identifies which app is making the request. Obtain this value from the Keys tab on the app profile via My Apps on the developer site. There are two versions of this key: development and production."
- },
- "client_secret": {
- "description": " Obtain this value from the Keys tab on the app profile via My Apps on the developer site. There are two versions of this key: development and production.",
- "title": "Client Secret",
- "type": "string",
- "airbyte_secret": true
- },
- "refresh_token": {
- "description": "A token used when refreshing the access token.",
- "title": "Refresh Token",
- "type": "string",
- "airbyte_secret": true
- },
- "access_token": {
- "description": "Access token fot making authenticated requests.",
- "title": "Access Token",
- "type": "string",
- "airbyte_secret": true
- },
- "token_expiry_date": {
- "type": "string",
- "title": "Token Expiry Date",
- "description": "The date-time when the access token should be refreshed.",
- "format": "date-time"
- },
- "realm_id": {
- "description": "Labeled Company ID. The Make API Calls panel is populated with the realm id and the current access token.",
- "title": "Realm ID",
- "type": "string",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "start_date": {
- "order": 1,
- "description": "The default value to use if no bookmark exists for an endpoint (rfc3339 date string). E.g, 2021-03-20T00:00:00+00:00. Any data before this date will not be replicated.",
- "title": "Start Date",
- "type": "string",
- "format": "date-time",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2021-03-20T00:00:00+00:00" ]
- },
- "sandbox": {
- "order": 2,
- "description": "Determines whether to use the sandbox or production environment.",
- "title": "Sandbox",
- "type": "boolean",
- "default": false
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "sandbox-quickbooks.api.intuit.com", "quickbooks.api.intuit.com", "oauth.platform.intuit.com" ]
- }
- }, {
- "sourceDefinitionId": "9b6cc0c0-da81-4103-bbfd-5279e18a849a",
- "name": "Railz",
- "dockerRepository": "airbyte/source-railz",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/railz",
- "icon": "railz.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Railz Spec",
- "type": "object",
- "required": [ "client_id", "secret_key", "start_date" ],
- "properties": {
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "Client ID (client_id)",
- "order": 0
- },
- "secret_key": {
- "type": "string",
- "title": "Secret key",
- "description": "Secret key (secret_key)",
- "order": 1,
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Start date",
- "description": "Start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 2
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "45d2e135-2ede-49e1-939f-3e3ec357a65e",
- "name": "Recharge",
- "dockerRepository": "airbyte/source-recharge",
- "dockerImageTag": "0.2.9",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/recharge",
- "icon": "recharge.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/recharge",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Recharge Spec",
- "type": "object",
- "required": [ "start_date", "access_token" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for Recharge API, in the format YYYY-MM-DDT00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2021-05-14T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "format": "date-time"
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The value of the Access Token generated. See the docs for more information.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.rechargeapps.com" ]
- }
- }, {
- "sourceDefinitionId": "25d7535d-91e0-466a-aa7f-af81578be277",
- "name": "Recreation",
- "dockerRepository": "airbyte/source-recreation",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/recreation",
- "icon": "recreation.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/recreation",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Recreation Spec",
- "type": "object",
- "required": [ "apikey" ],
- "additionalProperties": true,
- "properties": {
- "apikey": {
- "title": "API Key",
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true
- },
- "query_campsites": {
- "title": "Query Campsite",
- "type": "string"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "3b046ac7-d8d3-4eb3-b122-f96b2a16d8a8",
- "name": "Recruitee",
- "dockerRepository": "airbyte/source-recruitee",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/recruitee",
- "icon": "recruitee.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/recruitee",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Recruitee Spec",
- "type": "object",
- "required": [ "api_key", "company_id" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Recruitee API Key. See here.",
- "airbyte_secret": true
- },
- "company_id": {
- "title": "Company ID",
- "type": "integer",
- "description": "Recruitee Company ID. You can also find this ID on the Recruitee API tokens page."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "cd42861b-01fc-4658-a8ab-5d11d0510f01",
- "name": "Recurly",
- "dockerRepository": "airbyte/source-recurly",
- "dockerImageTag": "0.4.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/recurly",
- "icon": "recurly.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/recurly",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Recurly Source Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": false,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "airbyte_secret": true,
- "description": "Recurly API Key. See the docs for more information on how to generate this key.",
- "order": 1
- },
- "begin_time": {
- "type": "string",
- "description": "ISO8601 timestamp from which the replication from Recurly API will start from.",
- "examples": [ "2021-12-01T00:00:00" ],
- "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
- "order": 2
- },
- "end_time": {
- "type": "string",
- "description": "ISO8601 timestamp to which the replication from Recurly API will stop. Records after that date won't be imported.",
- "examples": [ "2021-12-01T00:00:00" ],
- "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "e87ffa8e-a3b5-f69c-9076-6011339de1f6",
- "name": "Redshift",
- "dockerRepository": "airbyte/source-redshift",
- "dockerImageTag": "0.3.16",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/redshift",
- "icon": "redshift.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redshift",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Redshift Source Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username", "password" ],
- "properties": {
- "host": {
- "title": "Host",
- "description": "Host Endpoint of the Redshift Cluster (must include the cluster-id, region and end with .redshift.amazonaws.com).",
- "type": "string",
- "order": 1
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 5439,
- "examples": [ "5439" ],
- "order": 2
- },
- "database": {
- "title": "Database",
- "description": "Name of the database.",
- "type": "string",
- "examples": [ "master" ],
- "order": 3
- },
- "schemas": {
- "title": "Schemas",
- "description": "The list of schemas to sync from. Specify one or more explicitly or keep empty to process all schemas. Schema names are case sensitive.",
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 0,
- "uniqueItems": true,
- "examples": [ "public" ],
- "order": 4
- },
- "username": {
- "title": "Username",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 5
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 6
- },
- "jdbc_url_params": {
- "title": "JDBC URL Params",
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "type": "string",
- "order": 7
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "8cc6537e-f8a6-423c-b960-e927af76116e",
- "name": "Reply.io",
- "dockerRepository": "airbyte/source-reply-io",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/reply-io",
- "icon": "reply-io.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/reply-io",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Reply Io Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Token",
- "description": "The API Token for Reply",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "db04ecd1-42e7-4115-9cec-95812905c626",
- "name": "Retently",
- "dockerRepository": "airbyte/source-retently",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/retently",
- "icon": "retently.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Retently Api Spec",
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authentication Mechanism",
- "description": "Choose how to authenticate to Retently",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "Authenticate via Retently (OAuth)",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "additionalProperties": true,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Retently developer application."
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Retently developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "Retently Refresh Token which can be used to fetch new Bearer Tokens when the current one expires.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Authenticate with API Token",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Token",
- "order": 0
- },
- "api_key": {
- "title": "API Token",
- "description": "Retently API Token. See the docs for more information on how to obtain this key.",
- "type": "string",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "Client",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "fb141f29-be2a-450b-a4f2-2cd203a00f84",
- "name": "RD Station Marketing",
- "dockerRepository": "airbyte/source-rd-station-marketing",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/rd-station-marketing",
- "icon": "rdstation.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/rd-station-marketing",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "RD Station Marketing Spec",
- "type": "object",
- "required": [ "start_date" ],
- "additionalProperties": true,
- "properties": {
- "authorization": {
- "type": "object",
- "title": "Authentication Type",
- "description": "Choose one of the possible authorization method",
- "oneOf": [ {
- "title": "Sign in via RD Station (OAuth)",
- "type": "object",
- "required": [ "auth_type" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your RD Station developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your RD Station developer application",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "The token for obtaining the new access token.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "start_date": {
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. When specified and not None, then stream will behave as incremental",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "type": "string"
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "authorization", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d78e5de0-aa44-4744-aa4f-74c818ccfe19",
- "name": "RKI Covid",
- "dockerRepository": "airbyte/source-rki-covid",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/rki-covid",
- "icon": "rki.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/rki-covid",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "RKI Covid Spec",
- "type": "object",
- "required": [ "start_date" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "UTC date in the format 2017-01-25. Any data before this date will not be replicated.",
- "order": 1
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "0efee448-6948-49e2-b786-17db50647908",
- "name": "RSS",
- "dockerRepository": "airbyte/source-rss",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/rss",
- "icon": "rss.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/rss",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "RSS Spec",
- "type": "object",
- "required": [ "url" ],
- "properties": {
- "url": {
- "type": "string",
- "description": "RSS Feed URL"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false
- }, {
- "sourceDefinitionId": "921d9608-3915-450b-8078-0af18801ea1b",
- "name": "Rocket.chat",
- "dockerRepository": "airbyte/source-rocket-chat",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/rocket-chat",
- "icon": "rocket-chat.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/rocket-chat",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Rocket Chat Spec",
- "type": "object",
- "required": [ "token", "user_id", "endpoint" ],
- "additionalProperties": true,
- "properties": {
- "endpoint": {
- "title": "Endpoint",
- "type": "string",
- "description": "Your rocket.chat instance URL.",
- "examples": [ "https://airbyte-connector-poc.rocket.chat", "https://hey.yoursite.com" ]
- },
- "token": {
- "title": "Token",
- "type": "string",
- "description": "Your API Token. See here. The token is case sensitive.",
- "airbyte_secret": true
- },
- "user_id": {
- "title": "User ID.",
- "type": "string",
- "description": "Your User Id."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "69589781-7828-43c5-9f63-8925b1c1ccc2",
- "name": "S3",
- "dockerRepository": "airbyte/source-s3",
- "dockerImageTag": "2.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/s3",
- "icon": "s3.svg",
- "sourceType": "file",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/s3",
- "changelogUrl": "https://docs.airbyte.com/integrations/sources/s3",
- "connectionSpecification": {
- "title": "S3 Source Spec",
- "type": "object",
- "properties": {
- "dataset": {
- "title": "Output Stream Name",
- "description": "The name of the stream you would like this source to output. Can contain letters, numbers, or underscores.",
- "pattern": "^([A-Za-z0-9-_]+)$",
- "order": 0,
- "type": "string"
- },
- "path_pattern": {
- "title": "Pattern of files to replicate",
- "description": "A regular expression which tells the connector which files to replicate. All files which match this pattern will be replicated. Use | to separate multiple patterns. See this page to understand pattern syntax (GLOBSTAR and SPLIT flags are enabled). Use pattern ** to pick up all files.",
- "examples": [ "**", "myFolder/myTableFiles/*.csv|myFolder/myOtherTableFiles/*.csv" ],
- "order": 10,
- "type": "string"
- },
- "format": {
- "title": "File Format",
- "description": "The format of the files you'd like to replicate",
- "default": "csv",
- "order": 20,
- "type": "object",
- "oneOf": [ {
- "title": "CSV",
- "description": "This connector utilises PyArrow (Apache Arrow) for CSV parsing.",
- "type": "object",
- "properties": {
- "filetype": {
- "title": "Filetype",
- "const": "csv",
- "type": "string"
- },
- "delimiter": {
- "title": "Delimiter",
- "description": "The character delimiting individual cells in the CSV data. This may only be a 1-character string. For tab-delimited data enter '\\t'.",
- "default": ",",
- "minLength": 1,
- "order": 0,
- "type": "string"
- },
- "infer_datatypes": {
- "title": "Infer Datatypes",
- "description": "Configures whether a schema for the source should be inferred from the current data or not. If set to false and a custom schema is set, then the manually enforced schema is used. If a schema is not manually set, and this is set to false, then all fields will be read as strings",
- "default": true,
- "order": 1,
- "type": "boolean"
- },
- "quote_char": {
- "title": "Quote Character",
- "description": "The character used for quoting CSV values. To disallow quoting, make this field blank.",
- "default": "\"",
- "order": 2,
- "type": "string"
- },
- "escape_char": {
- "title": "Escape Character",
- "description": "The character used for escaping special characters. To disallow escaping, leave this field blank.",
- "order": 3,
- "type": "string"
- },
- "encoding": {
- "title": "Encoding",
- "description": "The character encoding of the CSV data. Leave blank to default to UTF8. See list of python encodings for allowable options.",
- "default": "utf8",
- "order": 4,
- "type": "string"
- },
- "double_quote": {
- "title": "Double Quote",
- "description": "Whether two quotes in a quoted CSV value denote a single quote in the data.",
- "default": true,
- "order": 5,
- "type": "boolean"
- },
- "newlines_in_values": {
- "title": "Allow newlines in values",
- "description": "Whether newline characters are allowed in CSV values. Turning this on may affect performance. Leave blank to default to False.",
- "default": false,
- "order": 6,
- "type": "boolean"
- },
- "additional_reader_options": {
- "title": "Additional Reader Options",
- "description": "Optionally add a valid JSON string here to provide additional options to the csv reader. Mappings must correspond to options detailed here. 'column_types' is used internally to handle schema so overriding that would likely cause problems.",
- "examples": [ "{\"timestamp_parsers\": [\"%m/%d/%Y %H:%M\", \"%Y/%m/%d %H:%M\"], \"strings_can_be_null\": true, \"null_values\": [\"NA\", \"NULL\"]}" ],
- "order": 7,
- "type": "string"
- },
- "advanced_options": {
- "title": "Advanced Options",
- "description": "Optionally add a valid JSON string here to provide additional Pyarrow ReadOptions. Specify 'column_names' here if your CSV doesn't have header, or if you want to use custom column names. 'block_size' and 'encoding' are already used above, specify them again here will override the values above.",
- "examples": [ "{\"column_names\": [\"column1\", \"column2\"]}" ],
- "order": 8,
- "type": "string"
- },
- "block_size": {
- "title": "Block Size",
- "description": "The chunk size in bytes to process at a time in memory from each file. If your data is particularly wide and failing during schema detection, increasing this should solve it. Beware of raising this too high as you could hit OOM errors.",
- "default": 10000,
- "minimum": 1,
- "maximum": 2147483647,
- "order": 9,
- "type": "integer"
- }
- }
- }, {
- "title": "Parquet",
- "description": "This connector utilises PyArrow (Apache Arrow) for Parquet parsing.",
- "type": "object",
- "properties": {
- "filetype": {
- "title": "Filetype",
- "const": "parquet",
- "type": "string"
- },
- "columns": {
- "title": "Selected Columns",
- "description": "If you only want to sync a subset of the columns from the file(s), add the columns you want here as a comma-delimited list. Leave it empty to sync all columns.",
- "order": 0,
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "batch_size": {
- "title": "Record batch size",
- "description": "Maximum number of records per batch read from the input files. Batches may be smaller if there aren’t enough rows in the file. This option can help avoid out-of-memory errors if your data is particularly wide.",
- "default": 65536,
- "order": 1,
- "type": "integer"
- },
- "buffer_size": {
- "title": "Buffer Size",
- "description": "Perform read buffering when deserializing individual column chunks. By default every group column will be loaded fully to memory. This option can help avoid out-of-memory errors if your data is particularly wide.",
- "default": 2,
- "type": "integer"
- }
- }
- }, {
- "title": "Avro",
- "description": "This connector utilises fastavro for Avro parsing.",
- "type": "object",
- "properties": {
- "filetype": {
- "title": "Filetype",
- "const": "avro",
- "type": "string"
- }
- }
- }, {
- "title": "Jsonl",
- "description": "This connector uses PyArrow for JSON Lines (jsonl) file parsing.",
- "type": "object",
- "properties": {
- "filetype": {
- "title": "Filetype",
- "const": "jsonl",
- "type": "string"
- },
- "newlines_in_values": {
- "title": "Allow newlines in values",
- "description": "Whether newline characters are allowed in JSON values. Turning this on may affect performance. Leave blank to default to False.",
- "default": false,
- "order": 0,
- "type": "boolean"
- },
- "unexpected_field_behavior": {
- "title": "Unexpected field behavior",
- "description": "How JSON fields outside of explicit_schema (if given) are treated. Check PyArrow documentation for details",
- "default": "infer",
- "examples": [ "ignore", "infer", "error" ],
- "order": 1,
- "enum": [ "ignore", "infer", "error" ]
- },
- "block_size": {
- "title": "Block Size",
- "description": "The chunk size in bytes to process at a time in memory from each file. If your data is particularly wide and failing during schema detection, increasing this should solve it. Beware of raising this too high as you could hit OOM errors.",
- "default": 0,
- "order": 2,
- "type": "integer"
- }
- }
- } ]
- },
- "schema": {
- "title": "Manually enforced data schema",
- "description": "Optionally provide a schema to enforce, as a valid JSON string. Ensure this is a mapping of { \"column\" : \"type\" }, where types are valid JSON Schema datatypes. Leave as {} to auto-infer the schema.",
- "default": "{}",
- "examples": [ "{\"column_1\": \"number\", \"column_2\": \"string\", \"column_3\": \"array\", \"column_4\": \"object\", \"column_5\": \"boolean\"}" ],
- "order": 30,
- "type": "string"
- },
- "provider": {
- "title": "S3: Amazon Web Services",
- "type": "object",
- "properties": {
- "bucket": {
- "title": "Bucket",
- "description": "Name of the S3 bucket where the file(s) exist.",
- "order": 0,
- "type": "string"
- },
- "aws_access_key_id": {
- "title": "AWS Access Key ID",
- "description": "In order to access private Buckets stored on AWS S3, this connector requires credentials with the proper permissions. If accessing publicly available data, this field is not necessary.",
- "airbyte_secret": true,
- "order": 1,
- "type": "string"
- },
- "aws_secret_access_key": {
- "title": "AWS Secret Access Key",
- "description": "In order to access private Buckets stored on AWS S3, this connector requires credentials with the proper permissions. If accessing publicly available data, this field is not necessary.",
- "airbyte_secret": true,
- "order": 2,
- "type": "string"
- },
- "path_prefix": {
- "title": "Path Prefix",
- "description": "By providing a path-like prefix (e.g. myFolder/thisTable/) under which all the relevant files sit, we can optimize finding these in S3. This is optional but recommended if your bucket contains many folders/files which you don't need to replicate.",
- "default": "",
- "order": 3,
- "type": "string"
- },
- "endpoint": {
- "title": "Endpoint",
- "description": "Endpoint to an S3 compatible service. Leave empty to use AWS.",
- "default": "",
- "order": 4,
- "type": "string"
- },
- "start_date": {
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any file modified before this date will not be replicated.",
- "examples": [ "2021-01-01T00:00:00Z" ],
- "format": "date-time",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "order": 5,
- "type": "string"
- }
- },
- "required": [ "bucket" ],
- "order": 11,
- "description": "Use this to load files from S3 or S3-compatible services"
- }
- },
- "required": [ "dataset", "path_pattern", "provider" ]
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*.s3.amazonaws.com" ]
- }
- }, {
- "sourceDefinitionId": "41991d12-d4b5-439e-afd0-260a31d4c53f",
- "name": "SalesLoft",
- "dockerRepository": "airbyte/source-salesloft",
- "dockerImageTag": "1.0.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/salesloft",
- "icon": "salesloft.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/salesloft",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Salesloft Spec",
- "type": "object",
- "required": [ "credentials", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "order": 0,
- "type": "object",
- "title": "Credentials",
- "oneOf": [ {
- "title": "Authenticate via OAuth",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date", "auth_type" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "oauth2.0"
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your Salesloft developer application."
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your Salesloft developer application.",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true
- },
- "token_expiry_date": {
- "type": "string",
- "description": "The date-time when the access token should be refreshed.",
- "format": "date-time"
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "The token for obtaining a new access token.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Authenticate via API Key",
- "type": "object",
- "required": [ "api_key", "auth_type" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "api_key"
- },
- "api_key": {
- "type": "string",
- "airbyte_secret": true,
- "title": "API Key",
- "description": "API Key for making authenticated requests. More instruction on how to find this value in our docs"
- }
- }
- } ]
- },
- "start_date": {
- "order": 1,
- "type": "string",
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for Salesloft API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "examples": [ "2020-11-16T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.salesloft.com" ]
- }
- }, {
- "sourceDefinitionId": "b117307c-14b6-41aa-9422-947e34922962",
- "name": "Salesforce",
- "dockerRepository": "airbyte/source-salesforce",
- "dockerImageTag": "2.0.9",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/salesforce",
- "icon": "salesforce.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/salesforce",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Salesforce Source Spec",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "additionalProperties": true,
- "properties": {
- "is_sandbox": {
- "title": "Sandbox",
- "description": "Toggle if you're using a Salesforce Sandbox",
- "type": "boolean",
- "default": false,
- "order": 1
- },
- "auth_type": {
- "type": "string",
- "const": "Client"
- },
- "client_id": {
- "title": "Client ID",
- "description": "Enter your Salesforce developer application's Client ID",
- "type": "string",
- "order": 2
- },
- "client_secret": {
- "title": "Client Secret",
- "description": "Enter your Salesforce developer application's Client secret",
- "type": "string",
- "airbyte_secret": true,
- "order": 3
- },
- "refresh_token": {
- "title": "Refresh Token",
- "description": "Enter your application's Salesforce Refresh Token used for Airbyte to access your Salesforce account.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "start_date": {
- "title": "Start Date",
- "description": "Enter the date in the YYYY-MM-DD format. Airbyte will replicate the data added on and after this date. If this field is blank, Airbyte will replicate the data for last two years.",
- "type": "string",
- "pattern": "^([0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}Z)?)$",
- "examples": [ "2021-07-25", "2021-07-25T00:00:00Z" ],
- "format": "date-time",
- "order": 5
- },
- "streams_criteria": {
- "type": "array",
- "order": 6,
- "items": {
- "type": "object",
- "required": [ "criteria", "value" ],
- "properties": {
- "criteria": {
- "type": "string",
- "title": "Search criteria",
- "enum": [ "starts with", "ends with", "contains", "exacts", "starts not with", "ends not with", "not contains", "not exacts" ],
- "order": 1,
- "default": "contains"
- },
- "value": {
- "type": "string",
- "title": "Search value",
- "order": 2
- }
- }
- },
- "title": "Filter Salesforce Objects",
- "description": "Filter streams relevant to you"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "auth_type" ],
- "predicate_value": "Client",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "is_sandbox": {
- "type": "boolean",
- "path_in_connector_config": [ "is_sandbox" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*.salesforce.com" ]
- }
- }, {
- "sourceDefinitionId": "ec5f3102-fb31-4916-99ae-864faf8e7e25",
- "name": "SAP Fieldglass",
- "dockerRepository": "airbyte/source-sap-fieldglass",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sap-fieldglass",
- "icon": "sapfieldglass.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sap-fieldglass",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Sap Fieldglass Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "8d7ef552-2c0f-11ec-8d3d-0242ac130003",
- "name": "SearchMetrics",
- "dockerRepository": "airbyte/source-search-metrics",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/search-metrics",
- "icon": "searchmetrics.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/seacrh-metrics",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Search Metrics Spec",
- "type": "object",
- "required": [ "api_key", "client_secret", "country_code", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "",
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "",
- "airbyte_secret": true
- },
- "country_code": {
- "title": "Country Code",
- "type": "string",
- "default": "",
- "description": "The region of the S3 staging bucket to use if utilising a copy strategy.",
- "enum": [ "", "AR", "AU", "AT", "BE", "BR", "CA", "CN", "CO", "DK", "FI", "FR", "DE", "HK", "IN", "IE", "IT", "JP", "MX", "NL", "NO", "PL", "RU", "SG", "ZA", "ES", "SE", "CH", "TR", "US", "GB" ],
- "order": 2
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "Data generated in SearchMetrics after this date will be replicated. This date must be specified in the format YYYY-MM-DDT00:00:00Z.",
- "examples": [ "20200925" ],
- "pattern": "^[0-9]{4}[0-9]{2}[0-9]{2}$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "da9fc6b9-8059-4be0-b204-f56e22e4d52d",
- "name": "Secoda",
- "dockerRepository": "airbyte/source-secoda",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/secoda",
- "icon": "secoda.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/secoda",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Secoda Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "Api Key",
- "type": "string",
- "description": "Your API Access Key. See here. The key is case sensitive.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "fbb5fbe2-16ad-4cf4-af7d-ff9d9c316c87",
- "name": "Sendgrid",
- "dockerRepository": "airbyte/source-sendgrid",
- "dockerImageTag": "0.3.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sendgrid",
- "icon": "sendgrid.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sendgrid",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Sendgrid Spec",
- "type": "object",
- "required": [ "apikey" ],
- "additionalProperties": true,
- "properties": {
- "apikey": {
- "title": "Sendgrid API key",
- "airbyte_secret": true,
- "type": "string",
- "description": "API Key, use admin to generate this key.",
- "order": 0
- },
- "start_time": {
- "title": "Start time",
- "type": "string",
- "format": "date-time",
- "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(.\\d+)?Z$",
- "description": "Start time in ISO8601 format. Any data before this time point will not be replicated.",
- "examples": [ "2020-01-01T01:01:01Z", "2020-01-01T01:01:01.000001Z" ],
- "order": 1
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.sendgrid.com" ]
- }
- }, {
- "sourceDefinitionId": "39de93cb-1511-473e-a673-5cbedb9436af",
- "name": "Senseforce",
- "dockerRepository": "airbyte/source-senseforce",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/senseforce",
- "icon": "senseforce.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/senseforce",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Senseforce Source Spec",
- "type": "object",
- "required": [ "access_token", "backend_url", "dataset_id", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "access_token": {
- "type": "string",
- "title": "API Access Token",
- "description": "Your API access token. See here. The toke is case sensitive.",
- "airbyte_secret": true
- },
- "backend_url": {
- "type": "string",
- "title": "Senseforce backend URL",
- "examples": [ "https://galaxyapi.senseforce.io" ],
- "description": "Your Senseforce API backend URL. This is the URL shown during the Login screen. See here for more details. (Note: Most Senseforce backend APIs have the term 'galaxy' in their ULR)"
- },
- "dataset_id": {
- "type": "string",
- "title": "Dataset ID",
- "examples": [ "8f418098-ca28-4df5-9498-0df9fe78eda7" ],
- "description": "The ID of the dataset you want to synchronize. The ID can be found in the URL when opening the dataset. See here for more details. (Note: As the Senseforce API only allows to synchronize a specific dataset, each dataset you want to synchronize needs to be implemented as a separate airbyte source)."
- },
- "start_date": {
- "type": "string",
- "title": "The first day (in UTC) when to read data from.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "description": "UTC date and time in the format 2017-01-25. Only data with \"Timestamp\" after this date will be replicated. Important note: This start date must be set to the first day of where your dataset provides data. If your dataset has data from 2020-10-10 10:21:10, set the start_date to 2020-10-10 or later",
- "examples": [ "2017-01-25" ],
- "format": "date"
- },
- "slice_range": {
- "type": "integer",
- "title": "Data request time increment in days",
- "default": 10,
- "minimum": 1,
- "maximum": 365,
- "examples": [ 1, 3, 10, 30, 180, 360 ],
- "airbyte_hidden": true,
- "description": "The time increment used by the connector when requesting data from the Senseforce API. The bigger the value is, the less requests will be made and faster the sync will be. On the other hand, the more seldom the state is persisted and the more likely one could run into rate limites. Furthermore, consider that large chunks of time might take a long time for the Senseforce query to return data - meaning it could take in effect longer than with more smaller time slices. If there are a lot of data per day, set this setting to 1. If there is only very little data per day, you might change the setting to 10 or more."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "galaxyapi.senseforce.io", "senseforce.io" ]
- }
- }, {
- "sourceDefinitionId": "2e88fa20-a2f6-43cc-bba6-98a0a3f244fb",
- "name": "Sendinblue",
- "dockerRepository": "airbyte/source-sendinblue",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sendinblue",
- "icon": "sendinblue.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sendinblue",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Sendinblue Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Your API Key. See here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "9da77001-af33-4bcd-be46-6252bf9342b9",
- "name": "Shopify",
- "dockerRepository": "airbyte/source-shopify",
- "dockerImageTag": "0.3.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/shopify",
- "icon": "shopify.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/shopify",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Shopify Source CDK Specifications",
- "type": "object",
- "required": [ "shop", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "shop": {
- "type": "string",
- "title": "Shopify Store",
- "description": "The name of your Shopify store found in the URL. For example, if your URL was https://NAME.myshopify.com, then the name would be 'NAME'.",
- "order": 1
- },
- "credentials": {
- "title": "Shopify Authorization Method",
- "description": "The authorization method to use to retrieve data from Shopify",
- "type": "object",
- "order": 2,
- "oneOf": [ {
- "title": "API Password",
- "description": "API Password Auth",
- "type": "object",
- "required": [ "auth_method", "api_password" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "api_password",
- "order": 0
- },
- "api_password": {
- "type": "string",
- "title": "API Password",
- "description": "The API Password for your private application in the `Shopify` store.",
- "airbyte_secret": true,
- "order": 1
- }
- }
- }, {
- "type": "object",
- "title": "OAuth2.0",
- "description": "OAuth2.0",
- "required": [ "auth_method" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "oauth2.0",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of the Shopify developer application.",
- "airbyte_secret": true,
- "order": 1
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of the Shopify developer application.",
- "airbyte_secret": true,
- "order": 2
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The Access Token for making authenticated requests.",
- "airbyte_secret": true,
- "order": 3
- }
- }
- } ]
- },
- "start_date": {
- "type": "string",
- "title": "Replication Start Date",
- "description": "The date you would like to replicate data from. Format: YYYY-MM-DD. Any data before this date will not be replicated.",
- "examples": [ "2021-01-01" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_method" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "shop": {
- "type": "string",
- "path_in_connector_config": [ "shop" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "2fed2292-5586-480c-af92-9944e39fe12d",
- "name": "Short.io",
- "dockerRepository": "airbyte/source-shortio",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/shortio",
- "icon": "short.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://developers.short.io/reference",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Shortio Spec",
- "type": "object",
- "required": [ "domain_id", "secret_key", "start_date" ],
- "properties": {
- "domain_id": {
- "type": "string",
- "desciprtion": "Short.io Domain ID",
- "title": "Domain ID",
- "airbyte_secret": false
- },
- "secret_key": {
- "type": "string",
- "title": "Secret Key",
- "description": "Short.io Secret Key",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "airbyte_secret": false
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "c2281cee-86f9-4a86-bb48-d23286b4c7bd",
- "name": "Slack",
- "dockerRepository": "airbyte/source-slack",
- "dockerImageTag": "0.1.25",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/slack",
- "icon": "slack.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/slack",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Slack Spec",
- "type": "object",
- "required": [ "start_date", "lookback_window", "join_channels" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "title": "Start Date",
- "format": "date-time"
- },
- "lookback_window": {
- "type": "integer",
- "title": "Threads Lookback window (Days)",
- "description": "How far into the past to look for messages in threads.",
- "examples": [ 7, 14 ]
- },
- "join_channels": {
- "type": "boolean",
- "default": true,
- "title": "Join all channels",
- "description": "Whether to join all channels or to sync data only from channels the bot is already in. If false, you'll need to manually add the bot to all the channels from which you'd like to sync messages. "
- },
- "channel_filter": {
- "type": "array",
- "default": [ ],
- "items": {
- "type": "string",
- "minLength": 0
- },
- "title": "Channel name filter",
- "description": "A channel name list (without leading '#' char) which limit the channels from which you'd like to sync. Empty list means no filter.",
- "examples": [ "channel_one", "channel_two" ]
- },
- "credentials": {
- "title": "Authentication mechanism",
- "description": "Choose how to authenticate into Slack",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "Sign in via Slack (OAuth)",
- "required": [ "option_title", "client_id", "client_secret", "access_token" ],
- "properties": {
- "option_title": {
- "type": "string",
- "const": "Default OAuth2.0 authorization"
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "Slack client_id. See our docs if you need help finding this id."
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "Slack client_secret. See our docs if you need help finding this secret.",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "title": "Access token",
- "description": "Slack access_token. See our docs if you need help generating the token.",
- "airbyte_secret": true
- }
- },
- "order": 0
- }, {
- "type": "object",
- "title": "API Token",
- "required": [ "option_title", "api_token" ],
- "properties": {
- "option_title": {
- "type": "string",
- "const": "API Token Credentials"
- },
- "api_token": {
- "type": "string",
- "title": "API Token",
- "description": "A Slack bot token. See the docs for instructions on how to generate it.",
- "airbyte_secret": true
- }
- },
- "order": 1
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "option_title" ],
- "predicate_value": "Default OAuth2.0 authorization",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "slack.com" ]
- }
- }, {
- "sourceDefinitionId": "781f8b1d-4e20-4842-a2c3-cd9b119d65fa",
- "name": "Smaily",
- "dockerRepository": "airbyte/source-smaily",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/smaily",
- "icon": "smaily.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/smaily",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Smaily Spec",
- "type": "object",
- "required": [ "api_subdomain", "api_username", "api_password" ],
- "additionalProperties": true,
- "properties": {
- "api_subdomain": {
- "type": "string",
- "title": "API Subdomain",
- "description": "API Subdomain. See https://smaily.com/help/api/general/create-api-user/"
- },
- "api_username": {
- "type": "string",
- "title": "API User Username",
- "description": "API user username. See https://smaily.com/help/api/general/create-api-user/"
- },
- "api_password": {
- "type": "string",
- "title": "API User Password",
- "description": "API user password. See https://smaily.com/help/api/general/create-api-user/",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "21cc4a17-a011-4485-8a3e-e2341a91ab9f",
- "name": "SmartEngage",
- "dockerRepository": "airbyte/source-smartengage",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/smartengage",
- "icon": "smartengage.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/smartengage",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "SmartEngage Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "374ebc65-6636-4ea0-925c-7d35999a8ffc",
- "name": "Smartsheets",
- "dockerRepository": "airbyte/source-smartsheets",
- "dockerImageTag": "1.0.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/smartsheets",
- "icon": "smartsheet.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/smartsheets",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Smartsheets Source Spec",
- "type": "object",
- "required": [ "credentials", "spreadsheet_id" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "order": 0,
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "oauth2.0"
- },
- "client_id": {
- "type": "string",
- "description": "The API ID of the SmartSheets developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "description": "The API Secret the SmartSheets developer application.",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true
- },
- "token_expiry_date": {
- "type": "string",
- "description": "The date-time when the access token should be refreshed.",
- "format": "date-time"
- },
- "refresh_token": {
- "type": "string",
- "description": "The key to refresh the expired access_token.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "API Access Token",
- "type": "object",
- "required": [ "access_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "access_token"
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The access token to use for accessing your data from Smartsheets. This access token must be generated by a user with at least read access to the data you'd like to replicate. Generate an access token in the Smartsheets main menu by clicking Account > Apps & Integrations > API Access. See the setup guide for information on how to obtain this token.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "spreadsheet_id": {
- "title": "Sheet ID",
- "description": "The spreadsheet ID. Find it by opening the spreadsheet then navigating to File > Properties",
- "type": "string",
- "order": 1
- },
- "start_datetime": {
- "title": "Start Datetime",
- "type": "string",
- "examples": [ "2000-01-01T13:00:00", "2000-01-01T13:00:00-07:00" ],
- "description": "Only rows modified after this date/time will be replicated. This should be an ISO 8601 string, for instance: `2000-01-01T13:00:00`",
- "format": "date-time",
- "default": "2020-01-01T00:00:00+00:00",
- "order": 2,
- "airbyte_hidden": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- },
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- },
- "token_expiry_date": {
- "type": "string",
- "format": "date-time",
- "path_in_connector_config": [ "credentials", "token_expiry_date" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "app.smartsheet.com", "api.smartsheet.com" ]
- }
- }, {
- "sourceDefinitionId": "200330b2-ea62-4d11-ac6d-cfe3e3f8ab2b",
- "name": "Snapchat Marketing",
- "dockerRepository": "airbyte/source-snapchat-marketing",
- "dockerImageTag": "0.1.16",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/snapchat-marketing",
- "icon": "snapchat.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/snapchat-marketing",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Snapchat Marketing Spec",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Snapchat developer application.",
- "airbyte_secret": true,
- "order": 0
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Snapchat developer application.",
- "airbyte_secret": true,
- "order": 1
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "Refresh Token to renew the expired Access Token.",
- "airbyte_secret": true,
- "order": 2
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "Date in the format 2022-01-01. Any data before this date will not be replicated.",
- "examples": [ "2022-01-01" ],
- "default": "2022-01-01",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 3,
- "format": "date"
- },
- "end_date": {
- "type": "string",
- "title": "End Date",
- "description": "Date in the format 2017-01-25. Any data after this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "2022-01-30" ],
- "order": 4,
- "format": "date"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "accounts.snapchat.com", "adsapi.snapchat.com" ]
- }
- }, {
- "sourceDefinitionId": "e2d65910-8c8b-40a1-ae7d-ee2416b2bfa2",
- "name": "Snowflake",
- "dockerRepository": "airbyte/source-snowflake",
- "dockerImageTag": "0.1.34",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/snowflake",
- "icon": "snowflake.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/snowflake",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Snowflake Source Spec",
- "type": "object",
- "required": [ "host", "role", "warehouse", "database" ],
- "properties": {
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "order": 0,
- "required": [ "client_id", "client_secret", "auth_type" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "OAuth",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your Snowflake developer application.",
- "airbyte_secret": true,
- "order": 1
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your Snowflake developer application.",
- "airbyte_secret": true,
- "order": 2
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true,
- "order": 3
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "Refresh Token for making authenticated requests.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- }, {
- "title": "Username and Password",
- "type": "object",
- "required": [ "username", "password", "auth_type" ],
- "order": 1,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "username/password",
- "order": 0
- },
- "username": {
- "description": "The username you created to allow Airbyte to access the database.",
- "examples": [ "AIRBYTE_USER" ],
- "type": "string",
- "title": "Username",
- "order": 1
- },
- "password": {
- "description": "The password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "title": "Password",
- "order": 2
- }
- }
- } ],
- "order": 0
- },
- "host": {
- "description": "The host domain of the snowflake instance (must include the account, region, cloud environment, and end with snowflakecomputing.com).",
- "examples": [ "accountname.us-east-2.aws.snowflakecomputing.com" ],
- "type": "string",
- "title": "Account Name",
- "order": 1
- },
- "role": {
- "description": "The role you created for Airbyte to access Snowflake.",
- "examples": [ "AIRBYTE_ROLE" ],
- "type": "string",
- "title": "Role",
- "order": 2
- },
- "warehouse": {
- "description": "The warehouse you created for Airbyte to access data.",
- "examples": [ "AIRBYTE_WAREHOUSE" ],
- "type": "string",
- "title": "Warehouse",
- "order": 3
- },
- "database": {
- "description": "The database you created for Airbyte to access data.",
- "examples": [ "AIRBYTE_DATABASE" ],
- "type": "string",
- "title": "Database",
- "order": 4
- },
- "schema": {
- "description": "The source Snowflake schema tables. Leave empty to access tables from multiple schemas.",
- "examples": [ "AIRBYTE_SCHEMA" ],
- "type": "string",
- "title": "Schema",
- "order": 5
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 6
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "OAuth",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "properties": {
- "host": {
- "type": "string",
- "path_in_connector_config": [ "host" ]
- },
- "role": {
- "type": "string",
- "path_in_connector_config": [ "role" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- },
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "${host}" ]
- }
- }, {
- "sourceDefinitionId": "3ab1d7d0-1577-4ab9-bcc4-1ff6a4c2c9f2",
- "name": "Sonar Cloud",
- "dockerRepository": "airbyte/source-sonar-cloud",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sonar-cloud",
- "icon": "sonarcloud.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sonar-cloud",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Sonar Cloud Spec",
- "type": "object",
- "required": [ "user_token", "organization", "component_keys" ],
- "additionalProperties": true,
- "properties": {
- "user_token": {
- "title": "User Token",
- "type": "string",
- "description": "Your User Token. See here. The token is case sensitive.",
- "airbyte_secret": true
- },
- "organization": {
- "title": "Organization",
- "type": "string",
- "description": "Organization key. See here.",
- "examples": [ "airbyte" ]
- },
- "component_keys": {
- "title": "Component Keys",
- "type": "array",
- "description": "Comma-separated list of component keys.",
- "examples": [ "airbyte-ws-order", "airbyte-ws-checkout" ]
- },
- "start_date": {
- "title": "Start date",
- "type": "string",
- "description": "To retrieve issues created after the given date (inclusive).",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ],
- "format": "date"
- },
- "end_date": {
- "title": "End date",
- "type": "string",
- "description": "To retrieve issues created before the given date (inclusive).",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ],
- "format": "date"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "sonarcloud.io" ]
- }
- }, {
- "sourceDefinitionId": "62235e65-af7a-4138-9130-0bda954eb6a8",
- "name": "SpaceX API",
- "dockerRepository": "airbyte/source-spacex-api",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/spacex-api",
- "icon": "spacex.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/spacex-api",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Spacex Api Spec",
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "id": {
- "title": "Unique ID for specific source target",
- "type": "string",
- "desciption": "Optional, For a specific ID"
- },
- "options": {
- "title": "Configuration options for endpoints",
- "type": "string",
- "desciption": "Optional, Possible values for an endpoint. Example values for launches-latest, upcoming, past"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "77225a51-cd15-4a13-af02-65816bd0ecf4",
- "name": "Square",
- "dockerRepository": "airbyte/source-square",
- "dockerImageTag": "0.2.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/square",
- "icon": "square.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/square",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Square Spec",
- "type": "object",
- "required": [ "is_sandbox" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authentication",
- "description": "Choose how to authenticate to Square.",
- "type": "object",
- "order": 0,
- "oneOf": [ {
- "title": "Oauth authentication",
- "type": "object",
- "required": [ "auth_type", "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "credentials_title": {
- "type": "string",
- "const": "OAuth Credentials",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Square-issued ID of your application",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Square-issued application secret for your application",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "A refresh token generated using the above client ID and secret",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "API key",
- "type": "object",
- "required": [ "auth_type", "api_key" ],
- "properties": {
- "credentials_title": {
- "type": "string",
- "const": "API Key",
- "order": 0
- },
- "api_key": {
- "type": "string",
- "title": "API key token",
- "description": "The API key for a Square application",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "is_sandbox": {
- "type": "boolean",
- "description": "Determines whether to use the sandbox or production environment.",
- "title": "Sandbox",
- "default": false,
- "order": 1
- },
- "start_date": {
- "type": "string",
- "description": "UTC date in the format YYYY-MM-DD. Any data before this date will not be replicated. If not set, all data will be replicated.",
- "title": "Start Date",
- "default": "2021-01-01",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": "2,",
- "format": "date"
- },
- "include_deleted_objects": {
- "type": "boolean",
- "description": "In some streams there is an option to include deleted objects (Items, Categories, Discounts, Taxes)",
- "title": "Include Deleted Objects",
- "default": false,
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- },
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "Oauth",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "connect.squareupsandbox.com", "connect.squareup.com" ]
- }
- }, {
- "sourceDefinitionId": "7a4327c4-315a-11ec-8d3d-0242ac130003",
- "name": "Strava",
- "dockerRepository": "airbyte/source-strava",
- "dockerImageTag": "0.1.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/strava",
- "icon": "strava.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/strava",
- "connectionSpecification": {
- "$schema": "https://json-schema.org/draft-07/schema#",
- "title": "Strava Spec",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token", "athlete_id", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client",
- "enum": [ "Client" ],
- "default": "Client"
- },
- "client_id": {
- "type": "string",
- "description": "The Client ID of your Strava developer application.",
- "title": "Client ID",
- "pattern": "^[0-9_\\-]+$",
- "examples": [ "12345" ],
- "order": 0
- },
- "client_secret": {
- "type": "string",
- "description": "The Client Secret of your Strava developer application.",
- "title": "Client Secret",
- "pattern": "^[0-9a-fA-F]+$",
- "examples": [ "fc6243f283e51f6ca989aab298b17da125496f50" ],
- "airbyte_secret": true,
- "order": 1
- },
- "refresh_token": {
- "type": "string",
- "description": "The Refresh Token with the activity: read_all permissions.",
- "title": "Refresh Token",
- "pattern": "^[0-9a-fA-F]+$",
- "examples": [ "fc6243f283e51f6ca989aab298b17da125496f50" ],
- "airbyte_secret": true,
- "order": 2
- },
- "athlete_id": {
- "type": "integer",
- "description": "The Athlete ID of your Strava developer application.",
- "title": "Athlete ID",
- "pattern": "^[0-9_\\-]+$",
- "examples": [ "17831421" ],
- "order": 3
- },
- "start_date": {
- "type": "string",
- "description": "UTC date and time. Any data before this date will not be replicated.",
- "title": "Start Date",
- "examples": [ "2021-03-01T00:00:00Z" ],
- "format": "date-time",
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "auth_type" ],
- "predicate_value": "Client",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "strava.com" ]
- }
- }, {
- "sourceDefinitionId": "74cbd708-46c3-4512-9c93-abd5c3e9a94d",
- "name": "Statuspage",
- "dockerRepository": "airbyte/source-statuspage",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/statuspage",
- "icon": "statuspage.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/statuspage",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Statuspage Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Your API Key. See here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "e094cb9a-26de-4645-8761-65c0c425d1de",
- "name": "Stripe",
- "dockerRepository": "airbyte/source-stripe",
- "dockerImageTag": "3.4.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/stripe",
- "icon": "stripe.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/stripe",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Stripe Source Spec",
- "type": "object",
- "required": [ "client_secret", "account_id", "start_date" ],
- "properties": {
- "account_id": {
- "type": "string",
- "title": "Account ID",
- "description": "Your Stripe account ID (starts with 'acct_', find yours here).",
- "order": 0
- },
- "client_secret": {
- "type": "string",
- "title": "Secret Key",
- "description": "Stripe API key (usually starts with 'sk_live_'; find yours here).",
- "airbyte_secret": true,
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Replication start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Only data generated after this date will be replicated.",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "format": "date-time",
- "order": 2
- },
- "lookback_window_days": {
- "type": "integer",
- "title": "Lookback Window in days",
- "default": 0,
- "minimum": 0,
- "description": "When set, the connector will always re-export data from the past N days, where N is the value set here. This is useful if your data is frequently updated after creation. More info here",
- "order": 3
- },
- "slice_range": {
- "type": "integer",
- "title": "Data request time increment in days",
- "default": 365,
- "minimum": 1,
- "examples": [ 1, 3, 10, 30, 180, 360 ],
- "description": "The time increment used by the connector when requesting data from the Stripe API. The bigger the value is, the less requests will be made and faster the sync will be. On the other hand, the more seldom the state is persisted.",
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.stripe.com" ]
- }
- }, {
- "sourceDefinitionId": "dd4632f4-15e0-4649-9b71-41719fb1fdee",
- "name": "SurveyCTO",
- "dockerRepository": "airbyte/source-surveycto",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/surveycto",
- "icon": "surveycto.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/surveycto",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Surveycto Spec",
- "type": "object",
- "required": [ "server_name", "username", "password", "form_id" ],
- "properties": {
- "server_name": {
- "type": "string",
- "title": "Server Name",
- "description": "The name of the SurveryCTO server",
- "order": 0
- },
- "username": {
- "type": "string",
- "title": "Username",
- "description": "Username to authenticate into the SurveyCTO server",
- "order": 1
- },
- "password": {
- "type": "string",
- "title": "Password",
- "description": "Password to authenticate into the SurveyCTO server",
- "airbyte_secret": true,
- "order": 2
- },
- "form_id": {
- "type": "array",
- "title": "Form's Id",
- "description": "Unique identifier for one of the forms",
- "order": 3
- },
- "start_date": {
- "type": "string",
- "description": "initial date for survey cto",
- "title": "Start Date",
- "examples": [ "Jan 09, 2022 00:00:00 AM" ],
- "default": "Jan 09, 2022 00:00:00 AM",
- "order": 4,
- "pattern": "^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dic) [0-9]{2}, [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} (AM|PM)$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "badc5925-0485-42be-8caa-b34096cb71b5",
- "name": "SurveyMonkey",
- "dockerRepository": "airbyte/source-surveymonkey",
- "dockerImageTag": "0.1.16",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/surveymonkey",
- "icon": "surveymonkey.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/surveymonkey",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "SurveyMonkey Spec",
- "type": "object",
- "required": [ "start_date" ],
- "additionalProperties": true,
- "properties": {
- "origin": {
- "type": "string",
- "order": 1,
- "enum": [ "USA", "Europe", "Canada" ],
- "default": "USA",
- "title": "Origin datacenter of the SurveyMonkey account",
- "description": "Depending on the originating datacenter of the SurveyMonkey account, the API access URL may be different."
- },
- "credentials": {
- "title": "SurveyMonkey Authorization Method",
- "description": "The authorization method to use to retrieve data from SurveyMonkey",
- "type": "object",
- "required": [ "auth_method", "access_token" ],
- "order": 2,
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "oauth2.0",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of the SurveyMonkey developer application.",
- "airbyte_secret": true,
- "order": 1
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of the SurveyMonkey developer application.",
- "airbyte_secret": true,
- "order": 2
- },
- "access_token": {
- "title": "Access Token",
- "order": 3,
- "type": "string",
- "airbyte_secret": true,
- "description": "Access Token for making authenticated requests. See the docs for information on how to generate this key."
- }
- }
- },
- "start_date": {
- "title": "Start Date",
- "order": 3,
- "type": "string",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z?$",
- "examples": [ "2021-01-01T00:00:00Z" ],
- "format": "date-time"
- },
- "survey_ids": {
- "type": "array",
- "order": 4,
- "items": {
- "type": "string",
- "pattern": "^[0-9]{8,9}$"
- },
- "title": "Survey Monkey survey IDs",
- "description": "IDs of the surveys from which you'd like to replicate data. If left empty, data from all boards to which you have access will be replicated."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_method" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "origin": {
- "type": "string",
- "path_in_connector_config": [ "origin" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.surveymonkey.com" ]
- }
- }, {
- "sourceDefinitionId": "4a4d887b-0f2d-4b33-ab7f-9b01b9072804",
- "name": "SurveySparrow",
- "dockerRepository": "airbyte/source-survey-sparrow",
- "dockerImageTag": "0.2.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/survey-sparrow",
- "icon": "surveysparrow.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/surveysparrow",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Survey Sparrow Spec",
- "type": "object",
- "required": [ "access_token" ],
- "additionalProperties": true,
- "properties": {
- "access_token": {
- "type": "string",
- "description": "Your access token. See here. The key is case sensitive.",
- "airbyte_secret": true,
- "order": 0
- },
- "survey_id": {
- "type": "array",
- "description": "A List of your survey ids for survey-specific stream",
- "order": 2
- },
- "region": {
- "title": "Base URL",
- "type": "object",
- "description": "Is your account location is EU based? If yes, the base url to retrieve data will be different.",
- "oneOf": [ {
- "title": "EU-based account",
- "type": "object",
- "properties": {
- "url_base": {
- "type": "string",
- "const": "https://eu-api.surveysparrow.com/v3"
- }
- }
- }, {
- "title": "Global account",
- "type": "object",
- "properties": {
- "url_base": {
- "type": "string",
- "const": "https://api.surveysparrow.com/v3"
- }
- }
- } ],
- "default": {
- "title": "Global account",
- "type": "object",
- "properties": {
- "url_base": {
- "type": "string",
- "const": "https://api.surveysparrow.com/v3"
- }
- }
- },
- "order": 1
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "f00d2cf4-3c28-499a-ba93-b50b6f26359e",
- "name": "TalkDesk Explore",
- "dockerRepository": "airbyte/source-talkdesk-explore",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/talkdesk-explore",
- "icon": "talkdesk-explore.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Talkdesk Explore API Spec",
- "type": "object",
- "required": [ "start_date", "auth_url", "api_key" ],
- "additionalProperties": false,
- "properties": {
- "start_date": {
- "type": "string",
- "title": "START DATE",
- "description": "The date from which you'd like to replicate data for Talkdesk Explore API, in the format YYYY-MM-DDT00:00:00. All data generated after this date will be replicated.",
- "examples": [ "2020-10-15T00:00:00" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
- "order": 0
- },
- "timezone": {
- "type": "string",
- "title": "TIMEZONE",
- "description": "Timezone to use when generating reports. Only IANA timezones are supported (https://nodatime.org/TimeZones)",
- "examples": [ "Europe/London", "America/Los_Angeles" ],
- "default": "UTC",
- "order": 1
- },
- "auth_url": {
- "title": "AUTH URL",
- "type": "string",
- "description": "Talkdesk Auth URL. Only 'client_credentials' auth type supported at the moment.",
- "examples": [ "https://xxxxxx.talkdeskid.com/oauth/token?grant_type=client_credentials" ],
- "order": 2
- },
- "api_key": {
- "title": "API KEY",
- "type": "string",
- "description": "Talkdesk API key.",
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d1aa448b-7c54-498e-ad95-263cbebcd2db",
- "name": "Tempo",
- "dockerRepository": "airbyte/source-tempo",
- "dockerImageTag": "0.3.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tempo",
- "icon": "tempo.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Tempo Spec",
- "type": "object",
- "required": [ "api_token" ],
- "properties": {
- "api_token": {
- "type": "string",
- "title": "API token",
- "description": "Tempo API Token. Go to Tempo>Settings, scroll down to Data Access and select API integration.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.tempo.io" ]
- }
- }, {
- "sourceDefinitionId": "aa8ba6fd-4875-d94e-fc8d-4e1e09aa2503",
- "name": "Teradata",
- "dockerRepository": "airbyte/source-teradata",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/teradata",
- "icon": "teradata.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/teradata",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Teradata Source Spec",
- "type": "object",
- "required": [ "host", "database", "username" ],
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 3306,
- "examples": [ "3306" ],
- "order": 1
- },
- "database": {
- "title": "Database",
- "description": "Name of the database.",
- "type": "string",
- "order": 2
- },
- "username": {
- "title": "Username",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "jdbc_url_params": {
- "title": "JDBC URL params",
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3)",
- "type": "string",
- "order": 5
- },
- "replication_method": {
- "title": "Replication method",
- "description": "Replication method to use for extracting data from the database. STANDARD replication requires no setup on the DB side but will not be able to represent deletions incrementally. CDC uses the Binlog to detect inserts, updates, and deletes. This needs to be configured on the source database itself.",
- "type": "string",
- "order": 6,
- "default": "STANDARD",
- "enum": [ "STANDARD", "CDC" ]
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL. When activating SSL, please select one of the connection modes.",
- "type": "boolean",
- "default": false,
- "order": 7
- },
- "ssl_mode": {
- "title": "SSL Modes",
- "description": "SSL connection modes. \n disable - Chose this mode to disable encryption of communication between Airbyte and destination database\n allow - Chose this mode to enable encryption only when required by the destination database\n prefer - Chose this mode to allow unencrypted connection only if the destination database does not support encryption\n require - Chose this mode to always require encryption. If the destination database server does not support encryption, connection will fail\n verify-ca - Chose this mode to always require encryption and to verify that the destination database server has a valid SSL certificate\n verify-full - This is the most secure mode. Chose this mode to always require encryption and to verify the identity of the destination database server\n See more information - in the docs.",
- "type": "object",
- "order": 8,
- "oneOf": [ {
- "title": "disable",
- "additionalProperties": true,
- "description": "Disable SSL.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "disable",
- "order": 0
- }
- }
- }, {
- "title": "allow",
- "additionalProperties": true,
- "description": "Allow SSL mode.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "allow",
- "order": 0
- }
- }
- }, {
- "title": "prefer",
- "additionalProperties": true,
- "description": "Prefer SSL mode.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "prefer",
- "order": 0
- }
- }
- }, {
- "title": "require",
- "additionalProperties": true,
- "description": "Require SSL mode.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "require",
- "order": 0
- }
- }
- }, {
- "title": "verify-ca",
- "additionalProperties": true,
- "description": "Verify-ca SSL mode.",
- "required": [ "mode", "ssl_ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-ca",
- "order": 0
- },
- "ssl_ca_certificate": {
- "type": "string",
- "title": "CA certificate",
- "description": "Specifies the file name of a PEM file that contains Certificate Authority (CA) certificates for use with SSLMODE=verify-ca.\n See more information - in the docs.",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- }
- }
- }, {
- "title": "verify-full",
- "additionalProperties": true,
- "description": "Verify-full SSL mode.",
- "required": [ "mode", "ssl_ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-full",
- "order": 0
- },
- "ssl_ca_certificate": {
- "type": "string",
- "title": "CA certificate",
- "description": "Specifies the file name of a PEM file that contains Certificate Authority (CA) certificates for use with SSLMODE=verify-full.\n See more information - in the docs.",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "${host}" ]
- }
- }, {
- "sourceDefinitionId": "0dad1a35-ccf8-4d03-b73e-6788c00b13ae",
- "name": "TiDB",
- "dockerRepository": "airbyte/source-tidb",
- "dockerImageTag": "0.2.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tidb",
- "icon": "tidb.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tidb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "TiDB Source Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username" ],
- "properties": {
- "host": {
- "description": "Hostname of the database.",
- "title": "Host",
- "type": "string",
- "order": 0
- },
- "port": {
- "description": "Port of the database.",
- "title": "Port",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 4000,
- "examples": [ "4000" ],
- "order": 1
- },
- "database": {
- "description": "Name of the database.",
- "title": "Database",
- "type": "string",
- "order": 2
- },
- "username": {
- "description": "Username to use to access the database.",
- "title": "Username",
- "type": "string",
- "order": 3
- },
- "password": {
- "description": "Password associated with the username.",
- "title": "Password",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3)",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 5
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL.",
- "type": "boolean",
- "default": false,
- "order": 6
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
- }
- }, {
- "sourceDefinitionId": "4bfac00d-ce15-44ff-95b9-9e3c3e8fbd35",
- "name": "TikTok Marketing",
- "dockerRepository": "airbyte/source-tiktok-marketing",
- "dockerImageTag": "3.0.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tiktok-marketing",
- "icon": "tiktok.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tiktok-marketing",
- "changelogUrl": "https://docs.airbyte.com/integrations/sources/tiktok-marketing",
- "connectionSpecification": {
- "title": "TikTok Marketing Source Spec",
- "type": "object",
- "properties": {
- "credentials": {
- "title": "Authentication Method",
- "description": "Authentication method",
- "default": { },
- "order": 0,
- "type": "object",
- "oneOf": [ {
- "title": "OAuth2.0",
- "type": "object",
- "properties": {
- "auth_type": {
- "title": "Auth Type",
- "const": "oauth2.0",
- "order": 0,
- "type": "string"
- },
- "app_id": {
- "title": "App ID",
- "description": "The Developer Application App ID.",
- "airbyte_secret": true,
- "type": "string"
- },
- "secret": {
- "title": "Secret",
- "description": "The Developer Application Secret.",
- "airbyte_secret": true,
- "type": "string"
- },
- "access_token": {
- "title": "Access Token",
- "description": "Long-term Authorized Access Token.",
- "airbyte_secret": true,
- "type": "string"
- },
- "advertiser_id": {
- "title": "Advertiser ID",
- "description": "The Advertiser ID to filter reports and streams. Let this empty to retrieve all.",
- "type": "string"
- }
- },
- "required": [ "app_id", "secret", "access_token" ]
- }, {
- "title": "Sandbox Access Token",
- "type": "object",
- "properties": {
- "auth_type": {
- "title": "Auth Type",
- "const": "sandbox_access_token",
- "order": 0,
- "type": "string"
- },
- "advertiser_id": {
- "title": "Advertiser ID",
- "description": "The Advertiser ID which generated for the developer's Sandbox application.",
- "type": "string"
- },
- "access_token": {
- "title": "Access Token",
- "description": "The long-term authorized access token.",
- "airbyte_secret": true,
- "type": "string"
- }
- },
- "required": [ "advertiser_id", "access_token" ]
- } ]
- },
- "start_date": {
- "title": "Replication Start Date",
- "description": "The Start Date in format: YYYY-MM-DD. Any data before this date will not be replicated. If this parameter is not set, all data will be replicated.",
- "default": "2016-09-01",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 1,
- "type": "string",
- "format": "date"
- },
- "end_date": {
- "title": "End Date",
- "description": "The date until which you'd like to replicate data for all incremental streams, in the format YYYY-MM-DD. All data generated between start_date and this date will be replicated. Not setting this option will result in always syncing the data till the current date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 2,
- "type": "string",
- "format": "date"
- },
- "attribution_window": {
- "title": "Attribution Window",
- "description": "The attribution window in days.",
- "default": 0,
- "order": 3,
- "type": "integer"
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "title": "CompleteOauthOutputSpecification",
- "type": "object",
- "properties": {
- "access_token": {
- "title": "Access Token",
- "path_in_connector_config": [ "credentials", "access_token" ],
- "type": "string"
- }
- },
- "required": [ "access_token" ]
- },
- "complete_oauth_server_input_specification": {
- "title": "CompleteOauthServerInputSpecification",
- "type": "object",
- "properties": {
- "app_id": {
- "title": "App Id",
- "type": "string"
- },
- "secret": {
- "title": "Secret",
- "type": "string"
- }
- },
- "required": [ "app_id", "secret" ]
- },
- "complete_oauth_server_output_specification": {
- "title": "CompleteOauthServerOutputSpecification",
- "type": "object",
- "properties": {
- "app_id": {
- "title": "App Id",
- "path_in_connector_config": [ "credentials", "app_id" ],
- "type": "string"
- },
- "secret": {
- "title": "Secret",
- "path_in_connector_config": [ "credentials", "secret" ],
- "type": "string"
- }
- },
- "required": [ "app_id", "secret" ]
- }
- }
- },
- "additionalProperties": true
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "sandbox-ads.tiktok.com", "business-api.tiktok.com" ]
- }
- }, {
- "sourceDefinitionId": "bc617b5f-1b9e-4a2d-bebe-782fd454a771",
- "name": "Timely",
- "dockerRepository": "airbyte/source-timely",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/timely",
- "icon": "timely.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Timely Integration Spec",
- "type": "object",
- "required": [ "account_id", "start_date", "bearer_token" ],
- "additionalProperties": false,
- "properties": {
- "account_id": {
- "title": "account_id",
- "type": "string",
- "description": "Timely account id"
- },
- "start_date": {
- "title": "startDate",
- "type": "string",
- "description": "start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "example": "2022-05-06"
- },
- "bearer_token": {
- "title": "Bearer token",
- "type": "string",
- "description": "Timely bearer token"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6240848f-f795-45eb-8f5e-c7542822fc03",
- "name": "TMDb",
- "dockerRepository": "airbyte/source-tmdb",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tmdb",
- "icon": "tmdb.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tmdb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Tmdb Spec",
- "type": "object",
- "required": [ "api_key", "movie_id", "query", "language" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "Unique key for establishing connection",
- "type": "string",
- "description": "API Key from tmdb account",
- "airbyte_secret": true
- },
- "movie_id": {
- "title": "Movie ID for targeting movies",
- "type": "string",
- "description": "Target movie ID, Mandate for movie streams (Example is 550)",
- "examples": [ 550, 560 ]
- },
- "query": {
- "title": "Query for search streams",
- "type": "string",
- "description": "Target movie ID, Mandate for search streams",
- "examples": [ "Marvel", "DC" ]
- },
- "language": {
- "title": "Language for filtering",
- "type": "string",
- "description": "Language expressed in ISO 639-1 scheme, Mandate for required streams (Example en-US)",
- "examples": [ "en-US", "en-UK" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "7d272065-c316-4c04-a433-cd4ee143f83e",
- "name": "Todoist",
- "dockerRepository": "airbyte/source-todoist",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/todoist",
- "icon": "todoist.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/todoist",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Todoist Spec",
- "type": "object",
- "required": [ "token" ],
- "properties": {
- "token": {
- "type": "string",
- "description": "Your API Token. See here. The token is case sensitive.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "7e7c844f-2300-4342-b7d3-6dd7992593cd",
- "name": "Toggl",
- "dockerRepository": "airbyte/source-toggl",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/toggl",
- "icon": "toggl.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/toggl",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Toggl Spec",
- "type": "object",
- "required": [ "api_token", "organization_id", "workspace_id", "start_date", "end_date" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "title": "API token",
- "type": "string",
- "description": "Your API Token. See here. The token is case sensitive.",
- "airbyte_secret": true
- },
- "organization_id": {
- "title": "Organization ID",
- "type": "integer",
- "description": "Your organization id. See here."
- },
- "workspace_id": {
- "title": "Workspace ID",
- "type": "integer",
- "description": "Your workspace id. See here."
- },
- "start_date": {
- "title": "Start date",
- "type": "string",
- "description": "To retrieve time entries created after the given date (inclusive).",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ]
- },
- "end_date": {
- "title": "End date",
- "type": "string",
- "description": "To retrieve time entries created before the given date (inclusive).",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d42bd69f-6bf0-4d0b-9209-16231af07a92",
- "name": "The Guardian API",
- "dockerRepository": "airbyte/source-the-guardian-api",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/the-guardian-api",
- "icon": "theguardian.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/the-guardian-api",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "The Guardian Api Spec",
- "type": "object",
- "required": [ "api_key", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Your API Key. See here. The key is case sensitive.",
- "airbyte_secret": true
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "Use this to set the minimum date (YYYY-MM-DD) of the results. Results older than the start_date will not be shown.",
- "pattern": "^([1-9][0-9]{3})\\-(0?[1-9]|1[012])\\-(0?[1-9]|[12][0-9]|3[01])$",
- "examples": [ "YYYY-MM-DD" ]
- },
- "query": {
- "title": "Query",
- "type": "string",
- "description": "(Optional) The query (q) parameter filters the results to only those that include that search term. The q parameter supports AND, OR and NOT operators.",
- "examples": [ "environment AND NOT water", "environment AND political", "amusement park", "political" ]
- },
- "tag": {
- "title": "Tag",
- "type": "string",
- "description": "(Optional) A tag is a piece of data that is used by The Guardian to categorise content. Use this parameter to filter results by showing only the ones matching the entered tag. See here for a list of all tags, and here for the tags endpoint documentation.",
- "examples": [ "environment/recycling", "environment/plasticbags", "environment/energyefficiency" ]
- },
- "section": {
- "title": "Section",
- "type": "string",
- "description": "(Optional) Use this to filter the results by a particular section. See here for a list of all sections, and here for the sections endpoint documentation.",
- "examples": [ "media", "technology", "housing-network" ]
- },
- "end_date": {
- "title": "End Date",
- "type": "string",
- "description": "(Optional) Use this to set the maximum date (YYYY-MM-DD) of the results. Results newer than the end_date will not be shown. Default is set to the current date (today) for incremental syncs.",
- "pattern": "^([1-9][0-9]{3})\\-(0?[1-9]|1[012])\\-(0?[1-9]|[12][0-9]|3[01])$",
- "examples": [ "YYYY-MM-DD" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "f9b6c538-ee12-42fe-8d4b-0c10f5955417",
- "name": "TPLcentral",
- "dockerRepository": "airbyte/source-tplcentral",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tplcentral",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tplcentral",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Tplcentral Spec",
- "type": "object",
- "required": [ "url_base", "client_id", "client_secret" ],
- "additionalProperties": false,
- "properties": {
- "url_base": {
- "title": "URL base",
- "type": "string",
- "format": "uri",
- "default": "https://secure-wms.com/",
- "pattern": "^https://"
- },
- "client_id": {
- "title": "Client ID",
- "type": "string"
- },
- "client_secret": {
- "title": "Client secret",
- "type": "string",
- "airbyte_secret": true
- },
- "user_login_id": {
- "title": "User login ID",
- "description": "User login ID and/or name is required",
- "type": "integer"
- },
- "user_login": {
- "title": "User login name",
- "description": "User login ID and/or name is required",
- "type": "string"
- },
- "tpl_key": {
- "title": "3PL GUID",
- "type": "string"
- },
- "customer_id": {
- "title": "Customer ID",
- "type": "integer"
- },
- "facility_id": {
- "title": "Facility ID",
- "type": "integer"
- },
- "start_date": {
- "title": "Start date",
- "description": "Date and time together in RFC 3339 format, for example, 2018-11-13T20:20:39+00:00.",
- "type": "string",
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "8da67652-004c-11ec-9a03-0242ac130003",
- "name": "Trello",
- "dockerRepository": "airbyte/source-trello",
- "dockerImageTag": "0.3.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/trello",
- "icon": "trello.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/trello",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Trello Spec",
- "type": "object",
- "required": [ "key", "token", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "key": {
- "type": "string",
- "title": "API key",
- "description": "Trello API key. See the docs for instructions on how to generate it.",
- "airbyte_secret": true,
- "order": 0
- },
- "token": {
- "type": "string",
- "title": "API token",
- "description": "Trello API token. See the docs for instructions on how to generate it.",
- "airbyte_secret": true,
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2021-03-01T00:00:00Z" ],
- "format": "date-time",
- "order": 2
- },
- "board_ids": {
- "type": "array",
- "items": {
- "type": "string",
- "pattern": "^[0-9a-fA-F]{24}$"
- },
- "title": "Trello Board IDs",
- "description": "IDs of the boards to replicate data from. If left empty, data from all boards to which you have access will be replicated.",
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ ],
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "token": {
- "type": "string",
- "path_in_connector_config": [ "token" ]
- },
- "key": {
- "type": "string",
- "path_in_connector_config": [ "key" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.trello.com" ]
- }
- }, {
- "sourceDefinitionId": "d7e23ea6-d741-4314-9209-a33c91a2e945",
- "name": "TrustPilot",
- "dockerRepository": "airbyte/source-trustpilot",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/trustpilot",
- "icon": "trustpilot.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Trustpilot Spec",
- "type": "object",
- "required": [ "credentials", "business_units", "start_date" ],
- "properties": {
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "order": 0,
- "oneOf": [ {
- "type": "object",
- "title": "OAuth 2.0",
- "required": [ "client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "oauth2.0"
- },
- "client_id": {
- "type": "string",
- "title": "API key",
- "description": "The API key of the Trustpilot API application. (represents the OAuth Client ID)",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Secret",
- "description": "The Secret of the Trustpilot API application. (represents the OAuth Client Secret)",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true
- },
- "token_expiry_date": {
- "type": "string",
- "title": "Token expiry date time",
- "description": "The date-time when the access token should be refreshed.",
- "format": "date-time"
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh token",
- "description": "The key to refresh the expired access_token.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "API Key",
- "description": "The API key authentication method gives you access to only the streams which are part of the Public API. When you want to get streams available via the Consumer API (e.g. the private reviews) you need to use authentication method OAuth 2.0.",
- "required": [ "client_id" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "apikey"
- },
- "client_id": {
- "type": "string",
- "title": "API key",
- "description": "The API key of the Trustpilot API application.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "business_units": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "title": "Business Unit names",
- "description": "The names of business units which shall be synchronized. Some streams e.g. configured_business_units or private_reviews use this configuration.",
- "examples": [ "mydomain.com", "www.mydomain.com" ]
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "For streams with sync. method incremental the start date time to be used",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "%Y-%m-%dT%H:%M:%S" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "bd14b08f-9f43-400f-b2b6-7248b5c72561",
- "name": "TVMaze Schedule",
- "dockerRepository": "airbyte/source-tvmaze-schedule",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tvmaze-schedule",
- "icon": "tvmazeschedule.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tvmaze-schedule",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "TVMaze Schedule Spec",
- "type": "object",
- "required": [ "start_date", "domestic_schedule_country_code" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "description": "Start date for TV schedule retrieval. May be in the future.",
- "order": 0,
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
- },
- "end_date": {
- "type": "string",
- "description": "End date for TV schedule retrieval. May be in the future. Optional.\n",
- "order": 1,
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
- },
- "domestic_schedule_country_code": {
- "type": "string",
- "description": "Country code for domestic TV schedule retrieval.",
- "examples": [ "US", "GB" ]
- },
- "web_schedule_country_code": {
- "type": "string",
- "description": "ISO 3166-1 country code for web TV schedule retrieval. Leave blank for\nall countries plus global web channels (e.g. Netflix). Alternatively,\nset to 'global' for just global web channels.\n",
- "examples": [ "US", "GB", "global" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "b9dc6155-672e-42ea-b10d-9f1f1fb95ab1",
- "name": "Twilio",
- "dockerRepository": "airbyte/source-twilio",
- "dockerImageTag": "0.5.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/twilio",
- "icon": "twilio.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/twilio",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Twilio Spec",
- "type": "object",
- "required": [ "account_sid", "auth_token", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "account_sid": {
- "title": "Account ID",
- "description": "Twilio account SID",
- "airbyte_secret": true,
- "type": "string",
- "order": 1
- },
- "auth_token": {
- "title": "Auth Token",
- "description": "Twilio Auth Token.",
- "airbyte_secret": true,
- "type": "string",
- "order": 2
- },
- "start_date": {
- "title": "Replication Start Date",
- "description": "UTC date and time in the format 2020-10-01T00:00:00Z. Any data before this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2020-10-01T00:00:00Z" ],
- "type": "string",
- "order": 3,
- "format": "date-time"
- },
- "lookback_window": {
- "title": "Lookback window",
- "description": "How far into the past to look for records. (in minutes)",
- "examples": [ 60 ],
- "default": 0,
- "minimum": 0,
- "maximum": 576000,
- "type": "integer",
- "order": 4
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.twilio.com", "monitor.twilio.com" ]
- }
- }, {
- "sourceDefinitionId": "2446953b-b794-429b-a9b3-c821ba992a48",
- "name": "Twilio Taskrouter",
- "dockerRepository": "airbyte/source-twilio-taskrouter",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/twilio-taskrouter",
- "icon": "twilio.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/twilio-taskrouter",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Twilio Taskrouter Spec",
- "type": "object",
- "required": [ "account_sid", "auth_token" ],
- "additionalProperties": true,
- "properties": {
- "account_sid": {
- "title": "Account SID",
- "type": "string",
- "description": "Twilio Account ID",
- "airbyte_secret": true
- },
- "auth_token": {
- "type": "string",
- "description": "Twilio Auth Token",
- "airbyte_secret": true,
- "title": "Auth Token"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d7fd4f40-5e5a-4b8b-918f-a73077f8c131",
- "name": "Twitter",
- "dockerRepository": "airbyte/source-twitter",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/twitter",
- "icon": "twitter.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/twitter",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Twitter Spec",
- "type": "object",
- "required": [ "api_key", "query" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "Access Token",
- "description": "App only Bearer Token. See the docs for more information on how to obtain this token.",
- "airbyte_secret": true,
- "order": 0
- },
- "query": {
- "type": "string",
- "title": "Search Query",
- "description": "Query for matching Tweets. You can learn how to build this query by reading build a query guide .",
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The start date for retrieving tweets cannot be more than 7 days in the past.",
- "format": "date-time",
- "order": 2
- },
- "end_date": {
- "type": "string",
- "title": "End Date",
- "description": "The end date for retrieving tweets must be a minimum of 10 seconds prior to the request time.",
- "format": "date-time",
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.twitter.com" ]
- }
- }, {
- "sourceDefinitionId": "3c0c3cd1-b3e0-464a-9090-d3ceb5f92346",
- "name": "Tyntec SMS",
- "dockerRepository": "airbyte/source-tyntec-sms",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tyntec-sms",
- "icon": "tyntec.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tyntec-sms",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Tyntec Sms Spec",
- "type": "object",
- "required": [ "api_key", "to", "from" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "Tyntec API Key",
- "description": "Your Tyntec API Key. See here",
- "order": 0,
- "airbyte_secret": true
- },
- "to": {
- "type": "string",
- "title": "SMS Message Recipient Phone",
- "description": "The phone number of the SMS message recipient (international).",
- "order": 1
- },
- "from": {
- "type": "string",
- "title": "SMS Message Sender Phone",
- "description": "The phone number of the SMS message sender (international).",
- "order": 2
- },
- "message": {
- "type": "string",
- "title": "SMS Message Body",
- "description": "The content of the SMS message to be sent.",
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "e7eff203-90bf-43e5-a240-19ea3056c474",
- "name": "Typeform",
- "dockerRepository": "airbyte/source-typeform",
- "dockerImageTag": "0.1.12",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/typeform",
- "icon": "typeform.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/typeform",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Typeform Spec",
- "type": "object",
- "required": [ "token", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "token": {
- "type": "string",
- "description": "The API Token for a Typeform account.",
- "title": "API Token",
- "airbyte_secret": true,
- "order": 0
- },
- "start_date": {
- "type": "string",
- "description": "UTC date and time in the format: YYYY-MM-DDTHH:mm:ss[Z]. Any data before this date will not be replicated.",
- "title": "Start Date",
- "examples": [ "2020-01-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "order": 1,
- "format": "date-time"
- },
- "form_ids": {
- "title": "Form IDs to replicate",
- "description": "When this parameter is set, the connector will replicate data only from the input forms. Otherwise, all forms in your Typeform account will be replicated. You can find form IDs in your form URLs. For example, in the URL \"https://mysite.typeform.com/to/u6nXL7\" the form_id is u6nXL7. You can find form URLs on Share panel",
- "type": "array",
- "items": {
- "type": "string"
- },
- "uniqueItems": true,
- "order": 2
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.typeform.com" ]
- }
- }, {
- "sourceDefinitionId": "f77914a1-442b-4195-9355-8810a1f4ed3f",
- "name": "Unleash",
- "dockerRepository": "airbyte/source-unleash",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/unleash",
- "icon": "unleash.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/unleash",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Unleash Source Spec",
- "type": "object",
- "required": [ "api_token", "api_url" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "title": "API Token Client",
- "type": "string",
- "description": "Your API Token (Server-Side SDK [Client]). See here. The token is case sensitive.",
- "airbyte_secret": true,
- "examples": [ "project:environment.be44368985f7fb3237c584ef86f3d6bdada42ddbd63a019d26955178", "*:environment.be44368985f7fb3237c584ef86f3d6bdada42ddbd63a019d26955178", "be44368985f7fb3237c584ef86f3d6bdada42ddbd63a019d26955178" ]
- },
- "api_url": {
- "title": "API URL",
- "type": "string",
- "description": "Your API URL. No trailing slash. ex: http://unleash.host.com/api"
- },
- "project_name": {
- "title": "Project Name",
- "type": "string",
- "description": "Use this if you want to filter the API call for only one given project (can be used in addition to the \"Feature Name Prefix\" field). See here"
- },
- "nameprefix": {
- "title": "Feature Name Prefix",
- "type": "string",
- "description": "Use this if you want to filter the API call for only one given project (can be used in addition to the \"Feature Name Prefix\" field). See here"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "c4cfaeda-c757-489a-8aba-859fb08b6970",
- "name": "US Census",
- "dockerRepository": "airbyte/source-us-census",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/us-census",
- "icon": "uscensus.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/us-census",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "https://api.census.gov/ Source Spec",
- "type": "object",
- "required": [ "api_key", "query_path" ],
- "additionalProperties": false,
- "properties": {
- "query_params": {
- "type": "string",
- "description": "The query parameters portion of the GET request, without the api key",
- "pattern": "^\\w+=[\\w,:*]+(&(?!key)\\w+=[\\w,:*]+)*$",
- "examples": [ "get=NAME,NAICS2017_LABEL,LFO_LABEL,EMPSZES_LABEL,ESTAB,PAYANN,PAYQTR1,EMP&for=us:*&NAICS2017=72&LFO=001&EMPSZES=001", "get=MOVEDIN,GEOID1,GEOID2,MOVEDOUT,FULL1_NAME,FULL2_NAME,MOVEDNET&for=county:*" ]
- },
- "query_path": {
- "type": "string",
- "description": "The path portion of the GET request",
- "pattern": "^data(\\/[\\w\\d]+)+$",
- "examples": [ "data/2019/cbp", "data/2018/acs", "data/timeseries/healthins/sahie" ]
- },
- "api_key": {
- "type": "string",
- "description": "Your API Key. Get your key here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "afa734e4-3571-11ec-991a-1e0031268139",
- "name": "YouTube Analytics",
- "dockerRepository": "airbyte/source-youtube-analytics",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/youtube-analytics",
- "icon": "youtube-analytics.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/youtube-analytics",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "YouTube Analytics Spec",
- "type": "object",
- "required": [ "credentials" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authenticate via OAuth 2.0",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your developer application",
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The client secret of your developer application",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "A refresh token generated using the above client ID and secret",
- "airbyte_secret": true
- }
- }
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "*.googleapis.com" ]
- }
- }, {
- "sourceDefinitionId": "28ce1fbd-1e15-453f-aa9f-da6c4d928e92",
- "name": "Vantage",
- "dockerRepository": "airbyte/source-vantage",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/vantage",
- "icon": "vantage.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/vantage",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Vantage Spec",
- "type": "object",
- "required": [ "access_token" ],
- "additionalProperties": true,
- "properties": {
- "access_token": {
- "title": "API Access Token",
- "type": "string",
- "description": "Your API Access token. See here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "7e20ce3e-d820-4327-ad7a-88f3927fd97a",
- "name": "VictorOps",
- "dockerRepository": "farosai/airbyte-victorops-source",
- "dockerImageTag": "0.1.23",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/victorops",
- "icon": "victorops.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.faros.ai",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "VictorOps Spec",
- "type": "object",
- "required": [ "apiId", "apiKey" ],
- "additionalProperties": true,
- "properties": {
- "apiId": {
- "type": "string",
- "title": "VictorOps API ID",
- "airbyte_secret": true
- },
- "apiKey": {
- "type": "string",
- "title": "VictorOps API key",
- "airbyte_secret": true
- },
- "maxContentLength": {
- "type": "number",
- "title": "VictorOps Content Length",
- "description": "VictorOps API response content length limit, try increasing if 'RequestError' is encountered.",
- "default": 500000
- },
- "pageLimit": {
- "type": "number",
- "title": "VictorOps Page Limit",
- "default": 100
- },
- "currentPhase": {
- "type": "string",
- "title": "VictorOps Current Phase",
- "default": "triggered,acknowledged,resolved"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "42495935-95de-4f5c-ae08-8fac00f6b308",
- "name": "Visma E-conomic",
- "dockerRepository": "airbyte/source-visma-economic",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/visma-economic",
- "icon": "visma-e-conomic.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/visma-economic",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Visma E-conomic Spec",
- "type": "object",
- "required": [ "app_secret_token", "agreement_grant_token" ],
- "properties": {
- "app_secret_token": {
- "title": "App Secret Token",
- "type": "string",
- "description": "Identification token for app accessing data",
- "airbyte_secret": true
- },
- "agreement_grant_token": {
- "title": "Agreement Grant Token",
- "type": "string",
- "description": "Identifier for the grant issued by an agreement",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6c6d8b0c-db35-4cd1-a7de-0ca8b080f5ac",
- "name": "Vitally",
- "dockerRepository": "airbyte/source-vitally",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/vitally",
- "icon": "vitally.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/vitally",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Vitally Spec",
- "type": "object",
- "required": [ "api_key", "status" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Token",
- "description": "The API Token for a Vitally account.",
- "airbyte_secret": true
- },
- "status": {
- "type": "string",
- "title": "Status",
- "description": "Status of the Vitally accounts. One of the following values; active, churned, activeOrChurned.",
- "enum": [ "active", "churned", "activeOrChurned" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6fd1e833-dd6e-45ec-a727-ab917c5be892",
- "name": "Xero",
- "dockerRepository": "airbyte/source-xero",
- "dockerImageTag": "0.2.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/xero",
- "icon": "xero.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/xero",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Xero Spec",
- "type": "object",
- "required": [ "authentication", "tenant_id", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "authentication": {
- "type": "object",
- "title": "Authenticate via Xero (OAuth)",
- "required": [ "client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date" ],
- "properties": {
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "Enter your Xero application's Client ID"
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "Enter your Xero application's Client Secret",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "Enter your Xero application's refresh token",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Enter your Xero application's access token",
- "airbyte_secret": true
- },
- "token_expiry_date": {
- "type": "string",
- "description": "The date-time when the access token should be refreshed"
- }
- },
- "order": 0
- },
- "tenant_id": {
- "title": "Tenant ID",
- "type": "string",
- "description": "Enter your Xero organization's Tenant ID",
- "airbyte_secret": true,
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format YYYY-MM-DDTHH:mm:ssZ. Any data with created_at before this data will not be synced.",
- "examples": [ "2022-03-01T00:00:00Z" ],
- "format": "date-time",
- "order": 2
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ ],
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "authentication", "refresh_token" ]
- },
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "authentication", "access_token" ]
- },
- "token_expiry_date": {
- "type": "string",
- "path_in_connector_config": [ "authentication", "token_expiry_date" ],
- "format": "date-time"
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "authentication", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "authentication", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.xero.com" ]
- }
- }, {
- "sourceDefinitionId": "80fddd16-17bd-4c0c-bf4a-80df7863fc9d",
- "name": "xkcd",
- "dockerRepository": "airbyte/source-xkcd",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/xkcd",
- "icon": "xkcd.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/xkcd",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Xkcd Spec",
- "type": "object",
- "properties": { }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "5db8292c-5f5a-11ed-9b6a-0242ac120002",
- "name": "Weatherstack",
- "dockerRepository": "airbyte/source-weatherstack",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/weatherstack",
- "icon": "weatherstack.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/weatherstack",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Weatherstack Spec",
- "type": "object",
- "required": [ "access_key", "query", "historical_date" ],
- "properties": {
- "is_paid_account": {
- "order": 0,
- "title": "Is Paid Account",
- "description": "Toggle if you're using a Paid subscription",
- "type": "boolean",
- "default": false
- },
- "access_key": {
- "order": 1,
- "type": "string",
- "description": "API access key used to retrieve data from the Weatherstack API.(https://weatherstack.com/product)",
- "airbyte_secret": true
- },
- "query": {
- "order": 2,
- "type": "string",
- "description": "A location to query such as city, IP, latitudeLongitude, or zipcode. Multiple locations with semicolon seperated if using a professional plan or higher. For more info- (https://weatherstack.com/documentation#query_parameter)",
- "examples": [ "New York", "London", "98101" ]
- },
- "historical_date": {
- "order": 3,
- "type": "string",
- "description": "This is required for enabling the Historical date API with format- (YYYY-MM-DD). * Note, only supported by paid accounts",
- "examples": [ "2015-01-21" ],
- "default\"": "2000-01-01",
- "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "ef580275-d9a9-48bb-af5e-db0f5855be04",
- "name": "Webflow",
- "dockerRepository": "airbyte/source-webflow",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/webflow",
- "icon": "webflow.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/webflow",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Webflow Spec",
- "type": "object",
- "required": [ "api_key", "site_id" ],
- "additionalProperties": false,
- "properties": {
- "site_id": {
- "title": "Site id",
- "type": "string",
- "description": "The id of the Webflow site you are requesting data from. See https://developers.webflow.com/#sites",
- "example": "a relatively long hex sequence",
- "order": 0
- },
- "api_key": {
- "title": "API token",
- "type": "string",
- "description": "The API token for authenticating to Webflow. See https://university.webflow.com/lesson/intro-to-the-webflow-api",
- "example": "a very long hex sequence",
- "order": 1,
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "e65f84c0-7598-458a-bfac-f770c381ff5d",
- "name": "Whisky Hunter",
- "dockerRepository": "airbyte/source-whisky-hunter",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/whisky-hunter",
- "icon": "whiskyhunter.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/whisky-hunter",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Whisky Hunter Spec",
- "type": "object",
- "additionalProperties": true,
- "properties": { }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "2a2552ca-9f78-4c1c-9eb7-4d0dc66d72df",
- "name": "WooCommerce",
- "dockerRepository": "airbyte/source-woocommerce",
- "dockerImageTag": "0.2.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/woocommerce",
- "icon": "woocommerce.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/woocommerce",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Woocommerce Spec",
- "type": "object",
- "required": [ "api_key", "api_secret", "shop", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "Customer Key",
- "description": "Customer Key for API in WooCommerce shop",
- "airbyte_secret": true,
- "order": 0
- },
- "api_secret": {
- "type": "string",
- "title": "Customer Secret",
- "description": "Customer Secret for API in WooCommerce shop",
- "airbyte_secret": true,
- "order": 1
- },
- "shop": {
- "type": "string",
- "title": "Shop Name",
- "description": "The name of the store. For https://EXAMPLE.com, the shop name is 'EXAMPLE.com'.",
- "order": 2
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date you would like to replicate data from. Format: YYYY-MM-DD",
- "examples": [ "2021-01-01" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "format": "date",
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "${domain}" ]
- }
- }, {
- "sourceDefinitionId": "ef3c99c6-9e90-43c8-9517-926cfd978517",
- "name": "Workable",
- "dockerRepository": "airbyte/source-workable",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/workable",
- "icon": "workable.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/workable",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Workable API Spec",
- "type": "object",
- "required": [ "api_key", "account_subdomain", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Your Workable API Key. See here.",
- "airbyte_secret": true
- },
- "account_subdomain": {
- "title": "Account Subdomain",
- "type": "string",
- "description": "Your Workable account subdomain, e.g. https://your_account_subdomain.workable.com."
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "Get data that was created since this date (format: YYYYMMDDTHHMMSSZ).",
- "pattern": "^[0-9]{8}T[0-9]{6}Z$",
- "examples": [ "20150708T115616Z", "20221115T225616Z" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "9c13f986-a13b-4988-b808-4705badf71c2",
- "name": "Wrike",
- "dockerRepository": "airbyte/source-wrike",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/wrike",
- "icon": "wrike.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Wrike Spec",
- "type": "object",
- "required": [ "access_token", "wrike_instance" ],
- "properties": {
- "access_token": {
- "type": "string",
- "title": "Permanent Access Token",
- "description": "Permanent access token. You can find documentation on how to acquire a permanent access token here",
- "airbyte_secret": true,
- "order": 0
- },
- "wrike_instance": {
- "type": "string",
- "title": "Wrike Instance (hostname)",
- "description": "Wrike's instance such as `app-us2.wrike.com`",
- "default": "app-us2.wrike.com",
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start date for comments",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Only comments after this date will be replicated.",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "order": 2
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "b8c917bc-7d1b-4828-995f-6726820266d0",
- "name": "Zapier Supported Storage",
- "dockerRepository": "airbyte/source-zapier-supported-storage",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-supported-storage",
- "icon": "zapiersupportedstorage.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zapier-supported-storage",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Zapier Supported Storage Spec",
- "type": "object",
- "required": [ "secret" ],
- "additionalProperties": true,
- "properties": {
- "secret": {
- "title": "Secret Key",
- "type": "string",
- "description": "Secret key supplied by zapier",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "40d24d0f-b8f9-4fe0-9e6c-b06c0f3f45e4",
- "name": "Zendesk Chat",
- "dockerRepository": "airbyte/source-zendesk-chat",
- "dockerImageTag": "0.1.14",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-chat",
- "icon": "zendesk-chat.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-chat",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Zendesk Chat Spec",
- "type": "object",
- "required": [ "start_date" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for Zendesk Chat API, in the format YYYY-MM-DDT00:00:00Z.",
- "examples": [ "2021-02-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "format": "date-time"
- },
- "subdomain": {
- "type": "string",
- "title": "Subdomain",
- "description": "Required if you access Zendesk Chat from a Zendesk Support subdomain.",
- "default": ""
- },
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "credentials" ],
- "properties": {
- "credentials": {
- "type": "string",
- "const": "oauth2.0",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your OAuth application",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your OAuth application.",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "Refresh Token to obtain new Access Token, when it's expired.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Access Token",
- "required": [ "credentials", "access_token" ],
- "properties": {
- "credentials": {
- "type": "string",
- "const": "access_token",
- "order": 0
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The Access Token to make authenticated requests.",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "credentials" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "properties": {
- "subdomain": {
- "type": "string",
- "path_in_connector_config": [ "subdomain" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- },
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "zopim.com" ]
- }
- }, {
- "sourceDefinitionId": "982eaa4c-bba1-4cce-a971-06a41f700b8c",
- "name": "Zendesk Sell",
- "dockerRepository": "airbyte/source-zendesk-sell",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-sell",
- "icon": "zendesk.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-sell",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Zendesk Sell Spec",
- "type": "object",
- "required": [ "api_token" ],
- "properties": {
- "api_token": {
- "title": "API token",
- "type": "string",
- "description": "The API token for authenticating to Zendesk Sell",
- "examples": [ "f23yhd630otl94y85a8bf384958473pto95847fd006da49382716or937ruw059" ],
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "325e0640-e7b3-4e24-b823-3361008f603f",
- "name": "Zendesk Sunshine",
- "dockerRepository": "airbyte/source-zendesk-sunshine",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-sunshine",
- "icon": "zendesk-sunshine.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk_sunshine",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Zendesk Sunshine Spec",
- "type": "object",
- "required": [ "start_date", "subdomain" ],
- "additionalProperties": true,
- "properties": {
- "subdomain": {
- "title": "Subdomain",
- "type": "string",
- "description": "The subdomain for your Zendesk Account."
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "The date from which you'd like to replicate data for Zendesk Sunshine API, in the format YYYY-MM-DDT00:00:00Z.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2021-01-01T00:00:00Z" ]
- },
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "auth_method", "client_id", "client_secret", "access_token" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "oauth2.0",
- "enum": [ "oauth2.0" ],
- "default": "oauth2.0",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your OAuth application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your OAuth application.",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Long-term access Token for making authenticated requests.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "API Token",
- "required": [ "auth_method", "api_token", "email" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "api_token",
- "enum": [ "api_token" ],
- "default": "api_token",
- "order": 1
- },
- "api_token": {
- "type": "string",
- "title": "API Token",
- "description": "API Token. See the docs for information on how to generate this key.",
- "airbyte_secret": true
- },
- "email": {
- "type": "string",
- "title": "Email",
- "description": "The user email for your Zendesk account"
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_method" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "subdomain": {
- "type": "string",
- "path_in_connector_config": [ "subdomain" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "79c1aa37-dae3-42ae-b333-d1c105477715",
- "name": "Zendesk Support",
- "dockerRepository": "airbyte/source-zendesk-support",
- "dockerImageTag": "0.2.27",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-support",
- "icon": "zendesk-support.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-support",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Zendesk Support Spec",
- "type": "object",
- "required": [ "start_date", "subdomain" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for Zendesk Support API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "examples": [ "2020-10-15T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "format": "date-time"
- },
- "subdomain": {
- "type": "string",
- "title": "Subdomain",
- "description": "This is your Zendesk subdomain that can be found in your account URL. For example, in https://{MY_SUBDOMAIN}.zendesk.com/, where MY_SUBDOMAIN is the value of your subdomain."
- },
- "credentials": {
- "title": "Authentication",
- "type": "object",
- "description": "Zendesk service provides two authentication methods. Choose between: `OAuth2.0` or `API token`.",
- "oneOf": [ {
- "title": "OAuth2.0",
- "type": "object",
- "required": [ "access_token" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "type": "string",
- "const": "oauth2.0",
- "order": 0
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The value of the API token generated. See the docs for more information.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "API Token",
- "type": "object",
- "required": [ "email", "api_token" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "type": "string",
- "const": "api_token",
- "order": 0
- },
- "email": {
- "title": "Email",
- "type": "string",
- "description": "The user email for your Zendesk account."
- },
- "api_token": {
- "title": "API Token",
- "type": "string",
- "description": "The value of the API token generated. See the docs for more information.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "ignore_pagination": {
- "type": "boolean",
- "default": false,
- "description": "Makes each stream read a single page of data.",
- "title": "Should the connector read the second and further pages of data.",
- "airbyte_hidden": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "credentials" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "subdomain": {
- "type": "string",
- "path_in_connector_config": [ "subdomain" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "${subdomain}.zendesk.com", "zendesk.com" ]
- },
- "maxSecondsBetweenMessages": 10800
- }, {
- "sourceDefinitionId": "c8630570-086d-4a40-99ae-ea5b18673071",
- "name": "Zendesk Talk",
- "dockerRepository": "airbyte/source-zendesk-talk",
- "dockerImageTag": "0.1.7",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-talk",
- "icon": "zendesk-talk.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-talk",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Zendesk Talk Spec",
- "type": "object",
- "required": [ "start_date", "subdomain" ],
- "properties": {
- "subdomain": {
- "type": "string",
- "title": "Subdomain",
- "order": 0,
- "description": "This is your Zendesk subdomain that can be found in your account URL. For example, in https://{MY_SUBDOMAIN}.zendesk.com/, where MY_SUBDOMAIN is the value of your subdomain."
- },
- "credentials": {
- "title": "Authentication",
- "type": "object",
- "order": 1,
- "description": "Zendesk service provides two authentication methods. Choose between: `OAuth2.0` or `API token`.",
- "oneOf": [ {
- "title": "API Token",
- "type": "object",
- "required": [ "email", "api_token" ],
- "additionalProperties": true,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "api_token"
- },
- "email": {
- "title": "Email",
- "type": "string",
- "description": "The user email for your Zendesk account."
- },
- "api_token": {
- "title": "API Token",
- "type": "string",
- "description": "The value of the API token generated. See the docs for more information.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "OAuth2.0",
- "type": "object",
- "required": [ "access_token" ],
- "additionalProperties": true,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "oauth2.0",
- "order": 0
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The value of the API token generated. See the docs for more information.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "order": 2,
- "description": "The date from which you'd like to replicate data for Zendesk Talk API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "examples": [ "2020-10-15T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "subdomain": {
- "type": "string",
- "path_in_connector_config": [ "subdomain" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "${subdomain}.zendesk.com", "zendesk.com" ]
- }
- }, {
- "sourceDefinitionId": "8baba53d-2fe3-4e33-bc85-210d0eb62884",
- "name": "Zenefits",
- "dockerRepository": "airbyte/source-zenefits",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zenefits",
- "icon": "zenefits.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Zenefits Integration Spec",
- "type": "object",
- "required": [ "token" ],
- "additionalProperties": false,
- "properties": {
- "token": {
- "title": "token",
- "type": "string",
- "description": "Use Sync with Zenefits button on the link given on the readme file, and get the token to access the api"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "f1e4c7f6-db5c-4035-981f-d35ab4998794",
- "name": "Zenloop",
- "dockerRepository": "airbyte/source-zenloop",
- "dockerImageTag": "0.1.6",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zenloop",
- "icon": "zenloop.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zenloop",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Zenloop Spec",
- "type": "object",
- "required": [ "api_token" ],
- "properties": {
- "api_token": {
- "type": "string",
- "description": "Zenloop API Token. You can get the API token in settings page here ",
- "airbyte_secret": true
- },
- "date_from": {
- "type": "string",
- "description": "Zenloop date_from. Format: 2021-10-24T03:30:30Z or 2021-10-24. Leave empty if only data from current data should be synced",
- "examples": [ "2021-10-24T03:30:30Z" ]
- },
- "survey_id": {
- "type": "string",
- "description": "Zenloop Survey ID. Can be found here. Leave empty to pull answers from all surveys",
- "airbyte_secret": true
- },
- "survey_group_id": {
- "type": "string",
- "description": "Zenloop Survey Group ID. Can be found by pulling All Survey Groups via SurveyGroups stream. Leave empty to pull answers from all survey groups",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.zenloop.com" ]
- }
- }, {
- "sourceDefinitionId": "cdaf146a-9b75-49fd-9dd2-9d64a0bb4781",
- "name": "Sentry",
- "dockerRepository": "airbyte/source-sentry",
- "dockerImageTag": "0.2.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sentry",
- "icon": "sentry.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sentry",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Sentry Spec",
- "type": "object",
- "required": [ "auth_token", "organization", "project" ],
- "additionalProperties": true,
- "properties": {
- "auth_token": {
- "type": "string",
- "title": "Authentication Tokens",
- "description": "Log into Sentry and then create authentication tokens.For self-hosted, you can find or create authentication tokens by visiting \"{instance_url_prefix}/settings/account/api/auth-tokens/\"",
- "airbyte_secret": true
- },
- "hostname": {
- "type": "string",
- "title": "Host Name",
- "description": "Host name of Sentry API server.For self-hosted, specify your host name here. Otherwise, leave it empty.",
- "default": "sentry.io"
- },
- "organization": {
- "type": "string",
- "title": "Organization",
- "description": "The slug of the organization the groups belong to."
- },
- "project": {
- "type": "string",
- "title": "Project",
- "description": "The name (slug) of the Project you want to sync."
- },
- "discover_fields": {
- "type": "array",
- "item": "string",
- "title": "Discover Event Fields",
- "description": "Fields to retrieve when fetching discover events"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*" ]
- },
- "maxSecondsBetweenMessages": 64800
- }, {
- "sourceDefinitionId": "3dc3037c-5ce8-4661-adc2-f7a9e3c5ece5",
- "name": "Zuora",
- "dockerRepository": "airbyte/source-zuora",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zuora",
- "icon": "zuora.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zuora",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Zuora Connector Configuration",
- "type": "object",
- "required": [ "start_date", "tenant_endpoint", "data_query", "client_id", "client_secret" ],
- "properties": {
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "Start Date in format: YYYY-MM-DD",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
- },
- "window_in_days": {
- "type": "string",
- "title": "Query Window (in days)",
- "description": "The amount of days for each data-chunk begining from start_date. Bigger the value - faster the fetch. (0.1 - as for couple of hours, 1 - as for a Day; 364 - as for a Year).",
- "examples": [ "0.5", "1", "30", "60", "90", "120", "200", "364" ],
- "pattern": "^(0|[1-9]\\d*)(\\.\\d+)?$",
- "default": "90"
- },
- "tenant_endpoint": {
- "title": "Tenant Endpoint Location",
- "type": "string",
- "description": "Please choose the right endpoint where your Tenant is located. More info by this Link",
- "enum": [ "US Production", "US Cloud Production", "US API Sandbox", "US Cloud API Sandbox", "US Central Sandbox", "US Performance Test", "EU Production", "EU API Sandbox", "EU Central Sandbox" ]
- },
- "data_query": {
- "title": "Data Query Type",
- "type": "string",
- "description": "Choose between `Live`, or `Unlimited` - the optimized, replicated database at 12 hours freshness for high volume extraction Link",
- "enum": [ "Live", "Unlimited" ],
- "default": "Live"
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "Your OAuth user Client ID",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "Your OAuth user Client Secret",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "cd06e646-31bf-4dc8-af48-cbc6530fcad3",
- "name": "Kustomer",
- "dockerRepository": "airbyte/source-kustomer-singer",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/kustomer",
- "icon": "kustomer.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/kustomer",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Kustomer Singer Spec",
- "type": "object",
- "required": [ "api_token", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "title": "API Token",
- "type": "string",
- "description": "Kustomer API Token. See the docs on how to obtain this",
- "airbyte_secret": true
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "The date from which you'd like to replicate the data",
- "examples": [ "2019-01-01T00:00:00Z" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "4942d392-c7b5-4271-91f9-3b4f4e51eb3e",
- "name": "ZohoCRM",
- "dockerRepository": "airbyte/source-zoho-crm",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zoho-crm",
- "icon": "zohocrm.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zoho-crm",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Zoho Crm Configuration",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token", "environment", "dc_region", "edition" ],
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "OAuth2.0 Client ID",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "OAuth2.0 Client Secret",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "OAuth2.0 Refresh Token",
- "airbyte_secret": true
- },
- "dc_region": {
- "title": "Data Center Location",
- "type": "string",
- "description": "Please choose the region of your Data Center location. More info by this Link",
- "enum": [ "US", "AU", "EU", "IN", "CN", "JP" ]
- },
- "environment": {
- "title": "Environment",
- "type": "string",
- "description": "Please choose the environment",
- "enum": [ "Production", "Developer", "Sandbox" ]
- },
- "start_datetime": {
- "title": "Start Date",
- "type": [ "string", "null" ],
- "examples": [ "2000-01-01", "2000-01-01 13:00", "2000-01-01 13:00:00", "2000-01-01T13:00+00:00", "2000-01-01T13:00:00-07:00" ],
- "description": "ISO 8601, for instance: `YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS+HH:MM`",
- "format": "date-time"
- },
- "edition": {
- "title": "Zoho CRM Edition",
- "type": "string",
- "description": "Choose your Edition of Zoho CRM to determine API Concurrency Limits",
- "enum": [ "Free", "Standard", "Professional", "Enterprise", "Ultimate" ],
- "default": "Free"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "a827c52e-791c-4135-a245-e233c5255199",
- "name": "SFTP",
- "dockerRepository": "airbyte/source-sftp",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sftp",
- "icon": "sftp.svg",
- "sourceType": "file",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/source/sftp",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "SFTP Source Spec",
- "type": "object",
- "required": [ "user", "host", "port" ],
- "additionalProperties": true,
- "properties": {
- "user": {
- "title": "User Name",
- "description": "The server user",
- "type": "string",
- "order": 0
- },
- "host": {
- "title": "Host Address",
- "description": "The server host address",
- "type": "string",
- "examples": [ "www.host.com", "192.0.2.1" ],
- "order": 1
- },
- "port": {
- "title": "Port",
- "description": "The server port",
- "type": "integer",
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "credentials": {
- "type": "object",
- "title": "Authentication",
- "description": "The server authentication method",
- "order": 3,
- "oneOf": [ {
- "title": "Password Authentication",
- "required": [ "auth_method", "auth_user_password" ],
- "properties": {
- "auth_method": {
- "description": "Connect through password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "auth_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 1
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "auth_method", "auth_ssh_key" ],
- "properties": {
- "auth_method": {
- "description": "Connect through ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "auth_ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- }
- }
- } ]
- },
- "file_types": {
- "title": "File types",
- "description": "Coma separated file types. Currently only 'csv' and 'json' types are supported.",
- "type": "string",
- "default": "csv,json",
- "order": 4,
- "examples": [ "csv,json", "csv" ]
- },
- "folder_path": {
- "title": "Folder Path",
- "description": "The directory to search files for sync",
- "type": "string",
- "default": "",
- "examples": [ "/logs/2022" ],
- "order": 5
- },
- "file_pattern": {
- "title": "File Pattern",
- "description": "The regular expression to specify files for sync in a chosen Folder Path",
- "type": "string",
- "default": "",
- "examples": [ "log-([0-9]{4})([0-9]{2})([0-9]{2}) - This will filter files which `log-yearmmdd`" ],
- "order": 6
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "31e3242f-dee7-4cdc-a4b8-8e06c5458517",
- "name": "SFTP Bulk",
- "dockerRepository": "airbyte/source-sftp-bulk",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sftp-bulk",
- "icon": "sftp.svg",
- "sourceType": "file",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/source/ftp",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "FTP Source Spec",
- "type": "object",
- "required": [ "username", "host", "port", "stream_name", "start_date", "folder_path" ],
- "additionalProperties": true,
- "properties": {
- "username": {
- "title": "User Name",
- "description": "The server user",
- "type": "string",
- "order": 0
- },
- "password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 1
- },
- "private_key": {
- "title": "Private key",
- "description": "The private key",
- "type": "string",
- "multiline": true,
- "order": 2
- },
- "host": {
- "title": "Host Address",
- "description": "The server host address",
- "type": "string",
- "examples": [ "www.host.com", "192.0.2.1" ],
- "order": 3
- },
- "port": {
- "title": "Port",
- "description": "The server port",
- "type": "integer",
- "default": 22,
- "examples": [ "22" ],
- "order": 4
- },
- "stream_name": {
- "title": "Stream name",
- "description": "The name of the stream or table you want to create",
- "type": "string",
- "examples": [ "ftp_contacts" ],
- "order": 5
- },
- "file_type": {
- "title": "File type",
- "description": "The file type you want to sync. Currently only 'csv' and 'json' files are supported.",
- "type": "string",
- "default": "csv",
- "enum": [ "csv", "json" ],
- "order": 6,
- "examples": [ "csv", "json" ]
- },
- "separator": {
- "title": "CSV Separator (Optional)",
- "description": "The separator used in the CSV files. Define None if you want to use the Sniffer functionality",
- "type": "string",
- "default": ",",
- "examples": [ "," ],
- "order": 7
- },
- "folder_path": {
- "title": "Folder Path (Optional)",
- "description": "The directory to search files for sync",
- "type": "string",
- "default": "",
- "examples": [ "/logs/2022" ],
- "order": 8
- },
- "file_pattern": {
- "title": "File Pattern (Optional)",
- "description": "The regular expression to specify files for sync in a chosen Folder Path",
- "type": "string",
- "default": "",
- "examples": [ "log-([0-9]{4})([0-9]{2})([0-9]{2}) - This will filter files which `log-yearmmdd`" ],
- "order": 9
- },
- "file_most_recent": {
- "title": "Most recent file (Optional)",
- "description": "Sync only the most recent file for the configured folder path and file pattern",
- "type": "boolean",
- "default": false,
- "order": 10
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "format": "date-time",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "description": "The date from which you'd like to replicate data for all incremental streams, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "order": 11
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6f2ac653-8623-43c4-8950-19218c7caf3d",
- "name": "Firebolt",
- "dockerRepository": "airbyte/source-firebolt",
- "dockerImageTag": "0.2.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/firebolt",
- "icon": "firebolt.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/firebolt",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Firebolt Spec",
- "type": "object",
- "required": [ "username", "password", "database" ],
- "additionalProperties": true,
- "properties": {
- "username": {
- "type": "string",
- "title": "Username",
- "description": "Firebolt email address you use to login.",
- "examples": [ "username@email.com" ]
- },
- "password": {
- "type": "string",
- "title": "Password",
- "description": "Firebolt password.",
- "airbyte_secret": true
- },
- "account": {
- "type": "string",
- "title": "Account",
- "description": "Firebolt account to login."
- },
- "host": {
- "type": "string",
- "title": "Host",
- "description": "The host name of your Firebolt database.",
- "examples": [ "api.app.firebolt.io" ]
- },
- "database": {
- "type": "string",
- "title": "Database",
- "description": "The database to connect to."
- },
- "engine": {
- "type": "string",
- "title": "Engine",
- "description": "Engine name or url to connect to."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "7cf88806-25f5-4e1a-b422-b2fa9e1b0090",
- "name": "Elasticsearch",
- "dockerRepository": "airbyte/source-elasticsearch",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/elasticsearch",
- "icon": "elasticsearch.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/source/elasticsearch",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Elasticsearch Connection Configuration",
- "type": "object",
- "required": [ "endpoint" ],
- "additionalProperties": true,
- "properties": {
- "endpoint": {
- "title": "Server Endpoint",
- "type": "string",
- "description": "The full url of the Elasticsearch server"
- },
- "authenticationMethod": {
- "title": "Authentication Method",
- "type": "object",
- "description": "The type of authentication to be used",
- "oneOf": [ {
- "title": "None",
- "additionalProperties": true,
- "description": "No authentication will be used",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "none"
- }
- }
- }, {
- "title": "Api Key/Secret",
- "additionalProperties": true,
- "description": "Use a api key and secret combination to authenticate",
- "required": [ "method", "apiKeyId", "apiKeySecret" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "secret"
- },
- "apiKeyId": {
- "title": "API Key ID",
- "description": "The Key ID to used when accessing an enterprise Elasticsearch instance.",
- "type": "string"
- },
- "apiKeySecret": {
- "title": "API Key Secret",
- "description": "The secret associated with the API Key ID.",
- "type": "string",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Username/Password",
- "additionalProperties": true,
- "description": "Basic auth header with a username and password",
- "required": [ "method", "username", "password" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "basic"
- },
- "username": {
- "title": "Username",
- "description": "Basic auth username to access a secure Elasticsearch server",
- "type": "string"
- },
- "password": {
- "title": "Password",
- "description": "Basic auth password to access a secure Elasticsearch server",
- "type": "string",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "03a53b13-794a-4d6b-8544-3b36ed8f3ce4",
- "name": "Waiteraid",
- "dockerRepository": "airbyte/source-waiteraid",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/waiteraid",
- "icon": "waiteraid.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Waiteraid Spec",
- "type": "object",
- "required": [ "start_date", "auth_hash", "restid" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "Start getting data from that date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ]
- },
- "auth_hash": {
- "title": "Authentication Hash",
- "type": "string",
- "description": "Your WaiterAid API key, obtained from API request with Username and Password",
- "airbyte_secret": true
- },
- "restid": {
- "title": "Restaurant ID",
- "type": "string",
- "description": "Your WaiterAid restaurant id from API request to getRestaurants",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "87c58f70-6f7a-4f70-aba5-bab1a458f5ba",
- "name": "Wikipedia Pageviews",
- "dockerRepository": "airbyte/source-wikipedia-pageviews",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/wikipedia-pageviews",
- "icon": "wikipediapageviews.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Wikipedia Pageviews Spec",
- "type": "object",
- "required": [ "project", "access", "agent", "article", "start", "end", "country" ],
- "additionalProperties": true,
- "properties": {
- "project": {
- "type": "string",
- "title": "Project",
- "description": "If you want to filter by project, use the domain of any Wikimedia project.",
- "examples": [ "en.wikipedia.org", "www.mediawiki.org", "commons.wikimedia.org" ]
- },
- "access": {
- "type": "string",
- "title": "Access",
- "description": "If you want to filter by access method, use one of desktop, mobile-app or mobile-web. If you are interested in pageviews regardless of access method, use all-access.",
- "examples": [ "all-access", "desktop", "mobile-app", "mobile-web" ]
- },
- "agent": {
- "type": "string",
- "title": "Agent",
- "description": "If you want to filter by agent type, use one of user, automated or spider. If you are interested in pageviews regardless of agent type, use all-agents.",
- "examples": [ "all-agents", "user", "spider", "automated" ]
- },
- "article": {
- "type": "string",
- "title": "Article",
- "description": "The title of any article in the specified project. Any spaces should be replaced with underscores. It also should be URI-encoded, so that non-URI-safe characters like %, / or ? are accepted.",
- "examples": [ "Are_You_the_One%3F" ]
- },
- "start": {
- "type": "string",
- "title": "Start",
- "description": "The date of the first day to include, in YYYYMMDD or YYYYMMDDHH format."
- },
- "end": {
- "type": "string",
- "title": "End",
- "description": "The date of the last day to include, in YYYYMMDD or YYYYMMDDHH format."
- },
- "country": {
- "type": "string",
- "title": "Country",
- "description": "The ISO 3166-1 alpha-2 code of a country for which to retrieve top articles.",
- "examples": [ "FR", "IN" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "05b0bce2-4ec4-4534-bb1a-5d0127bd91b7",
- "name": "WorkRamp",
- "dockerRepository": "airbyte/source-workramp",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/workramp",
- "icon": "workramp.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/workramp",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Workramp Spec",
- "type": "object",
- "required": [ "api_key", "academy_id" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Token",
- "description": "The API Token for Workramp",
- "airbyte_secret": true
- },
- "academy_id": {
- "type": "string",
- "title": "Academy ID",
- "description": "The id of the Academy"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "7865dce4-2211-4f6a-88e5-9d0fe161afe7",
- "name": "Yandex Metrica",
- "dockerRepository": "airbyte/source-yandex-metrica",
- "dockerImageTag": "1.0.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/yandex-metrica",
- "icon": "yandexmetrica.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/yandex-metrica",
- "connectionSpecification": {
- "$schema": "https://json-schema.org/draft-07/schema#",
- "title": "Yandex Metrica Spec",
- "type": "object",
- "required": [ "auth_token", "counter_id", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "auth_token": {
- "type": "string",
- "title": "Authentication Token",
- "description": "Your Yandex Metrica API access token",
- "airbyte_secret": true,
- "order": 0
- },
- "counter_id": {
- "type": "string",
- "title": "Counter ID",
- "description": "Counter ID",
- "pattern": "^[0-9]+$",
- "order": 1
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "Starting point for your data replication, in format of \"YYYY-MM-DD\".",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "format": "date",
- "examples": [ "2022-01-01" ],
- "order": 2
- },
- "end_date": {
- "title": "End Date",
- "type": "string",
- "description": "Starting point for your data replication, in format of \"YYYY-MM-DD\". If not provided will sync till most recent date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "format": "date",
- "examples": [ "2022-01-01" ],
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api-metrica.yandex.net" ]
- }
- }, {
- "sourceDefinitionId": "",
- "name": "Yotpo",
- "dockerRepository": "airbyte/source-yotpo",
- "dockerImageTag": "1.0.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/yotpo",
- "icon": "yotpo.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/yotpo",
- "connectionSpecification": {
- "$schema": "https://json-schema.org/draft-07/schema#",
- "title": "Yotpo Spec",
- "type": "object",
- "required": [ "access_token", "app_key", "start_date", "email" ],
- "additionalProperties": true,
- "properties": {
- "access_token": {
- "title": "Access Token",
- "type": "string",
- "description": "Access token recieved as a result of API call to https://api.yotpo.com/oauth/token (Ref- https://apidocs.yotpo.com/reference/yotpo-authentication)",
- "airbyte_secret": true
- },
- "app_key": {
- "title": "App Key",
- "type": "string",
- "description": "App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)"
- },
- "start_date": {
- "title": "Date-From Filter",
- "type": "string",
- "description": "Date time filter for incremental filter, Specify which date to extract from.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
- "examples": [
- "2022-03-01T00:00:00.000Z"
- ],
- "format": "date-time"
- },
- "email": {
- "title": "Registered email address",
- "type": "string",
- "description": "Email address registered with yotpo.",
- "default": "example@gmail.com"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "api.yotpo.com" ]
- }
- }, {
- "sourceDefinitionId": "9c74c2d7-531a-4ebf-b6d8-6181f805ecdc",
- "name": "Younium",
- "dockerRepository": "airbyte/source-younium",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/younium",
- "icon": "younium.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/younium",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Younium Spec",
- "type": "object",
- "required": [ "username", "password", "legal_entity" ],
- "properties": {
- "username": {
- "title": "Username",
- "type": "string",
- "description": "Username for Younium account"
- },
- "password": {
- "title": "Password",
- "type": "string",
- "description": "Account password for younium account API key",
- "airbyte_secret": true
- },
- "legal_entity": {
- "title": "Legal Entity",
- "type": "string",
- "description": "Legal Entity that data should be pulled from"
- },
- "playground": {
- "title": "Playground environment",
- "type": "boolean",
- "description": "Property defining if connector is used against playground or production environment",
- "default": false
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "cbfd9856-1322-44fb-bcf1-0b39b7a8e92e",
- "name": "Zoom",
- "dockerRepository": "airbyte/source-zoom",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/zoom",
- "icon": "zoom.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zoom",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Zoom Spec",
- "type": "object",
- "required": [ "jwt_token" ],
- "additionalProperties": true,
- "properties": {
- "jwt_token": {
- "type": "string",
- "description": "JWT Token",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "68b9c98e-0747-4c84-b05b-d30b47686725",
- "name": "Braze",
- "dockerRepository": "airbyte/source-braze",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/braze",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/braze",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Braze Spec",
- "type": "object",
- "additionalProperties": true,
- "required": [ "url", "api_key", "start_date" ],
- "properties": {
- "url": {
- "type": "string",
- "title": "URL",
- "description": "Braze REST API endpoint"
- },
- "api_key": {
- "type": "string",
- "title": "Rest API Key",
- "airbyte_secret": true,
- "description": "Braze REST API key"
- },
- "start_date": {
- "type": "string",
- "format": "date",
- "title": "Start date",
- "description": "Rows after this date will be synced"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- } ]
-}
+{
+ "destinations": [ {
+ "destinationDefinitionId": "b4c5d105-31fd-4817-96b6-cb923bfc04cb",
+ "name": "Azure Blob Storage",
+ "dockerRepository": "airbyte/destination-azure-blob-storage",
+ "dockerImageTag": "0.2.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/azureblobstorage",
+ "icon": "azureblobstorage.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/azureblobstorage",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "AzureBlobStorage Destination Spec",
+ "type": "object",
+ "required": [ "azure_blob_storage_account_name", "azure_blob_storage_account_key", "format" ],
+ "additionalProperties": false,
+ "properties": {
+ "azure_blob_storage_endpoint_domain_name": {
+ "title": "Endpoint Domain Name",
+ "type": "string",
+ "default": "blob.core.windows.net",
+ "description": "This is Azure Blob Storage endpoint domain name. Leave default value (or leave it empty if run container from command line) to use Microsoft native from example.",
+ "examples": [ "blob.core.windows.net" ]
+ },
+ "azure_blob_storage_container_name": {
+ "title": "Azure blob storage container (Bucket) Name",
+ "type": "string",
+ "description": "The name of the Azure blob storage container. If not exists - will be created automatically. May be empty, then will be created automatically airbytecontainer+timestamp",
+ "examples": [ "airbytetescontainername" ]
+ },
+ "azure_blob_storage_account_name": {
+ "title": "Azure Blob Storage account name",
+ "type": "string",
+ "description": "The account's name of the Azure Blob Storage.",
+ "examples": [ "airbyte5storage" ]
+ },
+ "azure_blob_storage_account_key": {
+ "title": "Azure Blob Storage account key",
+ "description": "The Azure blob storage account key.",
+ "airbyte_secret": true,
+ "type": "string",
+ "examples": [ "Z8ZkZpteggFx394vm+PJHnGTvdRncaYS+JhLKdj789YNmD+iyGTnG+PV+POiuYNhBg/ACS+LKjd%4FG3FHGN12Nd==" ]
+ },
+ "azure_blob_storage_output_buffer_size": {
+ "title": "Azure Blob Storage output buffer size (Megabytes)",
+ "type": "integer",
+ "description": "The amount of megabytes to buffer for the output stream to Azure. This will impact memory footprint on workers, but may need adjustment for performance and appropriate block size in Azure.",
+ "minimum": 1,
+ "maximum": 2047,
+ "default": 5,
+ "examples": [ 5 ]
+ },
+ "azure_blob_storage_spill_size": {
+ "title": "Azure Blob Storage file spill size",
+ "type": "integer",
+ "description": "The amount of megabytes after which the connector should spill the records in a new blob object. Make sure to configure size greater than individual records. Enter 0 if not applicable",
+ "default": 500,
+ "examples": [ 500 ]
+ },
+ "format": {
+ "title": "Output Format",
+ "type": "object",
+ "description": "Output data format",
+ "oneOf": [ {
+ "title": "CSV: Comma-Separated Values",
+ "required": [ "format_type", "flattening" ],
+ "properties": {
+ "format_type": {
+ "type": "string",
+ "const": "CSV"
+ },
+ "flattening": {
+ "type": "string",
+ "title": "Normalization (Flattening)",
+ "description": "Whether the input json data should be normalized (flattened) in the output CSV. Please refer to docs for details.",
+ "default": "No flattening",
+ "enum": [ "No flattening", "Root level flattening" ]
+ }
+ }
+ }, {
+ "title": "JSON Lines: newline-delimited JSON",
+ "required": [ "format_type" ],
+ "properties": {
+ "format_type": {
+ "type": "string",
+ "const": "JSONL"
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "resourceRequirements": {
+ "jobSpecific": [ {
+ "jobType": "sync",
+ "resourceRequirements": {
+ "memory_request": "1Gi",
+ "memory_limit": "1Gi"
+ }
+ } ]
+ }
+ }, {
+ "destinationDefinitionId": "0eeee7fb-518f-4045-bacc-9619e31c43ea",
+ "name": "Amazon SQS",
+ "dockerRepository": "airbyte/destination-amazon-sqs",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/amazon-sqs",
+ "icon": "awssqs.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/amazon-sqs",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Amazon Sqs",
+ "type": "object",
+ "required": [ "queue_url", "region" ],
+ "additionalProperties": false,
+ "properties": {
+ "queue_url": {
+ "title": "Queue URL",
+ "description": "URL of the SQS Queue",
+ "type": "string",
+ "examples": [ "https://sqs.eu-west-1.amazonaws.com/1234567890/my-example-queue" ],
+ "order": 0
+ },
+ "region": {
+ "title": "AWS Region",
+ "description": "AWS Region of the SQS Queue",
+ "type": "string",
+ "enum": [ "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
+ "order": 1
+ },
+ "message_delay": {
+ "title": "Message Delay",
+ "description": "Modify the Message Delay of the individual message from the Queue's default (seconds).",
+ "type": "integer",
+ "examples": [ "15" ],
+ "order": 2
+ },
+ "access_key": {
+ "title": "AWS IAM Access Key ID",
+ "description": "The Access Key ID of the AWS IAM Role to use for sending messages",
+ "type": "string",
+ "examples": [ "xxxxxHRNxxx3TBxxxxxx" ],
+ "order": 3,
+ "airbyte_secret": true
+ },
+ "secret_key": {
+ "title": "AWS IAM Secret Key",
+ "description": "The Secret Key of the AWS IAM Role to use for sending messages",
+ "type": "string",
+ "examples": [ "hu+qE5exxxxT6o/ZrKsxxxxxxBhxxXLexxxxxVKz" ],
+ "order": 4,
+ "airbyte_secret": true
+ },
+ "message_body_key": {
+ "title": "Message Body Key",
+ "description": "Use this property to extract the contents of the named key in the input record to use as the SQS message body. If not set, the entire content of the input record data is used as the message body.",
+ "type": "string",
+ "examples": [ "myDataPath" ],
+ "order": 5
+ },
+ "message_group_id": {
+ "title": "Message Group Id",
+ "description": "The tag that specifies that a message belongs to a specific message group. This parameter applies only to, and is REQUIRED by, FIFO queues.",
+ "type": "string",
+ "examples": [ "my-fifo-group" ],
+ "order": 6
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "05c161bf-ca73-4d48-b524-d392be417002",
+ "name": "Apache Doris",
+ "dockerRepository": "airbyte/destination-doris",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/doris",
+ "icon": "apachedoris.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/destinations/doris",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Doris Destination Spec",
+ "type": "object",
+ "required": [ "host", "httpport", "queryport", "username", "database" ],
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database",
+ "type": "string",
+ "order": 0
+ },
+ "httpport": {
+ "title": "HttpPort",
+ "description": "Http Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 8030,
+ "examples": [ "8030" ],
+ "order": 1
+ },
+ "queryport": {
+ "title": "QueryPort",
+ "description": "Query(SQL) Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 9030,
+ "examples": [ "9030" ],
+ "order": 2
+ },
+ "database": {
+ "title": "DataBase Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 3
+ },
+ "username": {
+ "title": "UserName",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 4
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 5
+ }
+ }
+ },
+ "supportsIncremental": false,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "append", "overwrite" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "df65a8f3-9908-451b-aa9b-445462803560",
+ "name": "Apache Iceberg",
+ "dockerRepository": "airbyte/destination-iceberg",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/iceberg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/iceberg",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Iceberg Destination Spec",
+ "type": "object",
+ "required": [ "catalog_config", "storage_config", "format_config" ],
+ "properties": {
+ "catalog_config": {
+ "title": "Iceberg catalog config",
+ "type": "object",
+ "description": "Catalog config of Iceberg.",
+ "oneOf": [ {
+ "title": "HiveCatalog: Use Apache Hive MetaStore",
+ "required": [ "catalog_type", "hive_thrift_uri" ],
+ "properties": {
+ "catalog_type": {
+ "title": "Catalog Type",
+ "type": "string",
+ "default": "Hive",
+ "enum": [ "Hive" ],
+ "order": 0
+ },
+ "hive_thrift_uri": {
+ "title": "Hive Metastore thrift uri",
+ "type": "string",
+ "description": "Hive MetaStore thrift server uri of iceberg catalog.",
+ "examples": [ "host:port" ],
+ "order": 1
+ },
+ "database": {
+ "title": "Default database",
+ "description": "The default database tables are written to if the source does not specify a namespace. The usual value for this field is \"default\".",
+ "type": "string",
+ "default": "default",
+ "examples": [ "default" ],
+ "order": 2
+ }
+ }
+ }, {
+ "title": "HadoopCatalog: Use hierarchical file systems as same as storage config",
+ "description": "A Hadoop catalog doesn’t need to connect to a Hive MetaStore, but can only be used with HDFS or similar file systems that support atomic rename.",
+ "required": [ "catalog_type" ],
+ "properties": {
+ "catalog_type": {
+ "title": "Catalog Type",
+ "type": "string",
+ "default": "Hadoop",
+ "enum": [ "Hadoop" ],
+ "order": 0
+ },
+ "database": {
+ "title": "Default database",
+ "description": "The default database tables are written to if the source does not specify a namespace. The usual value for this field is \"default\".",
+ "type": "string",
+ "default": "default",
+ "examples": [ "default" ],
+ "order": 1
+ }
+ }
+ }, {
+ "title": "JdbcCatalog: Use relational database",
+ "description": "Using a table in a relational database to manage Iceberg tables through JDBC. Read more here. Supporting: PostgreSQL",
+ "required": [ "catalog_type" ],
+ "properties": {
+ "catalog_type": {
+ "title": "Catalog Type",
+ "type": "string",
+ "default": "Jdbc",
+ "enum": [ "Jdbc" ],
+ "order": 0
+ },
+ "database": {
+ "title": "Default schema",
+ "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
+ "type": "string",
+ "default": "public",
+ "examples": [ "public" ],
+ "order": 1
+ },
+ "jdbc_url": {
+ "title": "Jdbc url",
+ "type": "string",
+ "examples": [ "jdbc:postgresql://{host}:{port}/{database}" ],
+ "order": 2
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL. When activating SSL, please select one of the connection modes.",
+ "type": "boolean",
+ "default": false,
+ "order": 5
+ },
+ "catalog_schema": {
+ "title": "schema for Iceberg catalog",
+ "description": "Iceberg catalog metadata tables are written to catalog schema. The usual value for this field is \"public\".",
+ "type": "string",
+ "default": "public",
+ "examples": [ "public" ],
+ "order": 6
+ }
+ }
+ } ],
+ "order": 0
+ },
+ "storage_config": {
+ "title": "Storage config",
+ "type": "object",
+ "description": "Storage config of Iceberg.",
+ "oneOf": [ {
+ "title": "S3",
+ "type": "object",
+ "description": "S3 object storage",
+ "required": [ "storage_type", "access_key_id", "secret_access_key", "s3_warehouse_uri" ],
+ "properties": {
+ "storage_type": {
+ "title": "Storage Type",
+ "type": "string",
+ "default": "S3",
+ "enum": [ "S3" ],
+ "order": 0
+ },
+ "access_key_id": {
+ "type": "string",
+ "description": "The access key ID to access the S3 bucket. Airbyte requires Read and Write permissions to the given bucket. Read more here.",
+ "title": "S3 Key ID",
+ "airbyte_secret": true,
+ "examples": [ "A012345678910EXAMPLE" ],
+ "order": 0
+ },
+ "secret_access_key": {
+ "type": "string",
+ "description": "The corresponding secret to the access key ID. Read more here",
+ "title": "S3 Access Key",
+ "airbyte_secret": true,
+ "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ],
+ "order": 1
+ },
+ "s3_warehouse_uri": {
+ "title": "S3 Warehouse Uri for Iceberg",
+ "type": "string",
+ "description": "The Warehouse Uri for Iceberg",
+ "examples": [ "s3a://my-bucket/path/to/warehouse", "s3://my-bucket/path/to/warehouse" ],
+ "order": 2
+ },
+ "s3_bucket_region": {
+ "title": "S3 Bucket Region",
+ "type": "string",
+ "default": "",
+ "description": "The region of the S3 bucket. See here for all region codes.",
+ "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
+ "order": 3
+ },
+ "s3_endpoint": {
+ "title": "Endpoint",
+ "type": "string",
+ "default": "",
+ "description": "Your S3 endpoint url. Read more here",
+ "examples": [ "http://localhost:9000", "localhost:9000" ],
+ "order": 4
+ },
+ "s3_path_style_access": {
+ "type": "boolean",
+ "description": "Use path style access",
+ "examples": [ true, false ],
+ "default": true,
+ "order": 5
+ }
+ }
+ } ],
+ "order": 1
+ },
+ "format_config": {
+ "title": "File format",
+ "type": "object",
+ "required": [ "format" ],
+ "description": "File format of Iceberg storage.",
+ "properties": {
+ "format": {
+ "title": "File storage format",
+ "type": "string",
+ "default": "Parquet",
+ "description": "",
+ "enum": [ "Parquet", "Avro" ],
+ "order": 0
+ },
+ "flush_batch_size": {
+ "title": "Data file flushing batch size",
+ "description": "Iceberg data file flush batch size. Incoming rows write to cache firstly; When cache size reaches this 'batch size', flush into real Iceberg data file.",
+ "type": "integer",
+ "default": 10000,
+ "order": 1
+ },
+ "auto_compact": {
+ "title": "Auto compact data files",
+ "description": "Auto compact data files when stream close",
+ "type": "boolean",
+ "default": false,
+ "order": 2
+ },
+ "compact_target_file_size_in_mb": {
+ "title": "Target size of compacted data file",
+ "description": "Specify the target size of Iceberg data file when performing a compaction action. ",
+ "type": "integer",
+ "default": 100,
+ "order": 3
+ }
+ },
+ "order": 2
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "99878c90-0fbd-46d3-9d98-ffde879d17fc",
+ "name": "AWS Datalake",
+ "dockerRepository": "airbyte/destination-aws-datalake",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/aws-datalake",
+ "icon": "awsdatalake.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/aws-datalake",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "AWS Datalake Destination Spec",
+ "type": "object",
+ "required": [ "credentials", "region", "bucket_name", "lakeformation_database_name" ],
+ "additionalProperties": false,
+ "properties": {
+ "aws_account_id": {
+ "type": "string",
+ "title": "AWS Account Id",
+ "description": "target aws account id",
+ "examples": [ "111111111111" ],
+ "order": 1
+ },
+ "credentials": {
+ "title": "Authentication mode",
+ "description": "Choose How to Authenticate to AWS.",
+ "type": "object",
+ "oneOf": [ {
+ "type": "object",
+ "title": "IAM Role",
+ "required": [ "role_arn", "credentials_title" ],
+ "properties": {
+ "credentials_title": {
+ "type": "string",
+ "title": "Credentials Title",
+ "description": "Name of the credentials",
+ "const": "IAM Role",
+ "enum": [ "IAM Role" ],
+ "default": "IAM Role",
+ "order": 0
+ },
+ "role_arn": {
+ "title": "Target Role Arn",
+ "type": "string",
+ "description": "Will assume this role to write data to s3",
+ "airbyte_secret": false
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "IAM User",
+ "required": [ "credentials_title", "aws_access_key_id", "aws_secret_access_key" ],
+ "properties": {
+ "credentials_title": {
+ "type": "string",
+ "title": "Credentials Title",
+ "description": "Name of the credentials",
+ "const": "IAM User",
+ "enum": [ "IAM User" ],
+ "default": "IAM User",
+ "order": 0
+ },
+ "aws_access_key_id": {
+ "title": "Access Key Id",
+ "type": "string",
+ "description": "AWS User Access Key Id",
+ "airbyte_secret": true
+ },
+ "aws_secret_access_key": {
+ "title": "Secret Access Key",
+ "type": "string",
+ "description": "Secret Access Key",
+ "airbyte_secret": true
+ }
+ }
+ } ],
+ "order": 2
+ },
+ "region": {
+ "title": "S3 Bucket Region",
+ "type": "string",
+ "default": "",
+ "description": "The region of the S3 bucket. See here for all region codes.",
+ "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
+ "order": 3
+ },
+ "bucket_name": {
+ "title": "S3 Bucket Name",
+ "type": "string",
+ "description": "The name of the S3 bucket. Read more here.",
+ "order": 4
+ },
+ "bucket_prefix": {
+ "title": "Target S3 Bucket Prefix",
+ "type": "string",
+ "description": "S3 prefix",
+ "order": 5
+ },
+ "lakeformation_database_name": {
+ "title": "Lake Formation Database Name",
+ "type": "string",
+ "description": "The default database this destination will use to create tables in per stream. Can be changed per connection by customizing the namespace.",
+ "order": 6
+ },
+ "lakeformation_database_default_tag_key": {
+ "title": "Lake Formation Database Tag Key",
+ "description": "Add a default tag key to databases created by this destination",
+ "examples": [ "pii_level" ],
+ "type": "string",
+ "order": 7
+ },
+ "lakeformation_database_default_tag_values": {
+ "title": "Lake Formation Database Tag Values",
+ "description": "Add default values for the `Tag Key` to databases created by this destination. Comma separate for multiple values.",
+ "examples": [ "private,public" ],
+ "type": "string",
+ "order": 8
+ },
+ "lakeformation_governed_tables": {
+ "title": "Lake Formation Governed Tables",
+ "description": "Whether to create tables as LF governed tables.",
+ "type": "boolean",
+ "default": false,
+ "order": 9
+ },
+ "format": {
+ "title": "Output Format *",
+ "type": "object",
+ "description": "Format of the data output.",
+ "oneOf": [ {
+ "title": "JSON Lines: Newline-delimited JSON",
+ "required": [ "format_type" ],
+ "properties": {
+ "format_type": {
+ "title": "Format Type *",
+ "type": "string",
+ "enum": [ "JSONL" ],
+ "default": "JSONL"
+ },
+ "compression_codec": {
+ "title": "Compression Codec (Optional)",
+ "description": "The compression algorithm used to compress data.",
+ "type": "string",
+ "enum": [ "UNCOMPRESSED", "GZIP" ],
+ "default": "UNCOMPRESSED"
+ }
+ }
+ }, {
+ "title": "Parquet: Columnar Storage",
+ "required": [ "format_type" ],
+ "properties": {
+ "format_type": {
+ "title": "Format Type *",
+ "type": "string",
+ "enum": [ "Parquet" ],
+ "default": "Parquet"
+ },
+ "compression_codec": {
+ "title": "Compression Codec (Optional)",
+ "description": "The compression algorithm used to compress data.",
+ "type": "string",
+ "enum": [ "UNCOMPRESSED", "SNAPPY", "GZIP", "ZSTD" ],
+ "default": "SNAPPY"
+ }
+ }
+ } ],
+ "order": 10
+ },
+ "partitioning": {
+ "title": "Choose how to partition data",
+ "description": "Partition data by cursor fields when a cursor field is a date",
+ "type": "string",
+ "enum": [ "NO PARTITIONING", "DATE", "YEAR", "MONTH", "DAY", "YEAR/MONTH", "YEAR/MONTH/DAY" ],
+ "default": "NO PARTITIONING",
+ "order": 11
+ },
+ "glue_catalog_float_as_decimal": {
+ "title": "Glue Catalog: Float as Decimal",
+ "description": "Cast float/double as decimal(38,18). This can help achieve higher accuracy and represent numbers correctly as received from the source.",
+ "type": "boolean",
+ "default": false,
+ "order": 12
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "22f6c74f-5699-40ff-833c-4a879ea40133",
+ "name": "BigQuery",
+ "dockerRepository": "airbyte/destination-bigquery",
+ "dockerImageTag": "1.3.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
+ "icon": "bigquery.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "BigQuery Destination Spec",
+ "type": "object",
+ "required": [ "project_id", "dataset_location", "dataset_id" ],
+ "additionalProperties": true,
+ "properties": {
+ "project_id": {
+ "type": "string",
+ "description": "The GCP project ID for the project containing the target BigQuery dataset. Read more here.",
+ "title": "Project ID",
+ "order": 0
+ },
+ "dataset_location": {
+ "type": "string",
+ "description": "The location of the dataset. Warning: Changes made after creation will not be applied. Read more here.",
+ "title": "Dataset Location",
+ "order": 1,
+ "enum": [ "US", "EU", "asia-east1", "asia-east2", "asia-northeast1", "asia-northeast2", "asia-northeast3", "asia-south1", "asia-south2", "asia-southeast1", "asia-southeast2", "australia-southeast1", "australia-southeast2", "europe-central1", "europe-central2", "europe-north1", "europe-southwest1", "europe-west1", "europe-west2", "europe-west3", "europe-west4", "europe-west6", "europe-west7", "europe-west8", "europe-west9", "me-west1", "northamerica-northeast1", "northamerica-northeast2", "southamerica-east1", "southamerica-west1", "us-central1", "us-east1", "us-east2", "us-east3", "us-east4", "us-east5", "us-west1", "us-west2", "us-west3", "us-west4" ]
+ },
+ "dataset_id": {
+ "type": "string",
+ "description": "The default BigQuery Dataset ID that tables are replicated to if the source does not specify a namespace. Read more here.",
+ "title": "Default Dataset ID",
+ "order": 2
+ },
+ "loading_method": {
+ "type": "object",
+ "title": "Loading Method",
+ "description": "Loading method used to send select the way data will be uploaded to BigQuery.
Standard Inserts - Direct uploading using SQL INSERT statements. This method is extremely inefficient and provided only for quick testing. In almost all cases, you should use staging.
GCS Staging - Writes large batches of records to a file, uploads the file to GCS, then uses COPY INTO table to upload the file. Recommended for most workloads for better speed and scalability. Read more about GCS Staging here.",
+ "order": 3,
+ "oneOf": [ {
+ "title": "Standard Inserts",
+ "required": [ "method" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "Standard"
+ }
+ }
+ }, {
+ "title": "GCS Staging",
+ "required": [ "method", "gcs_bucket_name", "gcs_bucket_path", "credential" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "GCS Staging",
+ "order": 0
+ },
+ "credential": {
+ "title": "Credential",
+ "description": "An HMAC key is a type of credential and can be associated with a service account or a user account in Cloud Storage. Read more here.",
+ "type": "object",
+ "order": 1,
+ "oneOf": [ {
+ "title": "HMAC key",
+ "required": [ "credential_type", "hmac_key_access_id", "hmac_key_secret" ],
+ "properties": {
+ "credential_type": {
+ "type": "string",
+ "const": "HMAC_KEY",
+ "order": 0
+ },
+ "hmac_key_access_id": {
+ "type": "string",
+ "description": "HMAC key access ID. When linked to a service account, this ID is 61 characters long; when linked to a user account, it is 24 characters long.",
+ "title": "HMAC Key Access ID",
+ "airbyte_secret": true,
+ "examples": [ "1234567890abcdefghij1234" ],
+ "order": 1
+ },
+ "hmac_key_secret": {
+ "type": "string",
+ "description": "The corresponding secret for the access ID. It is a 40-character base-64 encoded string.",
+ "title": "HMAC Key Secret",
+ "airbyte_secret": true,
+ "examples": [ "1234567890abcdefghij1234567890ABCDEFGHIJ" ],
+ "order": 2
+ }
+ }
+ } ]
+ },
+ "gcs_bucket_name": {
+ "title": "GCS Bucket Name",
+ "type": "string",
+ "description": "The name of the GCS bucket. Read more here.",
+ "examples": [ "airbyte_sync" ],
+ "order": 2
+ },
+ "gcs_bucket_path": {
+ "title": "GCS Bucket Path",
+ "description": "Directory under the GCS bucket where data will be written.",
+ "type": "string",
+ "examples": [ "data_sync/test" ],
+ "order": 3
+ },
+ "keep_files_in_gcs-bucket": {
+ "type": "string",
+ "description": "This upload method is supposed to temporary store records in GCS bucket. By this select you can chose if these records should be removed from GCS when migration has finished. The default \"Delete all tmp files from GCS\" value is used if not set explicitly.",
+ "title": "GCS Tmp Files Afterward Processing",
+ "default": "Delete all tmp files from GCS",
+ "enum": [ "Delete all tmp files from GCS", "Keep all tmp files in GCS" ],
+ "order": 4
+ },
+ "file_buffer_count": {
+ "title": "File Buffer Count",
+ "type": "integer",
+ "minimum": 10,
+ "maximum": 50,
+ "default": 10,
+ "description": "Number of file buffers allocated for writing data. Increasing this number is beneficial for connections using Change Data Capture (CDC) and up to the number of streams within a connection. Increasing the number of file buffers past the maximum number of streams has deteriorating effects",
+ "examples": [ "10" ],
+ "order": 5
+ }
+ }
+ } ]
+ },
+ "credentials_json": {
+ "type": "string",
+ "description": "The contents of the JSON service account key. Check out the docs if you need help generating this key. Default credentials will be used if this field is left empty.",
+ "title": "Service Account Key JSON (Required for cloud, optional for open-source)",
+ "airbyte_secret": true,
+ "order": 4,
+ "always_show": true
+ },
+ "transformation_priority": {
+ "type": "string",
+ "description": "Interactive run type means that the query is executed as soon as possible, and these queries count towards concurrent rate limit and daily limit. Read more about interactive run type here. Batch queries are queued and started as soon as idle resources are available in the BigQuery shared resource pool, which usually occurs within a few minutes. Batch queries don’t count towards your concurrent rate limit. Read more about batch queries here. The default \"interactive\" value is used if not set explicitly.",
+ "title": "Transformation Query Run Type",
+ "default": "interactive",
+ "enum": [ "interactive", "batch" ],
+ "order": 5
+ },
+ "big_query_client_buffer_size_mb": {
+ "title": "Google BigQuery Client Chunk Size",
+ "description": "Google BigQuery client's chunk (buffer) size (MIN=1, MAX = 15) for each table. The size that will be written by a single RPC. Written data will be buffered and only flushed upon reaching this size or closing the channel. The default 15MB value is used if not set explicitly. Read more here.",
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 15,
+ "default": 15,
+ "examples": [ "15" ],
+ "order": 6
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "resourceRequirements": {
+ "jobSpecific": [ {
+ "jobType": "sync",
+ "resourceRequirements": {
+ "memory_request": "1Gi",
+ "memory_limit": "1Gi"
+ }
+ } ]
+ },
+ "normalizationConfig": {
+ "normalizationRepository": "airbyte/normalization",
+ "normalizationTag": "0.4.0",
+ "normalizationIntegrationType": "bigquery"
+ },
+ "supportsDbt": true
+ }, {
+ "destinationDefinitionId": "079d5540-f236-4294-ba7c-ade8fd918496",
+ "name": "BigQuery (denormalized typed struct)",
+ "dockerRepository": "airbyte/destination-bigquery-denormalized",
+ "dockerImageTag": "1.3.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
+ "icon": "bigquery.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "BigQuery Denormalized Typed Struct Destination Spec",
+ "type": "object",
+ "required": [ "project_id", "dataset_id" ],
+ "additionalProperties": true,
+ "properties": {
+ "project_id": {
+ "type": "string",
+ "description": "The GCP project ID for the project containing the target BigQuery dataset. Read more here.",
+ "title": "Project ID",
+ "order": 0
+ },
+ "dataset_id": {
+ "type": "string",
+ "description": "The default BigQuery Dataset ID that tables are replicated to if the source does not specify a namespace. Read more here.",
+ "title": "Default Dataset ID",
+ "order": 1
+ },
+ "loading_method": {
+ "type": "object",
+ "title": "Loading Method",
+ "description": "Loading method used to send select the way data will be uploaded to BigQuery.
Standard Inserts - Direct uploading using SQL INSERT statements. This method is extremely inefficient and provided only for quick testing. In almost all cases, you should use staging.
GCS Staging - Writes large batches of records to a file, uploads the file to GCS, then uses COPY INTO table to upload the file. Recommended for most workloads for better speed and scalability. Read more about GCS Staging here.",
+ "order": 2,
+ "oneOf": [ {
+ "title": "Standard Inserts",
+ "required": [ "method" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "Standard"
+ }
+ }
+ }, {
+ "title": "GCS Staging",
+ "type": "object",
+ "required": [ "method", "gcs_bucket_name", "gcs_bucket_path", "credential" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "GCS Staging",
+ "order": 0
+ },
+ "credential": {
+ "title": "Credential",
+ "description": "An HMAC key is a type of credential and can be associated with a service account or a user account in Cloud Storage. Read more here.",
+ "type": "object",
+ "order": 1,
+ "oneOf": [ {
+ "title": "HMAC key",
+ "order": 0,
+ "required": [ "credential_type", "hmac_key_access_id", "hmac_key_secret" ],
+ "properties": {
+ "credential_type": {
+ "type": "string",
+ "const": "HMAC_KEY",
+ "order": 0
+ },
+ "hmac_key_access_id": {
+ "type": "string",
+ "description": "HMAC key access ID. When linked to a service account, this ID is 61 characters long; when linked to a user account, it is 24 characters long.",
+ "title": "HMAC Key Access ID",
+ "airbyte_secret": true,
+ "examples": [ "1234567890abcdefghij1234" ],
+ "order": 1
+ },
+ "hmac_key_secret": {
+ "type": "string",
+ "description": "The corresponding secret for the access ID. It is a 40-character base-64 encoded string.",
+ "title": "HMAC Key Secret",
+ "airbyte_secret": true,
+ "examples": [ "1234567890abcdefghij1234567890ABCDEFGHIJ" ],
+ "order": 2
+ }
+ }
+ } ]
+ },
+ "gcs_bucket_name": {
+ "title": "GCS Bucket Name",
+ "type": "string",
+ "description": "The name of the GCS bucket. Read more here.",
+ "examples": [ "airbyte_sync" ],
+ "order": 2
+ },
+ "gcs_bucket_path": {
+ "title": "GCS Bucket Path",
+ "description": "Directory under the GCS bucket where data will be written. Read more here.",
+ "type": "string",
+ "examples": [ "data_sync/test" ],
+ "order": 3
+ },
+ "keep_files_in_gcs-bucket": {
+ "type": "string",
+ "description": "This upload method is supposed to temporary store records in GCS bucket. By this select you can chose if these records should be removed from GCS when migration has finished. The default \"Delete all tmp files from GCS\" value is used if not set explicitly.",
+ "title": "GCS Tmp Files Afterward Processing",
+ "default": "Delete all tmp files from GCS",
+ "enum": [ "Delete all tmp files from GCS", "Keep all tmp files in GCS" ],
+ "order": 4
+ },
+ "file_buffer_count": {
+ "title": "File Buffer Count",
+ "type": "integer",
+ "minimum": 10,
+ "maximum": 50,
+ "default": 10,
+ "description": "Number of file buffers allocated for writing data. Increasing this number is beneficial for connections using Change Data Capture (CDC) and up to the number of streams within a connection. Increasing the number of file buffers past the maximum number of streams has deteriorating effects",
+ "examples": [ "10" ],
+ "order": 5
+ }
+ }
+ } ]
+ },
+ "credentials_json": {
+ "type": "string",
+ "description": "The contents of the JSON service account key. Check out the docs if you need help generating this key. Default credentials will be used if this field is left empty.",
+ "title": "Service Account Key JSON (Required for cloud, optional for open-source)",
+ "airbyte_secret": true,
+ "order": 3,
+ "always_show": true
+ },
+ "dataset_location": {
+ "type": "string",
+ "description": "The location of the dataset. Warning: Changes made after creation will not be applied. The default \"US\" value is used if not set explicitly. Read more here.",
+ "title": "Dataset Location",
+ "default": "US",
+ "order": 4,
+ "enum": [ "US", "EU", "asia-east1", "asia-east2", "asia-northeast1", "asia-northeast2", "asia-northeast3", "asia-south1", "asia-south2", "asia-southeast1", "asia-southeast2", "australia-southeast1", "australia-southeast2", "europe-central1", "europe-central2", "europe-north1", "europe-southwest1", "europe-west1", "europe-west2", "europe-west3", "europe-west4", "europe-west6", "europe-west7", "europe-west8", "europe-west9", "me-west1", "northamerica-northeast1", "northamerica-northeast2", "southamerica-east1", "southamerica-west1", "us-central1", "us-east1", "us-east2", "us-east3", "us-east4", "us-east5", "us-west1", "us-west2", "us-west3", "us-west4" ]
+ },
+ "big_query_client_buffer_size_mb": {
+ "title": "Google BigQuery Client Chunk Size",
+ "description": "Google BigQuery client's chunk (buffer) size (MIN=1, MAX = 15) for each table. The size that will be written by a single RPC. Written data will be buffered and only flushed upon reaching this size or closing the channel. The default 15MB value is used if not set explicitly. Read more here.",
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 15,
+ "default": 15,
+ "examples": [ "15" ],
+ "order": 5
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "resourceRequirements": {
+ "jobSpecific": [ {
+ "jobType": "sync",
+ "resourceRequirements": {
+ "memory_request": "1Gi",
+ "memory_limit": "1Gi"
+ }
+ } ]
+ }
+ }, {
+ "destinationDefinitionId": "707456df-6f4f-4ced-b5c6-03f73bcad1c5",
+ "name": "Cassandra",
+ "dockerRepository": "airbyte/destination-cassandra",
+ "dockerImageTag": "0.1.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/cassandra",
+ "icon": "cassandra.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/cassandra",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Cassandra Destination Spec",
+ "type": "object",
+ "required": [ "keyspace", "username", "password", "address", "port" ],
+ "additionalProperties": true,
+ "properties": {
+ "keyspace": {
+ "title": "Keyspace",
+ "description": "Default Cassandra keyspace to create data in.",
+ "type": "string",
+ "order": 0
+ },
+ "username": {
+ "title": "Username",
+ "description": "Username to use to access Cassandra.",
+ "type": "string",
+ "order": 1
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with Cassandra.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "address": {
+ "title": "Address",
+ "description": "Address to connect to.",
+ "type": "string",
+ "examples": [ "localhost,127.0.0.1" ],
+ "order": 3
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of Cassandra.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 9042,
+ "order": 4
+ },
+ "datacenter": {
+ "title": "Datacenter",
+ "description": "Datacenter of the cassandra cluster.",
+ "type": "string",
+ "default": "datacenter1",
+ "order": 5
+ },
+ "replication": {
+ "title": "Replication factor",
+ "type": "integer",
+ "description": "Indicates to how many nodes the data should be replicated to.",
+ "default": 1,
+ "order": 6
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "e088acb6-9780-4568-880c-54c2dd7f431b",
+ "name": "Cumul.io",
+ "dockerRepository": "airbyte/destination-cumulio",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/cumulio",
+ "icon": "cumulio.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/cumulio",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Cumulio",
+ "type": "object",
+ "required": [ "api_host", "api_key", "api_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_host": {
+ "title": "Cumul.io API Host URL",
+ "description": "URL of the Cumul.io API (e.g. 'https://api.cumul.io', 'https://api.us.cumul.io', or VPC-specific API url). Defaults to 'https://api.cumul.io'.",
+ "default": "https://api.cumul.io",
+ "type": "string",
+ "order": 0
+ },
+ "api_key": {
+ "title": "Cumul.io API Key",
+ "description": "An API key generated in Cumul.io's platform (can be generated here: https://app.cumul.io/start/profile/integration).",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "api_token": {
+ "title": "Cumul.io API Token",
+ "description": "The corresponding API token generated in Cumul.io's platform (can be generated here: https://app.cumul.io/start/profile/integration).",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 2
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "81740ce8-d764-4ea7-94df-16bb41de36ae",
+ "name": "Chargify (Keen)",
+ "dockerRepository": "airbyte/destination-keen",
+ "dockerImageTag": "0.2.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/keen",
+ "icon": "chargify.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/keen",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Keen Spec",
+ "type": "object",
+ "required": [ "project_id", "api_key" ],
+ "additionalProperties": false,
+ "properties": {
+ "project_id": {
+ "description": "To get Keen Project ID, navigate to the Access tab from the left-hand, side panel and check the Project Details section.",
+ "title": "Project ID",
+ "type": "string",
+ "examples": [ "58b4acc22ba938934e888322e" ]
+ },
+ "api_key": {
+ "title": "API Key",
+ "description": "To get Keen Master API Key, navigate to the Access tab from the left-hand, side panel and check the Project Details section.",
+ "type": "string",
+ "examples": [ "ABCDEFGHIJKLMNOPRSTUWXYZ" ],
+ "airbyte_secret": true
+ },
+ "infer_timestamp": {
+ "title": "Infer Timestamp",
+ "description": "Allow connector to guess keen.timestamp value based on the streamed data.",
+ "type": "boolean",
+ "default": true
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "ce0d828e-1dc4-496c-b122-2da42e637e48",
+ "name": "Clickhouse",
+ "dockerRepository": "airbyte/destination-clickhouse",
+ "dockerImageTag": "0.2.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/clickhouse",
+ "icon": "clickhouse.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/clickhouse",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "ClickHouse Destination Spec",
+ "type": "object",
+ "required": [ "host", "port", "database", "username" ],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "HTTP port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 8123,
+ "examples": [ "8123" ],
+ "order": 1
+ },
+ "database": {
+ "title": "DB Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 5
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL.",
+ "type": "boolean",
+ "default": false,
+ "order": 6
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [ {
+ "title": "No Tunnel",
+ "required": [ "tunnel_method" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "SSH Key Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Password Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "normalizationConfig": {
+ "normalizationRepository": "airbyte/normalization-clickhouse",
+ "normalizationTag": "0.4.0",
+ "normalizationIntegrationType": "clickhouse"
+ },
+ "supportsDbt": false
+ }, {
+ "destinationDefinitionId": "0fb07be9-7c3b-4336-850d-5efc006152ee",
+ "name": "Cloudflare R2",
+ "dockerRepository": "airbyte/destination-r2",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/r2",
+ "icon": "cloudflare-r2.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/r2",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "R2 Destination Spec",
+ "type": "object",
+ "required": [ "account_id", "access_key_id", "secret_access_key", "s3_bucket_name", "s3_bucket_path", "format" ],
+ "properties": {
+ "account_id": {
+ "type": "string",
+ "description": "Cloudflare account ID",
+ "title": "Cloudflare account ID",
+ "examples": [ "12345678aa1a1a11111aaa1234567abc" ],
+ "order": 0
+ },
+ "access_key_id": {
+ "type": "string",
+ "description": "The access key ID to access the R2 bucket. Airbyte requires Read and Write permissions to the given bucket. Read more here.",
+ "title": "R2 Key ID",
+ "airbyte_secret": true,
+ "examples": [ "A012345678910EXAMPLE" ],
+ "order": 1
+ },
+ "secret_access_key": {
+ "type": "string",
+ "description": "The corresponding secret to the access key ID. Read more here",
+ "title": "R2 Access Key",
+ "airbyte_secret": true,
+ "examples": [ "a012345678910ABCDEFGHAbCdEfGhEXAMPLEKEY" ],
+ "order": 2
+ },
+ "s3_bucket_name": {
+ "title": "R2 Bucket Name",
+ "type": "string",
+ "description": "The name of the R2 bucket. Read more here.",
+ "examples": [ "r2_sync" ],
+ "order": 3
+ },
+ "s3_bucket_path": {
+ "title": "R2 Bucket Path",
+ "description": "Directory under the R2 bucket where data will be written.",
+ "type": "string",
+ "examples": [ "data_sync/test" ],
+ "order": 4
+ },
+ "format": {
+ "title": "Output Format",
+ "type": "object",
+ "description": "Format of the data output. See here for more details",
+ "oneOf": [ {
+ "title": "Avro: Apache Avro",
+ "required": [ "format_type", "compression_codec" ],
+ "properties": {
+ "format_type": {
+ "title": "Format Type",
+ "type": "string",
+ "enum": [ "Avro" ],
+ "default": "Avro",
+ "order": 0
+ },
+ "compression_codec": {
+ "title": "Compression Codec",
+ "description": "The compression algorithm used to compress data. Default to no compression.",
+ "type": "object",
+ "oneOf": [ {
+ "title": "No Compression",
+ "required": [ "codec" ],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": [ "no compression" ],
+ "default": "no compression"
+ }
+ }
+ }, {
+ "title": "Deflate",
+ "required": [ "codec", "compression_level" ],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": [ "Deflate" ],
+ "default": "Deflate"
+ },
+ "compression_level": {
+ "title": "Deflate Level",
+ "description": "0: no compression & fastest, 9: best compression & slowest.",
+ "type": "integer",
+ "default": 0,
+ "minimum": 0,
+ "maximum": 9
+ }
+ }
+ }, {
+ "title": "bzip2",
+ "required": [ "codec" ],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": [ "bzip2" ],
+ "default": "bzip2"
+ }
+ }
+ }, {
+ "title": "xz",
+ "required": [ "codec", "compression_level" ],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": [ "xz" ],
+ "default": "xz"
+ },
+ "compression_level": {
+ "title": "Compression Level",
+ "description": "See here for details.",
+ "type": "integer",
+ "default": 6,
+ "minimum": 0,
+ "maximum": 9
+ }
+ }
+ }, {
+ "title": "zstandard",
+ "required": [ "codec", "compression_level" ],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": [ "zstandard" ],
+ "default": "zstandard"
+ },
+ "compression_level": {
+ "title": "Compression Level",
+ "description": "Negative levels are 'fast' modes akin to lz4 or snappy, levels above 9 are generally for archival purposes, and levels above 18 use a lot of memory.",
+ "type": "integer",
+ "default": 3,
+ "minimum": -5,
+ "maximum": 22
+ },
+ "include_checksum": {
+ "title": "Include Checksum",
+ "description": "If true, include a checksum with each data block.",
+ "type": "boolean",
+ "default": false
+ }
+ }
+ }, {
+ "title": "snappy",
+ "required": [ "codec" ],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": [ "snappy" ],
+ "default": "snappy"
+ }
+ }
+ } ],
+ "order": 1
+ }
+ }
+ }, {
+ "title": "CSV: Comma-Separated Values",
+ "required": [ "format_type", "flattening" ],
+ "properties": {
+ "format_type": {
+ "title": "Format Type",
+ "type": "string",
+ "enum": [ "CSV" ],
+ "default": "CSV"
+ },
+ "flattening": {
+ "type": "string",
+ "title": "Normalization (Flattening)",
+ "description": "Whether the input json data should be normalized (flattened) in the output CSV. Please refer to docs for details.",
+ "default": "No flattening",
+ "enum": [ "No flattening", "Root level flattening" ]
+ },
+ "compression": {
+ "title": "Compression",
+ "type": "object",
+ "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".csv.gz\").",
+ "oneOf": [ {
+ "title": "No Compression",
+ "requires": [ "compression_type" ],
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": [ "No Compression" ],
+ "default": "No Compression"
+ }
+ }
+ }, {
+ "title": "GZIP",
+ "requires": [ "compression_type" ],
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": [ "GZIP" ],
+ "default": "GZIP"
+ }
+ }
+ } ]
+ }
+ }
+ }, {
+ "title": "JSON Lines: Newline-delimited JSON",
+ "required": [ "format_type" ],
+ "properties": {
+ "format_type": {
+ "title": "Format Type",
+ "type": "string",
+ "enum": [ "JSONL" ],
+ "default": "JSONL"
+ },
+ "compression": {
+ "title": "Compression",
+ "type": "object",
+ "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".jsonl.gz\").",
+ "oneOf": [ {
+ "title": "No Compression",
+ "requires": "compression_type",
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": [ "No Compression" ],
+ "default": "No Compression"
+ }
+ }
+ }, {
+ "title": "GZIP",
+ "requires": "compression_type",
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": [ "GZIP" ],
+ "default": "GZIP"
+ }
+ }
+ } ]
+ }
+ }
+ } ],
+ "order": 5
+ },
+ "s3_path_format": {
+ "title": "R2 Path Format",
+ "description": "Format string on how data will be organized inside the R2 bucket directory. Read more here",
+ "type": "string",
+ "examples": [ "${NAMESPACE}/${STREAM_NAME}/${YEAR}_${MONTH}_${DAY}_${EPOCH}_" ],
+ "order": 6
+ },
+ "file_name_pattern": {
+ "type": "string",
+ "description": "The pattern allows you to set the file-name format for the R2 staging file(s)",
+ "title": "R2 Filename pattern",
+ "examples": [ "{date}", "{date:yyyy_MM}", "{timestamp}", "{part_number}", "{sync_id}" ],
+ "order": 7
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "3eb4d99c-11fa-4561-a259-fc88e0c2f8f4",
+ "name": "Convex",
+ "dockerRepository": "airbyte/destination-convex",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.io/integrations/destinations/convex",
+ "icon": "convex.svg",
+ "spec": {
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Convex",
+ "type": "object",
+ "required": [ "deployment_url", "access_key" ],
+ "properties": {
+ "deployment_url": {
+ "type": "string",
+ "title": "Deployment Url",
+ "examples": [ "https://murky-swan-635.convex.cloud", "https://cluttered-owl-337.convex.cloud" ]
+ },
+ "access_key": {
+ "type": "string",
+ "title": "Access Key",
+ "description": "API access key used to retrieve data from Convex.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "4528e960-6f7b-4412-8555-7e0097e1da17",
+ "name": "Starburst Galaxy",
+ "dockerRepository": "airbyte/destination-starburst-galaxy",
+ "dockerImageTag": "0.0.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/starburst-galaxy",
+ "icon": "starburst-galaxy.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/starburst-galaxy",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Starburst Galaxy Destination Spec",
+ "type": "object",
+ "required": [ "accept_terms", "server_hostname", "username", "password", "catalog", "staging_object_store" ],
+ "properties": {
+ "accept_terms": {
+ "title": "Agree to the Starburst Galaxy terms & conditions",
+ "type": "boolean",
+ "description": "You must agree to the Starburst Galaxy terms & conditions to use this connector.",
+ "default": false,
+ "order": 1
+ },
+ "server_hostname": {
+ "title": "Hostname",
+ "type": "string",
+ "description": "Starburst Galaxy cluster hostname.",
+ "examples": [ "abc-12345678-wxyz.trino.galaxy-demo.io" ],
+ "order": 2
+ },
+ "port": {
+ "title": "Port",
+ "type": "string",
+ "description": "Starburst Galaxy cluster port.",
+ "default": "443",
+ "examples": [ "443" ],
+ "order": 3
+ },
+ "username": {
+ "title": "User",
+ "type": "string",
+ "description": "Starburst Galaxy user.",
+ "examples": [ "user@example.com" ],
+ "order": 4
+ },
+ "password": {
+ "title": "Password",
+ "type": "string",
+ "description": "Starburst Galaxy password for the specified user.",
+ "examples": [ "password" ],
+ "airbyte_secret": true,
+ "order": 5
+ },
+ "catalog": {
+ "title": "Amazon S3 catalog",
+ "type": "string",
+ "description": "Name of the Starburst Galaxy Amazon S3 catalog.",
+ "examples": [ "sample_s3_catalog" ],
+ "order": 6
+ },
+ "catalog_schema": {
+ "title": "Amazon S3 catalog schema",
+ "type": "string",
+ "description": "The default Starburst Galaxy Amazon S3 catalog schema where tables are written to if the source does not specify a namespace. Defaults to \"public\".",
+ "default": "public",
+ "examples": [ "public" ],
+ "order": 7
+ },
+ "staging_object_store": {
+ "title": "Staging object store",
+ "type": "object",
+ "description": "Temporary storage on which temporary Iceberg table is created.",
+ "oneOf": [ {
+ "title": "Amazon S3",
+ "required": [ "object_store_type", "s3_bucket_name", "s3_bucket_path", "s3_bucket_region", "s3_access_key_id", "s3_secret_access_key" ],
+ "properties": {
+ "object_store_type": {
+ "type": "string",
+ "enum": [ "S3" ],
+ "default": "S3",
+ "order": 1
+ },
+ "s3_bucket_name": {
+ "title": "S3 bucket name",
+ "type": "string",
+ "description": "Name of the S3 bucket",
+ "examples": [ "airbyte_staging" ],
+ "order": 1
+ },
+ "s3_bucket_path": {
+ "title": "S3 bucket path",
+ "type": "string",
+ "description": "Directory in the S3 bucket where staging data is stored.",
+ "examples": [ "temp_airbyte__sync/test" ],
+ "order": 2
+ },
+ "s3_bucket_region": {
+ "title": "S3 bucket region",
+ "type": "string",
+ "default": "us-east-1",
+ "description": "The region of the S3 bucket.",
+ "enum": [ "ap-northeast-1", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "eu-central-1", "eu-west-1", "eu-west-2", "eu-west-3", "us-east-1", "us-east-2", "us-west-1", "us-west-2" ],
+ "order": 3
+ },
+ "s3_access_key_id": {
+ "title": "Access key",
+ "type": "string",
+ "description": "Access key with access to the bucket. Airbyte requires read and write permissions to a given bucket.",
+ "examples": [ "A012345678910EXAMPLE" ],
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "s3_secret_access_key": {
+ "title": "Secret key",
+ "type": "string",
+ "description": "Secret key used with the specified access key.",
+ "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ],
+ "airbyte_secret": true,
+ "order": 5
+ }
+ }
+ } ],
+ "order": 8
+ },
+ "purge_staging_table": {
+ "title": "Purge staging Iceberg table",
+ "type": "boolean",
+ "description": "Defaults to 'true'. Switch to 'false' for debugging purposes.",
+ "default": true,
+ "order": 9
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "072d5540-f236-4294-ba7c-ade8fd918496",
+ "name": "Databricks Lakehouse",
+ "dockerRepository": "airbyte/destination-databricks",
+ "dockerImageTag": "1.0.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/databricks",
+ "icon": "databricks.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/databricks",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Databricks Lakehouse Destination Spec",
+ "type": "object",
+ "required": [ "accept_terms", "databricks_server_hostname", "databricks_http_path", "databricks_personal_access_token", "data_source" ],
+ "properties": {
+ "accept_terms": {
+ "title": "Agree to the Databricks JDBC Driver Terms & Conditions",
+ "type": "boolean",
+ "description": "You must agree to the Databricks JDBC Driver Terms & Conditions to use this connector.",
+ "default": false,
+ "order": 1
+ },
+ "databricks_server_hostname": {
+ "title": "Server Hostname",
+ "type": "string",
+ "description": "Databricks Cluster Server Hostname.",
+ "examples": [ "abc-12345678-wxyz.cloud.databricks.com" ],
+ "order": 2
+ },
+ "databricks_http_path": {
+ "title": "HTTP Path",
+ "type": "string",
+ "description": "Databricks Cluster HTTP Path.",
+ "examples": [ "sql/protocolvx/o/1234567489/0000-1111111-abcd90" ],
+ "order": 3
+ },
+ "databricks_port": {
+ "title": "Port",
+ "type": "string",
+ "description": "Databricks Cluster Port.",
+ "default": "443",
+ "examples": [ "443" ],
+ "order": 4
+ },
+ "databricks_personal_access_token": {
+ "title": "Access Token",
+ "type": "string",
+ "description": "Databricks Personal Access Token for making authenticated requests.",
+ "examples": [ "dapi0123456789abcdefghij0123456789AB" ],
+ "airbyte_secret": true,
+ "order": 5
+ },
+ "database": {
+ "title": "Databricks catalog",
+ "description": "The name of the catalog. If not specified otherwise, the \"hive_metastore\" will be used.",
+ "type": "string",
+ "order": 6
+ },
+ "schema": {
+ "title": "Default Schema",
+ "description": "The default schema tables are written. If not specified otherwise, the \"default\" will be used.",
+ "type": "string",
+ "examples": [ "default" ],
+ "default": "default",
+ "order": 7
+ },
+ "data_source": {
+ "title": "Data Source",
+ "type": "object",
+ "description": "Storage on which the delta lake is built.",
+ "default": "MANAGED_TABLES_STORAGE",
+ "order": 8,
+ "oneOf": [ {
+ "title": "[Recommended] Managed tables",
+ "required": [ "data_source_type" ],
+ "properties": {
+ "data_source_type": {
+ "type": "string",
+ "const": "MANAGED_TABLES_STORAGE",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "Amazon S3",
+ "required": [ "data_source_type", "s3_bucket_name", "s3_bucket_path", "s3_bucket_region", "s3_access_key_id", "s3_secret_access_key" ],
+ "properties": {
+ "data_source_type": {
+ "type": "string",
+ "const": "S3_STORAGE",
+ "order": 1
+ },
+ "s3_bucket_name": {
+ "title": "S3 Bucket Name",
+ "type": "string",
+ "description": "The name of the S3 bucket to use for intermittent staging of the data.",
+ "examples": [ "airbyte.staging" ],
+ "order": 2
+ },
+ "s3_bucket_path": {
+ "title": "S3 Bucket Path",
+ "type": "string",
+ "description": "The directory under the S3 bucket where data will be written.",
+ "examples": [ "data_sync/test" ],
+ "order": 3
+ },
+ "s3_bucket_region": {
+ "title": "S3 Bucket Region",
+ "type": "string",
+ "default": "",
+ "description": "The region of the S3 staging bucket to use if utilising a copy strategy.",
+ "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
+ "order": 4
+ },
+ "s3_access_key_id": {
+ "type": "string",
+ "description": "The Access Key Id granting allow one to access the above S3 staging bucket. Airbyte requires Read and Write permissions to the given bucket.",
+ "title": "S3 Access Key ID",
+ "examples": [ "A012345678910EXAMPLE" ],
+ "airbyte_secret": true,
+ "order": 5
+ },
+ "s3_secret_access_key": {
+ "title": "S3 Secret Access Key",
+ "type": "string",
+ "description": "The corresponding secret to the above access key id.",
+ "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ],
+ "airbyte_secret": true,
+ "order": 6
+ },
+ "file_name_pattern": {
+ "type": "string",
+ "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
+ "title": "S3 Filename pattern",
+ "examples": [ "{date}", "{date:yyyy_MM}", "{timestamp}", "{part_number}", "{sync_id}" ],
+ "order": 7
+ }
+ }
+ }, {
+ "title": "Azure Blob Storage",
+ "required": [ "data_source_type", "azure_blob_storage_account_name", "azure_blob_storage_container_name", "azure_blob_storage_sas_token" ],
+ "properties": {
+ "data_source_type": {
+ "type": "string",
+ "const": "AZURE_BLOB_STORAGE",
+ "order": 0
+ },
+ "azure_blob_storage_endpoint_domain_name": {
+ "title": "Endpoint Domain Name",
+ "type": "string",
+ "default": "blob.core.windows.net",
+ "description": "This is Azure Blob Storage endpoint domain name. Leave default value (or leave it empty if run container from command line) to use Microsoft native from example.",
+ "examples": [ "blob.core.windows.net" ],
+ "order": 1
+ },
+ "azure_blob_storage_account_name": {
+ "title": "Azure Blob Storage Account Name",
+ "type": "string",
+ "description": "The account's name of the Azure Blob Storage.",
+ "examples": [ "airbyte5storage" ],
+ "order": 2
+ },
+ "azure_blob_storage_container_name": {
+ "title": "Azure Blob Storage Container Name",
+ "type": "string",
+ "description": "The name of the Azure blob storage container.",
+ "examples": [ "airbytetestcontainername" ],
+ "order": 3
+ },
+ "azure_blob_storage_sas_token": {
+ "title": "SAS Token",
+ "type": "string",
+ "airbyte_secret": true,
+ "description": "Shared access signature (SAS) token to grant limited access to objects in your storage account.",
+ "examples": [ "?sv=2016-05-31&ss=b&srt=sco&sp=rwdl&se=2018-06-27T10:05:50Z&st=2017-06-27T02:05:50Z&spr=https,http&sig=bgqQwoXwxzuD2GJfagRg7VOS8hzNr3QLT7rhS8OFRLQ%3D" ],
+ "order": 4
+ }
+ }
+ } ]
+ },
+ "purge_staging_data": {
+ "title": "Purge Staging Files and Tables",
+ "type": "boolean",
+ "description": "Default to 'true'. Switch it to 'false' for debugging purpose.",
+ "default": true,
+ "order": 9
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "8ccd8909-4e99-4141-b48d-4984b70b2d89",
+ "name": "DynamoDB",
+ "dockerRepository": "airbyte/destination-dynamodb",
+ "dockerImageTag": "0.1.7",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/dynamodb",
+ "icon": "dynamodb.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/dynamodb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "DynamoDB Destination Spec",
+ "type": "object",
+ "required": [ "dynamodb_table_name_prefix", "dynamodb_region", "access_key_id", "secret_access_key" ],
+ "additionalProperties": false,
+ "properties": {
+ "dynamodb_endpoint": {
+ "title": "Endpoint",
+ "type": "string",
+ "default": "",
+ "description": "This is your DynamoDB endpoint url.(if you are working with AWS DynamoDB, just leave empty).",
+ "examples": [ "http://localhost:9000" ]
+ },
+ "dynamodb_table_name_prefix": {
+ "title": "Table name prefix",
+ "type": "string",
+ "description": "The prefix to use when naming DynamoDB tables.",
+ "examples": [ "airbyte_sync" ]
+ },
+ "dynamodb_region": {
+ "title": "DynamoDB Region",
+ "type": "string",
+ "default": "",
+ "description": "The region of the DynamoDB.",
+ "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ]
+ },
+ "access_key_id": {
+ "type": "string",
+ "description": "The access key id to access the DynamoDB. Airbyte requires Read and Write permissions to the DynamoDB.",
+ "title": "DynamoDB Key Id",
+ "airbyte_secret": true,
+ "examples": [ "A012345678910EXAMPLE" ]
+ },
+ "secret_access_key": {
+ "type": "string",
+ "description": "The corresponding secret to the access key id.",
+ "title": "DynamoDB Access Key",
+ "airbyte_secret": true,
+ "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "2eb65e87-983a-4fd7-b3e3-9d9dc6eb8537",
+ "name": "E2E Testing",
+ "dockerRepository": "airbyte/destination-e2e-test",
+ "dockerImageTag": "0.2.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/e2e-test",
+ "icon": "airbyte.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/e2e-test",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "E2E Test Destination Spec",
+ "type": "object",
+ "oneOf": [ {
+ "title": "Logging",
+ "required": [ "type", "logging_config" ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "LOGGING",
+ "default": "LOGGING"
+ },
+ "logging_config": {
+ "title": "Logging Configuration",
+ "type": "object",
+ "description": "Configurate how the messages are logged.",
+ "oneOf": [ {
+ "title": "First N Entries",
+ "description": "Log first N entries per stream.",
+ "type": "object",
+ "required": [ "logging_type", "max_entry_count" ],
+ "properties": {
+ "logging_type": {
+ "type": "string",
+ "enum": [ "FirstN" ],
+ "default": "FirstN"
+ },
+ "max_entry_count": {
+ "title": "N",
+ "description": "Number of entries to log. This destination is for testing only. So it won't make sense to log infinitely. The maximum is 1,000 entries.",
+ "type": "number",
+ "default": 100,
+ "examples": [ 100 ],
+ "minimum": 1,
+ "maximum": 1000
+ }
+ }
+ }, {
+ "title": "Every N-th Entry",
+ "description": "For each stream, log every N-th entry with a maximum cap.",
+ "type": "object",
+ "required": [ "logging_type", "nth_entry_to_log", "max_entry_count" ],
+ "properties": {
+ "logging_type": {
+ "type": "string",
+ "enum": [ "EveryNth" ],
+ "default": "EveryNth"
+ },
+ "nth_entry_to_log": {
+ "title": "N",
+ "description": "The N-th entry to log for each stream. N starts from 1. For example, when N = 1, every entry is logged; when N = 2, every other entry is logged; when N = 3, one out of three entries is logged.",
+ "type": "number",
+ "example": [ 3 ],
+ "minimum": 1,
+ "maximum": 1000
+ },
+ "max_entry_count": {
+ "title": "Max Log Entries",
+ "description": "Max number of entries to log. This destination is for testing only. So it won't make sense to log infinitely. The maximum is 1,000 entries.",
+ "type": "number",
+ "default": 100,
+ "examples": [ 100 ],
+ "minimum": 1,
+ "maximum": 1000
+ }
+ }
+ }, {
+ "title": "Random Sampling",
+ "description": "For each stream, randomly log a percentage of the entries with a maximum cap.",
+ "type": "object",
+ "required": [ "logging_type", "sampling_ratio", "max_entry_count" ],
+ "properties": {
+ "logging_type": {
+ "type": "string",
+ "enum": [ "RandomSampling" ],
+ "default": "RandomSampling"
+ },
+ "sampling_ratio": {
+ "title": "Sampling Ratio",
+ "description": "A positive floating number smaller than 1.",
+ "type": "number",
+ "default": 0.001,
+ "examples": [ 0.001 ],
+ "minimum": 0,
+ "maximum": 1
+ },
+ "seed": {
+ "title": "Random Number Generator Seed",
+ "description": "When the seed is unspecified, the current time millis will be used as the seed.",
+ "type": "number",
+ "examples": [ 1900 ]
+ },
+ "max_entry_count": {
+ "title": "Max Log Entries",
+ "description": "Max number of entries to log. This destination is for testing only. So it won't make sense to log infinitely. The maximum is 1,000 entries.",
+ "type": "number",
+ "default": 100,
+ "examples": [ 100 ],
+ "minimum": 1,
+ "maximum": 1000
+ }
+ }
+ } ]
+ }
+ }
+ }, {
+ "title": "Silent",
+ "required": [ "type" ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "SILENT",
+ "default": "SILENT"
+ }
+ }
+ }, {
+ "title": "Throttled",
+ "required": [ "type", "millis_per_record" ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "THROTTLED",
+ "default": "THROTTLED"
+ },
+ "millis_per_record": {
+ "description": "Number of milli-second to pause in between records.",
+ "type": "integer"
+ }
+ }
+ }, {
+ "title": "Failing",
+ "required": [ "type", "num_messages" ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "FAILING",
+ "default": "FAILING"
+ },
+ "num_messages": {
+ "description": "Number of messages after which to fail.",
+ "type": "integer"
+ }
+ }
+ } ]
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false
+ }, {
+ "destinationDefinitionId": "68f351a7-2745-4bef-ad7f-996b8e51bb8c",
+ "name": "ElasticSearch",
+ "dockerRepository": "airbyte/destination-elasticsearch",
+ "dockerImageTag": "0.1.6",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/elasticsearch",
+ "icon": "elasticsearch.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/elasticsearch",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Elasticsearch Connection Configuration",
+ "type": "object",
+ "required": [ "endpoint" ],
+ "additionalProperties": false,
+ "properties": {
+ "endpoint": {
+ "title": "Server Endpoint",
+ "type": "string",
+ "description": "The full url of the Elasticsearch server"
+ },
+ "upsert": {
+ "type": "boolean",
+ "title": "Upsert Records",
+ "description": "If a primary key identifier is defined in the source, an upsert will be performed using the primary key value as the elasticsearch doc id. Does not support composite primary keys.",
+ "default": true
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true
+ },
+ "authenticationMethod": {
+ "title": "Authentication Method",
+ "type": "object",
+ "description": "The type of authentication to be used",
+ "oneOf": [ {
+ "title": "None",
+ "additionalProperties": false,
+ "description": "No authentication will be used",
+ "required": [ "method" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "none"
+ }
+ }
+ }, {
+ "title": "Api Key/Secret",
+ "additionalProperties": false,
+ "description": "Use a api key and secret combination to authenticate",
+ "required": [ "method", "apiKeyId", "apiKeySecret" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "secret"
+ },
+ "apiKeyId": {
+ "title": "API Key ID",
+ "description": "The Key ID to used when accessing an enterprise Elasticsearch instance.",
+ "type": "string"
+ },
+ "apiKeySecret": {
+ "title": "API Key Secret",
+ "description": "The secret associated with the API Key ID.",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "Username/Password",
+ "additionalProperties": false,
+ "description": "Basic auth header with a username and password",
+ "required": [ "method", "username", "password" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "basic"
+ },
+ "username": {
+ "title": "Username",
+ "description": "Basic auth username to access a secure Elasticsearch server",
+ "type": "string"
+ },
+ "password": {
+ "title": "Password",
+ "description": "Basic auth password to access a secure Elasticsearch server",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [ {
+ "title": "No Tunnel",
+ "required": [ "tunnel_method" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "SSH Key Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Password Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ],
+ "supportsNamespaces": true
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "bb6071d9-6f34-4766-bec2-d1d4ed81a653",
+ "name": "Exasol",
+ "dockerRepository": "airbyte/destination-exasol",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/exasol",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/exasol",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Exasol Destination Spec",
+ "type": "object",
+ "required": [ "host", "port", "username", "schema" ],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 8563,
+ "examples": [ "8563" ],
+ "order": 1
+ },
+ "certificateFingerprint": {
+ "title": "Certificate Fingerprint",
+ "description": "Fingerprint of the Exasol server's TLS certificate",
+ "type": "string",
+ "examples": [ "ABC123..." ],
+ "order": 2
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "schema": {
+ "title": "Schema Name",
+ "description": "Schema Name",
+ "type": "string",
+ "order": 5
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol ';'. (example: key1=value1;key2=value2;key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 6
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "18081484-02a5-4662-8dba-b270b582f321",
+ "name": "Firebolt",
+ "dockerRepository": "airbyte/destination-firebolt",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/firebolt",
+ "icon": "firebolt.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/firebolt",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Firebolt Spec",
+ "type": "object",
+ "required": [ "username", "password", "database" ],
+ "additionalProperties": false,
+ "properties": {
+ "username": {
+ "type": "string",
+ "title": "Username",
+ "description": "Firebolt email address you use to login.",
+ "examples": [ "username@email.com" ],
+ "order": 0
+ },
+ "password": {
+ "type": "string",
+ "title": "Password",
+ "description": "Firebolt password.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "account": {
+ "type": "string",
+ "title": "Account",
+ "description": "Firebolt account to login."
+ },
+ "host": {
+ "type": "string",
+ "title": "Host",
+ "description": "The host name of your Firebolt database.",
+ "examples": [ "api.app.firebolt.io" ]
+ },
+ "database": {
+ "type": "string",
+ "title": "Database",
+ "description": "The database to connect to."
+ },
+ "engine": {
+ "type": "string",
+ "title": "Engine",
+ "description": "Engine name or url to connect to."
+ },
+ "loading_method": {
+ "type": "object",
+ "title": "Loading Method",
+ "description": "Loading method used to select the way data will be uploaded to Firebolt",
+ "oneOf": [ {
+ "title": "SQL Inserts",
+ "additionalProperties": false,
+ "required": [ "method" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "SQL"
+ }
+ }
+ }, {
+ "title": "External Table via S3",
+ "additionalProperties": false,
+ "required": [ "method", "s3_bucket", "s3_region", "aws_key_id", "aws_key_secret" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "S3"
+ },
+ "s3_bucket": {
+ "type": "string",
+ "title": "S3 bucket name",
+ "description": "The name of the S3 bucket."
+ },
+ "s3_region": {
+ "type": "string",
+ "title": "S3 region name",
+ "description": "Region name of the S3 bucket.",
+ "examples": [ "us-east-1" ]
+ },
+ "aws_key_id": {
+ "type": "string",
+ "title": "AWS Key ID",
+ "airbyte_secret": true,
+ "description": "AWS access key granting read and write access to S3."
+ },
+ "aws_key_secret": {
+ "type": "string",
+ "title": "AWS Key Secret",
+ "airbyte_secret": true,
+ "description": "Corresponding secret part of the AWS Key"
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "supportsDbt": true
+ }, {
+ "destinationDefinitionId": "ca8f6566-e555-4b40-943a-545bf123117a",
+ "name": "Google Cloud Storage (GCS)",
+ "dockerRepository": "airbyte/destination-gcs",
+ "dockerImageTag": "0.2.16",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/gcs",
+ "icon": "googlecloudstorage.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/gcs",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "GCS Destination Spec",
+ "type": "object",
+ "required": [ "gcs_bucket_name", "gcs_bucket_path", "credential", "format" ],
+ "properties": {
+ "gcs_bucket_name": {
+ "title": "GCS Bucket Name",
+ "order": 1,
+ "type": "string",
+ "description": "You can find the bucket name in the App Engine Admin console Application Settings page, under the label Google Cloud Storage Bucket. Read more here.",
+ "examples": [ "airbyte_sync" ]
+ },
+ "gcs_bucket_path": {
+ "title": "GCS Bucket Path",
+ "description": "GCS Bucket Path string Subdirectory under the above bucket to sync the data into.",
+ "order": 2,
+ "type": "string",
+ "examples": [ "data_sync/test" ]
+ },
+ "gcs_bucket_region": {
+ "title": "GCS Bucket Region",
+ "type": "string",
+ "order": 3,
+ "default": "us",
+ "description": "Select a Region of the GCS Bucket. Read more here.",
+ "enum": [ "northamerica-northeast1", "northamerica-northeast2", "us-central1", "us-east1", "us-east4", "us-west1", "us-west2", "us-west3", "us-west4", "southamerica-east1", "southamerica-west1", "europe-central2", "europe-north1", "europe-west1", "europe-west2", "europe-west3", "europe-west4", "europe-west6", "asia-east1", "asia-east2", "asia-northeast1", "asia-northeast2", "asia-northeast3", "asia-south1", "asia-south2", "asia-southeast1", "asia-southeast2", "australia-southeast1", "australia-southeast2", "asia", "eu", "us", "asia1", "eur4", "nam4" ]
+ },
+ "credential": {
+ "title": "Authentication",
+ "description": "An HMAC key is a type of credential and can be associated with a service account or a user account in Cloud Storage. Read more here.",
+ "type": "object",
+ "order": 0,
+ "oneOf": [ {
+ "title": "HMAC Key",
+ "required": [ "credential_type", "hmac_key_access_id", "hmac_key_secret" ],
+ "properties": {
+ "credential_type": {
+ "type": "string",
+ "enum": [ "HMAC_KEY" ],
+ "default": "HMAC_KEY"
+ },
+ "hmac_key_access_id": {
+ "type": "string",
+ "description": "When linked to a service account, this ID is 61 characters long; when linked to a user account, it is 24 characters long. Read more here.",
+ "title": "Access ID",
+ "airbyte_secret": true,
+ "order": 0,
+ "examples": [ "1234567890abcdefghij1234" ]
+ },
+ "hmac_key_secret": {
+ "type": "string",
+ "description": "The corresponding secret for the access ID. It is a 40-character base-64 encoded string. Read more here.",
+ "title": "Secret",
+ "airbyte_secret": true,
+ "order": 1,
+ "examples": [ "1234567890abcdefghij1234567890ABCDEFGHIJ" ]
+ }
+ }
+ } ]
+ },
+ "format": {
+ "title": "Output Format",
+ "type": "object",
+ "description": "Output data format. One of the following formats must be selected - AVRO format, PARQUET format, CSV format, or JSONL format.",
+ "order": 4,
+ "oneOf": [ {
+ "title": "Avro: Apache Avro",
+ "required": [ "format_type", "compression_codec" ],
+ "properties": {
+ "format_type": {
+ "type": "string",
+ "enum": [ "Avro" ],
+ "default": "Avro"
+ },
+ "compression_codec": {
+ "title": "Compression Codec",
+ "description": "The compression algorithm used to compress data. Default to no compression.",
+ "type": "object",
+ "oneOf": [ {
+ "title": "No Compression",
+ "required": [ "codec" ],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": [ "no compression" ],
+ "default": "no compression"
+ }
+ }
+ }, {
+ "title": "Deflate",
+ "required": [ "codec" ],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": [ "Deflate" ],
+ "default": "Deflate"
+ },
+ "compression_level": {
+ "title": "Deflate level",
+ "description": "0: no compression & fastest, 9: best compression & slowest.",
+ "type": "integer",
+ "default": 0,
+ "minimum": 0,
+ "maximum": 9
+ }
+ }
+ }, {
+ "title": "bzip2",
+ "required": [ "codec" ],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": [ "bzip2" ],
+ "default": "bzip2"
+ }
+ }
+ }, {
+ "title": "xz",
+ "required": [ "codec" ],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": [ "xz" ],
+ "default": "xz"
+ },
+ "compression_level": {
+ "title": "Compression Level",
+ "description": "The presets 0-3 are fast presets with medium compression. The presets 4-6 are fairly slow presets with high compression. The default preset is 6. The presets 7-9 are like the preset 6 but use bigger dictionaries and have higher compressor and decompressor memory requirements. Unless the uncompressed size of the file exceeds 8 MiB, 16 MiB, or 32 MiB, it is waste of memory to use the presets 7, 8, or 9, respectively. Read more here for details.",
+ "type": "integer",
+ "default": 6,
+ "minimum": 0,
+ "maximum": 9
+ }
+ }
+ }, {
+ "title": "zstandard",
+ "required": [ "codec" ],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": [ "zstandard" ],
+ "default": "zstandard"
+ },
+ "compression_level": {
+ "title": "Compression Level",
+ "description": "Negative levels are 'fast' modes akin to lz4 or snappy, levels above 9 are generally for archival purposes, and levels above 18 use a lot of memory.",
+ "type": "integer",
+ "default": 3,
+ "minimum": -5,
+ "maximum": 22
+ },
+ "include_checksum": {
+ "title": "Include Checksum",
+ "description": "If true, include a checksum with each data block.",
+ "type": "boolean",
+ "default": false
+ }
+ }
+ }, {
+ "title": "snappy",
+ "required": [ "codec" ],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": [ "snappy" ],
+ "default": "snappy"
+ }
+ }
+ } ]
+ }
+ }
+ }, {
+ "title": "CSV: Comma-Separated Values",
+ "required": [ "format_type" ],
+ "properties": {
+ "format_type": {
+ "type": "string",
+ "enum": [ "CSV" ],
+ "default": "CSV"
+ },
+ "flattening": {
+ "type": "string",
+ "title": "Normalization",
+ "description": "Whether the input JSON data should be normalized (flattened) in the output CSV. Please refer to docs for details.",
+ "default": "No flattening",
+ "enum": [ "No flattening", "Root level flattening" ]
+ },
+ "compression": {
+ "title": "Compression",
+ "type": "object",
+ "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".csv.gz\").",
+ "oneOf": [ {
+ "title": "No Compression",
+ "requires": [ "compression_type" ],
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": [ "No Compression" ],
+ "default": "No Compression"
+ }
+ }
+ }, {
+ "title": "GZIP",
+ "requires": [ "compression_type" ],
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": [ "GZIP" ],
+ "default": "GZIP"
+ }
+ }
+ } ]
+ }
+ }
+ }, {
+ "title": "JSON Lines: newline-delimited JSON",
+ "required": [ "format_type" ],
+ "properties": {
+ "format_type": {
+ "type": "string",
+ "enum": [ "JSONL" ],
+ "default": "JSONL"
+ },
+ "compression": {
+ "title": "Compression",
+ "type": "object",
+ "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".jsonl.gz\").",
+ "oneOf": [ {
+ "title": "No Compression",
+ "requires": "compression_type",
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": [ "No Compression" ],
+ "default": "No Compression"
+ }
+ }
+ }, {
+ "title": "GZIP",
+ "requires": "compression_type",
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": [ "GZIP" ],
+ "default": "GZIP"
+ }
+ }
+ } ]
+ }
+ }
+ }, {
+ "title": "Parquet: Columnar Storage",
+ "required": [ "format_type" ],
+ "properties": {
+ "format_type": {
+ "type": "string",
+ "enum": [ "Parquet" ],
+ "default": "Parquet"
+ },
+ "compression_codec": {
+ "title": "Compression Codec",
+ "description": "The compression algorithm used to compress data pages.",
+ "type": "string",
+ "default": "UNCOMPRESSED",
+ "enum": [ "UNCOMPRESSED", "SNAPPY", "GZIP", "LZO", "BROTLI", "LZ4", "ZSTD" ]
+ },
+ "block_size_mb": {
+ "title": "Block Size (Row Group Size) (MB)",
+ "description": "This is the size of a row group being buffered in memory. It limits the memory usage when writing. Larger values will improve the IO when reading, but consume more memory when writing. Default: 128 MB.",
+ "type": "integer",
+ "default": 128,
+ "examples": [ 128 ]
+ },
+ "max_padding_size_mb": {
+ "title": "Max Padding Size (MB)",
+ "description": "Maximum size allowed as padding to align row groups. This is also the minimum size of a row group. Default: 8 MB.",
+ "type": "integer",
+ "default": 8,
+ "examples": [ 8 ]
+ },
+ "page_size_kb": {
+ "title": "Page Size (KB)",
+ "description": "The page size is for compression. A block is composed of pages. A page is the smallest unit that must be read fully to access a single record. If this value is too small, the compression will deteriorate. Default: 1024 KB.",
+ "type": "integer",
+ "default": 1024,
+ "examples": [ 1024 ]
+ },
+ "dictionary_page_size_kb": {
+ "title": "Dictionary Page Size (KB)",
+ "description": "There is one dictionary page per column per row group when dictionary encoding is used. The dictionary page size works like the page size but for dictionary. Default: 1024 KB.",
+ "type": "integer",
+ "default": 1024,
+ "examples": [ 1024 ]
+ },
+ "dictionary_encoding": {
+ "title": "Dictionary Encoding",
+ "description": "Default: true.",
+ "type": "boolean",
+ "default": true
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ],
+ "$schema": "http://json-schema.org/draft-07/schema#"
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "resourceRequirements": {
+ "jobSpecific": [ {
+ "jobType": "sync",
+ "resourceRequirements": {
+ "memory_request": "1Gi",
+ "memory_limit": "1Gi"
+ }
+ } ]
+ }
+ }, {
+ "destinationDefinitionId": "27dc7500-6d1b-40b1-8b07-e2f2aea3c9f4",
+ "name": "Google Firestore",
+ "dockerRepository": "airbyte/destination-firestore",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/firestore",
+ "icon": "firestore.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/firestore",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Google Firestore",
+ "type": "object",
+ "required": [ "project_id" ],
+ "additionalProperties": false,
+ "properties": {
+ "project_id": {
+ "type": "string",
+ "description": "The GCP project ID for the project containing the target BigQuery dataset.",
+ "title": "Project ID"
+ },
+ "credentials_json": {
+ "type": "string",
+ "description": "The contents of the JSON service account key. Check out the docs if you need help generating this key. Default credentials will be used if this field is left empty.",
+ "title": "Credentials JSON",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "append", "overwrite" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "356668e2-7e34-47f3-a3b0-67a8a481b692",
+ "name": "Google PubSub",
+ "dockerRepository": "airbyte/destination-pubsub",
+ "dockerImageTag": "0.2.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/pubsub",
+ "icon": "googlepubsub.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/pubsub",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Google PubSub Destination Spec",
+ "type": "object",
+ "required": [ "project_id", "topic_id", "credentials_json", "ordering_enabled", "batching_enabled" ],
+ "additionalProperties": true,
+ "properties": {
+ "project_id": {
+ "type": "string",
+ "description": "The GCP project ID for the project containing the target PubSub.",
+ "title": "Project ID"
+ },
+ "topic_id": {
+ "type": "string",
+ "description": "The PubSub topic ID in the given GCP project ID.",
+ "title": "PubSub Topic ID"
+ },
+ "credentials_json": {
+ "type": "string",
+ "description": "The contents of the JSON service account key. Check out the docs if you need help generating this key.",
+ "title": "Credentials JSON",
+ "airbyte_secret": true
+ },
+ "ordering_enabled": {
+ "title": "Message Ordering Enabled",
+ "description": "If TRUE PubSub publisher will have message ordering enabled. Every message will have an ordering key of stream",
+ "type": "boolean",
+ "default": false
+ },
+ "batching_enabled": {
+ "type": "boolean",
+ "title": "Message Batching Enabled",
+ "description": "If TRUE messages will be buffered instead of sending them one by one",
+ "default": false
+ },
+ "batching_delay_threshold": {
+ "type": "integer",
+ "title": "Message Batching: Delay Threshold",
+ "description": "Number of ms before the buffer is flushed",
+ "default": 1,
+ "minimum": 1
+ },
+ "batching_element_count_threshold": {
+ "type": "integer",
+ "title": "Message Batching: Element Count Threshold",
+ "description": "Number of messages before the buffer is flushed",
+ "default": 1,
+ "minimum": 1
+ },
+ "batching_request_bytes_threshold": {
+ "type": "integer",
+ "title": "Message Batching: Request Bytes Threshold",
+ "description": "Number of bytes before the buffer is flushed",
+ "default": 1,
+ "minimum": 1
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "9f760101-60ae-462f-9ee6-b7a9dafd454d",
+ "name": "Kafka",
+ "dockerRepository": "airbyte/destination-kafka",
+ "dockerImageTag": "0.1.10",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/kafka",
+ "icon": "kafka.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/kafka",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Kafka Destination Spec",
+ "type": "object",
+ "required": [ "bootstrap_servers", "topic_pattern", "protocol", "acks", "enable_idempotence", "compression_type", "batch_size", "linger_ms", "max_in_flight_requests_per_connection", "client_dns_lookup", "buffer_memory", "max_request_size", "retries", "socket_connection_setup_timeout_ms", "socket_connection_setup_timeout_max_ms", "max_block_ms", "request_timeout_ms", "delivery_timeout_ms", "send_buffer_bytes", "receive_buffer_bytes" ],
+ "additionalProperties": true,
+ "properties": {
+ "bootstrap_servers": {
+ "title": "Bootstrap Servers",
+ "description": "A list of host/port pairs to use for establishing the initial connection to the Kafka cluster. The client will make use of all servers irrespective of which servers are specified here for bootstrapping—this list only impacts the initial hosts used to discover the full set of servers. This list should be in the form host1:port1,host2:port2,...
. Since these servers are just used for the initial connection to discover the full cluster membership (which may change dynamically), this list need not contain the full set of servers (you may want more than one, though, in case a server is down).",
+ "type": "string",
+ "examples": [ "kafka-broker1:9092,kafka-broker2:9092" ]
+ },
+ "topic_pattern": {
+ "title": "Topic Pattern",
+ "description": "Topic pattern in which the records will be sent. You can use patterns like '{namespace}' and/or '{stream}' to send the message to a specific topic based on these values. Notice that the topic name will be transformed to a standard naming convention.",
+ "type": "string",
+ "examples": [ "sample.topic", "{namespace}.{stream}.sample" ]
+ },
+ "test_topic": {
+ "title": "Test Topic",
+ "description": "Topic to test if Airbyte can produce messages.",
+ "type": "string",
+ "examples": [ "test.topic" ]
+ },
+ "sync_producer": {
+ "title": "Sync Producer",
+ "description": "Wait synchronously until the record has been sent to Kafka.",
+ "type": "boolean",
+ "default": false
+ },
+ "protocol": {
+ "title": "Protocol",
+ "type": "object",
+ "description": "Protocol used to communicate with brokers.",
+ "oneOf": [ {
+ "title": "PLAINTEXT",
+ "required": [ "security_protocol" ],
+ "properties": {
+ "security_protocol": {
+ "type": "string",
+ "enum": [ "PLAINTEXT" ],
+ "default": "PLAINTEXT"
+ }
+ }
+ }, {
+ "title": "SASL PLAINTEXT",
+ "required": [ "security_protocol", "sasl_mechanism", "sasl_jaas_config" ],
+ "properties": {
+ "security_protocol": {
+ "type": "string",
+ "enum": [ "SASL_PLAINTEXT" ],
+ "default": "SASL_PLAINTEXT"
+ },
+ "sasl_mechanism": {
+ "title": "SASL Mechanism",
+ "description": "SASL mechanism used for client connections. This may be any mechanism for which a security provider is available.",
+ "type": "string",
+ "default": "PLAIN",
+ "enum": [ "PLAIN" ]
+ },
+ "sasl_jaas_config": {
+ "title": "SASL JAAS Config",
+ "description": "JAAS login context parameters for SASL connections in the format used by JAAS configuration files.",
+ "type": "string",
+ "default": "",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "SASL SSL",
+ "required": [ "security_protocol", "sasl_mechanism", "sasl_jaas_config" ],
+ "properties": {
+ "security_protocol": {
+ "type": "string",
+ "enum": [ "SASL_SSL" ],
+ "default": "SASL_SSL"
+ },
+ "sasl_mechanism": {
+ "title": "SASL Mechanism",
+ "description": "SASL mechanism used for client connections. This may be any mechanism for which a security provider is available.",
+ "type": "string",
+ "default": "GSSAPI",
+ "enum": [ "GSSAPI", "OAUTHBEARER", "SCRAM-SHA-256", "SCRAM-SHA-512", "PLAIN" ]
+ },
+ "sasl_jaas_config": {
+ "title": "SASL JAAS Config",
+ "description": "JAAS login context parameters for SASL connections in the format used by JAAS configuration files.",
+ "type": "string",
+ "default": "",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ },
+ "client_id": {
+ "title": "Client ID",
+ "description": "An ID string to pass to the server when making requests. The purpose of this is to be able to track the source of requests beyond just ip/port by allowing a logical application name to be included in server-side request logging.",
+ "type": "string",
+ "examples": [ "airbyte-producer" ]
+ },
+ "acks": {
+ "title": "ACKs",
+ "description": "The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent.",
+ "type": "string",
+ "default": "1",
+ "enum": [ "0", "1", "all" ]
+ },
+ "enable_idempotence": {
+ "title": "Enable Idempotence",
+ "description": "When set to 'true', the producer will ensure that exactly one copy of each message is written in the stream. If 'false', producer retries due to broker failures, etc., may write duplicates of the retried message in the stream.",
+ "type": "boolean",
+ "default": false
+ },
+ "compression_type": {
+ "title": "Compression Type",
+ "description": "The compression type for all data generated by the producer.",
+ "type": "string",
+ "default": "none",
+ "enum": [ "none", "gzip", "snappy", "lz4", "zstd" ]
+ },
+ "batch_size": {
+ "title": "Batch Size",
+ "description": "The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition.",
+ "type": "integer",
+ "examples": [ 16384 ]
+ },
+ "linger_ms": {
+ "title": "Linger ms",
+ "description": "The producer groups together any records that arrive in between request transmissions into a single batched request.",
+ "type": "string",
+ "examples": [ 0 ]
+ },
+ "max_in_flight_requests_per_connection": {
+ "title": "Max in Flight Requests per Connection",
+ "description": "The maximum number of unacknowledged requests the client will send on a single connection before blocking. Can be greater than 1, and the maximum value supported with idempotency is 5.",
+ "type": "integer",
+ "examples": [ 5 ]
+ },
+ "client_dns_lookup": {
+ "title": "Client DNS Lookup",
+ "description": "Controls how the client uses DNS lookups. If set to use_all_dns_ips, connect to each returned IP address in sequence until a successful connection is established. After a disconnection, the next IP is used. Once all IPs have been used once, the client resolves the IP(s) from the hostname again. If set to resolve_canonical_bootstrap_servers_only, resolve each bootstrap address into a list of canonical names. After the bootstrap phase, this behaves the same as use_all_dns_ips. If set to default (deprecated), attempt to connect to the first IP address returned by the lookup, even if the lookup returns multiple IP addresses.",
+ "type": "string",
+ "default": "use_all_dns_ips",
+ "enum": [ "default", "use_all_dns_ips", "resolve_canonical_bootstrap_servers_only", "use_all_dns_ips" ]
+ },
+ "buffer_memory": {
+ "title": "Buffer Memory",
+ "description": "The total bytes of memory the producer can use to buffer records waiting to be sent to the server.",
+ "type": "string",
+ "examples": 33554432
+ },
+ "max_request_size": {
+ "title": "Max Request Size",
+ "description": "The maximum size of a request in bytes.",
+ "type": "integer",
+ "examples": [ 1048576 ]
+ },
+ "retries": {
+ "title": "Retries",
+ "description": "Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error.",
+ "type": "integer",
+ "examples": [ 2147483647 ]
+ },
+ "socket_connection_setup_timeout_ms": {
+ "title": "Socket Connection Setup Timeout",
+ "description": "The amount of time the client will wait for the socket connection to be established.",
+ "type": "string",
+ "examples": [ 10000 ]
+ },
+ "socket_connection_setup_timeout_max_ms": {
+ "title": "Socket Connection Setup Max Timeout",
+ "description": "The maximum amount of time the client will wait for the socket connection to be established. The connection setup timeout will increase exponentially for each consecutive connection failure up to this maximum.",
+ "type": "string",
+ "examples": [ 30000 ]
+ },
+ "max_block_ms": {
+ "title": "Max Block ms",
+ "description": "The configuration controls how long the KafkaProducer's send(), partitionsFor(), initTransactions(), sendOffsetsToTransaction(), commitTransaction() and abortTransaction() methods will block.",
+ "type": "string",
+ "examples": [ 60000 ]
+ },
+ "request_timeout_ms": {
+ "title": "Request Timeout",
+ "description": "The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted.",
+ "type": "integer",
+ "examples": [ 30000 ]
+ },
+ "delivery_timeout_ms": {
+ "title": "Delivery Timeout",
+ "description": "An upper bound on the time to report success or failure after a call to 'send()' returns.",
+ "type": "integer",
+ "examples": [ 120000 ]
+ },
+ "send_buffer_bytes": {
+ "title": "Send Buffer bytes",
+ "description": "The size of the TCP send buffer (SO_SNDBUF) to use when sending data. If the value is -1, the OS default will be used.",
+ "type": "integer",
+ "examples": [ 131072 ]
+ },
+ "receive_buffer_bytes": {
+ "title": "Receive Buffer bytes",
+ "description": "The size of the TCP receive buffer (SO_RCVBUF) to use when reading data. If the value is -1, the OS default will be used.",
+ "type": "integer",
+ "examples": [ 32768 ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "6d1d66d4-26ab-4602-8d32-f85894b04955",
+ "name": "Kinesis",
+ "dockerRepository": "airbyte/destination-kinesis",
+ "dockerImageTag": "0.1.5",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/kinesis",
+ "icon": "kinesis.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/kinesis",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Kinesis Destination Spec",
+ "type": "object",
+ "required": [ "endpoint", "region", "shardCount", "accessKey", "privateKey", "bufferSize" ],
+ "additionalProperties": true,
+ "properties": {
+ "endpoint": {
+ "title": "Endpoint",
+ "description": "AWS Kinesis endpoint.",
+ "type": "string",
+ "examples": [ "kinesis.us‑west‑1.amazonaws.com" ],
+ "order": 0
+ },
+ "region": {
+ "title": "Region",
+ "description": "AWS region. Your account determines the Regions that are available to you.",
+ "type": "string",
+ "examples": [ "us‑west‑1" ],
+ "order": 1
+ },
+ "shardCount": {
+ "title": "Shard Count",
+ "description": "Number of shards to which the data should be streamed.",
+ "type": "integer",
+ "default": 5,
+ "order": 2
+ },
+ "accessKey": {
+ "title": "Access Key",
+ "description": "Generate the AWS Access Key for current user.",
+ "airbyte_secret": true,
+ "type": "string",
+ "order": 3
+ },
+ "privateKey": {
+ "title": "Private Key",
+ "description": "The AWS Private Key - a string of numbers and letters that are unique for each account, also known as a \"recovery phrase\".",
+ "airbyte_secret": true,
+ "type": "string",
+ "order": 4
+ },
+ "bufferSize": {
+ "title": "Buffer Size",
+ "description": "Buffer size for storing kinesis records before being batch streamed.",
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 500,
+ "default": 100,
+ "order": 5
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "8be1cf83-fde1-477f-a4ad-318d23c9f3c6",
+ "name": "Local CSV",
+ "dockerRepository": "airbyte/destination-csv",
+ "dockerImageTag": "1.0.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-csv",
+ "icon": "file-csv.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-csv",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "CSV Destination Spec",
+ "type": "object",
+ "required": [ "destination_path" ],
+ "additionalProperties": true,
+ "properties": {
+ "destination_path": {
+ "description": "Path to the directory where csv files will be written. The destination uses the local mount \"/local\" and any data files will be placed inside that local mount. For more information check out our docs",
+ "type": "string",
+ "examples": [ "/local" ]
+ },
+ "delimiter_type": {
+ "type": "object",
+ "title": "Delimiter",
+ "description": "The character delimiting individual cells in the CSV data.",
+ "oneOf": [ {
+ "title": "Comma",
+ "required": [ "delimiter" ],
+ "properties": {
+ "delimiter": {
+ "type": "string",
+ "const": "\\u002c"
+ }
+ }
+ }, {
+ "title": "Semicolon",
+ "required": [ "delimiter" ],
+ "properties": {
+ "delimiter": {
+ "type": "string",
+ "const": "\\u003b"
+ }
+ }
+ }, {
+ "title": "Pipe",
+ "required": [ "delimiter" ],
+ "properties": {
+ "delimiter": {
+ "type": "string",
+ "const": "\\u007c"
+ }
+ }
+ }, {
+ "title": "Tab",
+ "required": [ "delimiter" ],
+ "properties": {
+ "delimiter": {
+ "type": "string",
+ "const": "\\u0009"
+ }
+ }
+ }, {
+ "title": "Space",
+ "required": [ "delimiter" ],
+ "properties": {
+ "delimiter": {
+ "type": "string",
+ "const": "\\u0020"
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "a625d593-bba5-4a1c-a53d-2d246268a816",
+ "name": "Local JSON",
+ "dockerRepository": "airbyte/destination-local-json",
+ "dockerImageTag": "0.2.11",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-json",
+ "icon": "file-json.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-json",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Local Json Destination Spec",
+ "type": "object",
+ "required": [ "destination_path" ],
+ "additionalProperties": false,
+ "properties": {
+ "destination_path": {
+ "description": "Path to the directory where json files will be written. The files will be placed inside that local mount. For more information check out our docs",
+ "title": "Destination Path",
+ "type": "string",
+ "examples": [ "/json_data" ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "f3802bc4-5406-4752-9e8d-01e504ca8194",
+ "name": "MQTT",
+ "dockerRepository": "airbyte/destination-mqtt",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mqtt",
+ "icon": "mqtt.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mqtt",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "MQTT Destination Spec",
+ "type": "object",
+ "required": [ "broker_host", "broker_port", "use_tls", "topic_pattern", "publisher_sync", "connect_timeout", "automatic_reconnect", "clean_session", "message_retained", "message_qos" ],
+ "additionalProperties": true,
+ "properties": {
+ "broker_host": {
+ "title": "MQTT broker host",
+ "description": "Host of the broker to connect to.",
+ "type": "string"
+ },
+ "broker_port": {
+ "title": "MQTT broker port",
+ "description": "Port of the broker.",
+ "type": "integer"
+ },
+ "use_tls": {
+ "title": "Use TLS",
+ "description": "Whether to use TLS encryption on the connection.",
+ "type": "boolean",
+ "default": false
+ },
+ "username": {
+ "title": "Username",
+ "description": "User name to use for the connection.",
+ "type": "string"
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password to use for the connection.",
+ "type": "string",
+ "airbyte_secret": true
+ },
+ "topic_pattern": {
+ "title": "Topic pattern",
+ "description": "Topic pattern in which the records will be sent. You can use patterns like '{namespace}' and/or '{stream}' to send the message to a specific topic based on these values. Notice that the topic name will be transformed to a standard naming convention.",
+ "type": "string",
+ "examples": [ "sample.topic", "{namespace}/{stream}/sample" ]
+ },
+ "topic_test": {
+ "title": "Test topic",
+ "description": "Topic to test if Airbyte can produce messages.",
+ "type": "string",
+ "examples": [ "test/topic" ]
+ },
+ "client": {
+ "title": "Client ID",
+ "description": "A client identifier that is unique on the server being connected to.",
+ "type": "string",
+ "examples": [ "airbyte-client1" ]
+ },
+ "publisher_sync": {
+ "title": "Sync publisher",
+ "description": "Wait synchronously until the record has been sent to the broker.",
+ "type": "boolean",
+ "default": false
+ },
+ "connect_timeout": {
+ "title": "Connect timeout",
+ "description": " Maximum time interval (in seconds) the client will wait for the network connection to the MQTT server to be established.",
+ "type": "integer",
+ "default": 30
+ },
+ "automatic_reconnect": {
+ "title": "Automatic reconnect",
+ "description": "Whether the client will automatically attempt to reconnect to the server if the connection is lost.",
+ "type": "boolean",
+ "default": true
+ },
+ "clean_session": {
+ "title": "Clean session",
+ "description": "Whether the client and server should remember state across restarts and reconnects.",
+ "type": "boolean",
+ "default": true
+ },
+ "message_retained": {
+ "title": "Message retained",
+ "description": "Whether or not the publish message should be retained by the messaging engine.",
+ "type": "boolean",
+ "default": false
+ },
+ "message_qos": {
+ "title": "Message QoS",
+ "description": "Quality of service used for each message to be delivered.",
+ "default": "AT_LEAST_ONCE",
+ "enum": [ "AT_MOST_ONCE", "AT_LEAST_ONCE", "EXACTLY_ONCE" ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "d4353156-9217-4cad-8dd7-c108fd4f74cf",
+ "name": "MS SQL Server",
+ "dockerRepository": "airbyte/destination-mssql",
+ "dockerImageTag": "0.1.23",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mssql",
+ "icon": "mssql.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mssql",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "MS SQL Server Destination Spec",
+ "type": "object",
+ "required": [ "host", "port", "username", "database", "schema" ],
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "The host name of the MSSQL database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "The port of the MSSQL database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 1433,
+ "examples": [ "1433" ],
+ "order": 1
+ },
+ "database": {
+ "title": "DB Name",
+ "description": "The name of the MSSQL database.",
+ "type": "string",
+ "order": 2
+ },
+ "schema": {
+ "title": "Default Schema",
+ "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
+ "type": "string",
+ "examples": [ "public" ],
+ "default": "public",
+ "order": 3
+ },
+ "username": {
+ "title": "User",
+ "description": "The username which is used to access the database.",
+ "type": "string",
+ "order": 4
+ },
+ "password": {
+ "title": "Password",
+ "description": "The password associated with this username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 5
+ },
+ "jdbc_url_params": {
+ "title": "JDBC URL Params",
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "type": "string",
+ "order": 6
+ },
+ "ssl_method": {
+ "title": "SSL Method",
+ "type": "object",
+ "description": "The encryption method which is used to communicate with the database.",
+ "order": 7,
+ "oneOf": [ {
+ "title": "Unencrypted",
+ "description": "The data transfer will not be encrypted.",
+ "required": [ "ssl_method" ],
+ "type": "object",
+ "properties": {
+ "ssl_method": {
+ "type": "string",
+ "const": "unencrypted",
+ "enum": [ "unencrypted" ],
+ "default": "unencrypted"
+ }
+ }
+ }, {
+ "title": "Encrypted (trust server certificate)",
+ "description": "Use the certificate provided by the server without verification. (For testing purposes only!)",
+ "required": [ "ssl_method" ],
+ "type": "object",
+ "properties": {
+ "ssl_method": {
+ "type": "string",
+ "const": "encrypted_trust_server_certificate",
+ "enum": [ "encrypted_trust_server_certificate" ],
+ "default": "encrypted_trust_server_certificate"
+ }
+ }
+ }, {
+ "title": "Encrypted (verify certificate)",
+ "description": "Verify and use the certificate provided by the server.",
+ "required": [ "ssl_method", "trustStoreName", "trustStorePassword" ],
+ "type": "object",
+ "properties": {
+ "ssl_method": {
+ "type": "string",
+ "const": "encrypted_verify_certificate",
+ "enum": [ "encrypted_verify_certificate" ],
+ "default": "encrypted_verify_certificate"
+ },
+ "hostNameInCertificate": {
+ "title": "Host Name In Certificate",
+ "type": "string",
+ "description": "Specifies the host name of the server. The value of this property must match the subject property of the certificate.",
+ "order": 8
+ }
+ }
+ } ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [ {
+ "title": "No Tunnel",
+ "required": [ "tunnel_method" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "SSH Key Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Password Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "normalizationConfig": {
+ "normalizationRepository": "airbyte/normalization-mssql",
+ "normalizationTag": "0.4.0",
+ "normalizationIntegrationType": "mssql"
+ },
+ "supportsDbt": true
+ }, {
+ "destinationDefinitionId": "af7c921e-5892-4ff2-b6c1-4a5ab258fb7e",
+ "name": "MeiliSearch",
+ "dockerRepository": "airbyte/destination-meilisearch",
+ "dockerImageTag": "1.0.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/meilisearch",
+ "icon": "meilisearch.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/meilisearch",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Meilisearch",
+ "type": "object",
+ "required": [ "host" ],
+ "additionalProperties": false,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the MeiliSearch instance.",
+ "type": "string",
+ "order": 0
+ },
+ "api_key": {
+ "title": "API Key",
+ "airbyte_secret": true,
+ "description": "MeiliSearch API Key. See the docs for more information on how to obtain this key.",
+ "type": "string",
+ "order": 1
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "8b746512-8c2e-6ac1-4adc-b59faafd473c",
+ "name": "MongoDB",
+ "dockerRepository": "airbyte/destination-mongodb",
+ "dockerImageTag": "0.1.9",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mongodb",
+ "icon": "mongodb.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mongodb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "MongoDB Destination Spec",
+ "type": "object",
+ "required": [ "database", "auth_type" ],
+ "properties": {
+ "instance_type": {
+ "description": "MongoDb instance to connect to. For MongoDB Atlas and Replica Set TLS connection is used by default.",
+ "title": "MongoDb Instance Type",
+ "type": "object",
+ "order": 0,
+ "oneOf": [ {
+ "title": "Standalone MongoDb Instance",
+ "required": [ "instance", "host", "port" ],
+ "properties": {
+ "instance": {
+ "type": "string",
+ "enum": [ "standalone" ],
+ "default": "standalone"
+ },
+ "host": {
+ "title": "Host",
+ "type": "string",
+ "description": "The Host of a Mongo database to be replicated.",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "type": "integer",
+ "description": "The Port of a Mongo database to be replicated.",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 27017,
+ "examples": [ "27017" ],
+ "order": 1
+ },
+ "tls": {
+ "title": "TLS Connection",
+ "type": "boolean",
+ "description": "Indicates whether TLS encryption protocol will be used to connect to MongoDB. It is recommended to use TLS connection if possible. For more information see documentation.",
+ "default": false,
+ "order": 2
+ }
+ }
+ }, {
+ "title": "Replica Set",
+ "required": [ "instance", "server_addresses" ],
+ "properties": {
+ "instance": {
+ "type": "string",
+ "enum": [ "replica" ],
+ "default": "replica"
+ },
+ "server_addresses": {
+ "title": "Server addresses",
+ "type": "string",
+ "description": "The members of a replica set. Please specify `host`:`port` of each member seperated by comma.",
+ "examples": [ "host1:27017,host2:27017,host3:27017" ],
+ "order": 0
+ },
+ "replica_set": {
+ "title": "Replica Set",
+ "type": "string",
+ "description": "A replica set name.",
+ "order": 1
+ }
+ }
+ }, {
+ "title": "MongoDB Atlas",
+ "required": [ "instance", "cluster_url" ],
+ "properties": {
+ "instance": {
+ "type": "string",
+ "enum": [ "atlas" ],
+ "default": "atlas"
+ },
+ "cluster_url": {
+ "title": "Cluster URL",
+ "type": "string",
+ "description": "URL of a cluster to connect to.",
+ "order": 0
+ }
+ }
+ } ]
+ },
+ "database": {
+ "title": "DB Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2
+ },
+ "auth_type": {
+ "title": "Authorization type",
+ "type": "object",
+ "description": "Authorization type.",
+ "oneOf": [ {
+ "title": "None",
+ "description": "None.",
+ "required": [ "authorization" ],
+ "type": "object",
+ "properties": {
+ "authorization": {
+ "type": "string",
+ "const": "none"
+ }
+ }
+ }, {
+ "title": "Login/Password",
+ "description": "Login/Password.",
+ "required": [ "authorization", "username", "password" ],
+ "type": "object",
+ "properties": {
+ "authorization": {
+ "type": "string",
+ "const": "login/password"
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 1
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 2
+ }
+ }
+ } ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [ {
+ "title": "No Tunnel",
+ "required": [ "tunnel_method" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "SSH Key Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Password Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "ca81ee7c-3163-4246-af40-094cc31e5e42",
+ "name": "MySQL",
+ "dockerRepository": "airbyte/destination-mysql",
+ "dockerImageTag": "0.1.20",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mysql",
+ "icon": "mysql.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mysql",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "MySQL Destination Spec",
+ "type": "object",
+ "required": [ "host", "port", "username", "database" ],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 3306,
+ "examples": [ "3306" ],
+ "order": 1
+ },
+ "database": {
+ "title": "DB Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL.",
+ "type": "boolean",
+ "default": true,
+ "order": 5
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 6
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [ {
+ "title": "No Tunnel",
+ "required": [ "tunnel_method" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "SSH Key Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Password Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "normalizationConfig": {
+ "normalizationRepository": "airbyte/normalization-mysql",
+ "normalizationTag": "0.4.0",
+ "normalizationIntegrationType": "mysql"
+ },
+ "supportsDbt": true
+ }, {
+ "destinationDefinitionId": "3986776d-2319-4de9-8af8-db14c0996e72",
+ "name": "Oracle",
+ "dockerRepository": "airbyte/destination-oracle",
+ "dockerImageTag": "0.1.19",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/oracle",
+ "icon": "oracle.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/oracle",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Oracle Destination Spec",
+ "type": "object",
+ "required": [ "host", "port", "username", "sid" ],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "The hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "The port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 1521,
+ "examples": [ "1521" ],
+ "order": 1
+ },
+ "sid": {
+ "title": "SID",
+ "description": "The System Identifier uniquely distinguishes the instance from any other instance on the same computer.",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "title": "User",
+ "description": "The username to access the database. This user must have CREATE USER privileges in the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "The password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 5
+ },
+ "schema": {
+ "title": "Default Schema",
+ "description": "The default schema is used as the target schema for all statements issued from the connection that do not explicitly specify a schema name. The usual value for this field is \"airbyte\". In Oracle, schemas and users are the same thing, so the \"user\" parameter is used as the login credentials and this is used for the default Airbyte message schema.",
+ "type": "string",
+ "examples": [ "airbyte" ],
+ "default": "airbyte",
+ "order": 6
+ },
+ "encryption": {
+ "title": "Encryption",
+ "type": "object",
+ "description": "The encryption method which is used when communicating with the database.",
+ "order": 7,
+ "oneOf": [ {
+ "title": "Unencrypted",
+ "description": "Data transfer will not be encrypted.",
+ "required": [ "encryption_method" ],
+ "properties": {
+ "encryption_method": {
+ "type": "string",
+ "const": "unencrypted",
+ "enum": [ "unencrypted" ],
+ "default": "unencrypted"
+ }
+ }
+ }, {
+ "title": "Native Network Encryption (NNE)",
+ "description": "The native network encryption gives you the ability to encrypt database connections, without the configuration overhead of TCP/IP and SSL/TLS and without the need to open and listen on different ports.",
+ "required": [ "encryption_method" ],
+ "properties": {
+ "encryption_method": {
+ "type": "string",
+ "const": "client_nne",
+ "enum": [ "client_nne" ],
+ "default": "client_nne"
+ },
+ "encryption_algorithm": {
+ "type": "string",
+ "description": "This parameter defines the database encryption algorithm.",
+ "title": "Encryption Algorithm",
+ "default": "AES256",
+ "enum": [ "AES256", "RC4_56", "3DES168" ]
+ }
+ }
+ }, {
+ "title": "TLS Encrypted (verify certificate)",
+ "description": "Verify and use the certificate provided by the server.",
+ "required": [ "encryption_method", "ssl_certificate" ],
+ "properties": {
+ "encryption_method": {
+ "type": "string",
+ "const": "encrypted_verify_certificate",
+ "enum": [ "encrypted_verify_certificate" ],
+ "default": "encrypted_verify_certificate"
+ },
+ "ssl_certificate": {
+ "title": "SSL PEM file",
+ "description": "Privacy Enhanced Mail (PEM) files are concatenated certificate containers frequently used in certificate installations.",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true
+ }
+ }
+ } ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [ {
+ "title": "No Tunnel",
+ "required": [ "tunnel_method" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "SSH Key Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Password Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "normalizationConfig": {
+ "normalizationRepository": "airbyte/normalization-oracle",
+ "normalizationTag": "0.4.0",
+ "normalizationIntegrationType": "oracle"
+ },
+ "supportsDbt": true
+ }, {
+ "destinationDefinitionId": "25c5221d-dce2-4163-ade9-739ef790f503",
+ "name": "Postgres",
+ "dockerRepository": "airbyte/destination-postgres",
+ "dockerImageTag": "0.3.27",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/postgres",
+ "icon": "postgresql.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/postgres",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Postgres Destination Spec",
+ "type": "object",
+ "required": [ "host", "port", "username", "database", "schema" ],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 5432,
+ "examples": [ "5432" ],
+ "order": 1
+ },
+ "database": {
+ "title": "DB Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2
+ },
+ "schema": {
+ "title": "Default Schema",
+ "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
+ "type": "string",
+ "examples": [ "public" ],
+ "default": "public",
+ "order": 3
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 4
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 5
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL. When activating SSL, please select one of the connection modes.",
+ "type": "boolean",
+ "default": false,
+ "order": 6
+ },
+ "ssl_mode": {
+ "title": "SSL modes",
+ "description": "SSL connection modes. \n disable - Chose this mode to disable encryption of communication between Airbyte and destination database\n allow - Chose this mode to enable encryption only when required by the source database\n prefer - Chose this mode to allow unencrypted connection only if the source database does not support encryption\n require - Chose this mode to always require encryption. If the source database server does not support encryption, connection will fail\n verify-ca - Chose this mode to always require encryption and to verify that the source database server has a valid SSL certificate\n verify-full - This is the most secure mode. Chose this mode to always require encryption and to verify the identity of the source database server\n See more information - in the docs.",
+ "type": "object",
+ "order": 7,
+ "oneOf": [ {
+ "title": "disable",
+ "additionalProperties": false,
+ "description": "Disable SSL.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "disable",
+ "enum": [ "disable" ],
+ "default": "disable",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "allow",
+ "additionalProperties": false,
+ "description": "Allow SSL mode.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "allow",
+ "enum": [ "allow" ],
+ "default": "allow",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "prefer",
+ "additionalProperties": false,
+ "description": "Prefer SSL mode.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "prefer",
+ "enum": [ "prefer" ],
+ "default": "prefer",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "require",
+ "additionalProperties": false,
+ "description": "Require SSL mode.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "require",
+ "enum": [ "require" ],
+ "default": "require",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "verify-ca",
+ "additionalProperties": false,
+ "description": "Verify-ca SSL mode.",
+ "required": [ "mode", "ca_certificate" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-ca",
+ "enum": [ "verify-ca" ],
+ "default": "verify-ca",
+ "order": 0
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ },
+ "client_key_password": {
+ "type": "string",
+ "title": "Client key password",
+ "description": "Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "verify-full",
+ "additionalProperties": false,
+ "description": "Verify-full SSL mode.",
+ "required": [ "mode", "ca_certificate", "client_certificate", "client_key" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-full",
+ "enum": [ "verify-full" ],
+ "default": "verify-full",
+ "order": 0
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ },
+ "client_certificate": {
+ "type": "string",
+ "title": "Client certificate",
+ "description": "Client certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 2
+ },
+ "client_key": {
+ "type": "string",
+ "title": "Client key",
+ "description": "Client key",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 3
+ },
+ "client_key_password": {
+ "type": "string",
+ "title": "Client key password",
+ "description": "Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 8
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [ {
+ "title": "No Tunnel",
+ "required": [ "tunnel_method" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "SSH Key Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Password Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "normalizationConfig": {
+ "normalizationRepository": "airbyte/normalization",
+ "normalizationTag": "0.4.0",
+ "normalizationIntegrationType": "postgres"
+ },
+ "supportsDbt": true
+ }, {
+ "destinationDefinitionId": "2340cbba-358e-11ec-8d3d-0242ac130203",
+ "name": "Pulsar",
+ "dockerRepository": "airbyte/destination-pulsar",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/pulsar",
+ "icon": "pulsar.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/pulsar",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Pulsar Destination Spec",
+ "type": "object",
+ "required": [ "brokers", "use_tls", "topic_type", "topic_tenant", "topic_namespace", "topic_pattern", "compression_type", "send_timeout_ms", "max_pending_messages", "max_pending_messages_across_partitions", "batching_enabled", "batching_max_messages", "batching_max_publish_delay", "block_if_queue_full" ],
+ "additionalProperties": true,
+ "properties": {
+ "brokers": {
+ "title": "Pulsar brokers",
+ "description": "A list of host/port pairs to use for establishing the initial connection to the Pulsar cluster.",
+ "type": "string",
+ "examples": [ "broker1:6650,broker2:6650" ]
+ },
+ "use_tls": {
+ "title": "Use TLS",
+ "description": "Whether to use TLS encryption on the connection.",
+ "type": "boolean",
+ "default": false
+ },
+ "topic_type": {
+ "title": "Topic type",
+ "description": "It identifies type of topic. Pulsar supports two kind of topics: persistent and non-persistent. In persistent topic, all messages are durably persisted on disk (that means on multiple disks unless the broker is standalone), whereas non-persistent topic does not persist message into storage disk.",
+ "type": "string",
+ "default": "persistent",
+ "enum": [ "persistent", "non-persistent" ]
+ },
+ "topic_tenant": {
+ "title": "Topic tenant",
+ "description": "The topic tenant within the instance. Tenants are essential to multi-tenancy in Pulsar, and spread across clusters.",
+ "type": "string",
+ "default": "public",
+ "examples": [ "public" ]
+ },
+ "topic_namespace": {
+ "title": "Topic namespace",
+ "description": "The administrative unit of the topic, which acts as a grouping mechanism for related topics. Most topic configuration is performed at the namespace level. Each tenant has one or multiple namespaces.",
+ "type": "string",
+ "default": "default",
+ "examples": [ "default" ]
+ },
+ "topic_pattern": {
+ "title": "Topic pattern",
+ "description": "Topic pattern in which the records will be sent. You can use patterns like '{namespace}' and/or '{stream}' to send the message to a specific topic based on these values. Notice that the topic name will be transformed to a standard naming convention.",
+ "type": "string",
+ "examples": [ "sample.topic", "{namespace}.{stream}.sample" ]
+ },
+ "topic_test": {
+ "title": "Test topic",
+ "description": "Topic to test if Airbyte can produce messages.",
+ "type": "string",
+ "examples": [ "test.topic" ]
+ },
+ "producer_name": {
+ "title": "Producer name",
+ "description": "Name for the producer. If not filled, the system will generate a globally unique name which can be accessed with.",
+ "type": "string",
+ "examples": [ "airbyte-producer" ]
+ },
+ "producer_sync": {
+ "title": "Sync producer",
+ "description": "Wait synchronously until the record has been sent to Pulsar.",
+ "type": "boolean",
+ "default": false
+ },
+ "compression_type": {
+ "title": "Compression type",
+ "description": "Compression type for the producer.",
+ "type": "string",
+ "default": "NONE",
+ "enum": [ "NONE", "LZ4", "ZLIB", "ZSTD", "SNAPPY" ]
+ },
+ "send_timeout_ms": {
+ "title": "Message send timeout",
+ "description": "If a message is not acknowledged by a server before the send-timeout expires, an error occurs (in ms).",
+ "type": "integer",
+ "default": 30000
+ },
+ "max_pending_messages": {
+ "title": "Max pending messages",
+ "description": "The maximum size of a queue holding pending messages.",
+ "type": "integer",
+ "default": 1000
+ },
+ "max_pending_messages_across_partitions": {
+ "title": "Max pending messages across partitions",
+ "description": "The maximum number of pending messages across partitions.",
+ "type": "integer",
+ "default": 50000
+ },
+ "batching_enabled": {
+ "title": "Enable batching",
+ "description": "Control whether automatic batching of messages is enabled for the producer.",
+ "type": "boolean",
+ "default": true
+ },
+ "batching_max_messages": {
+ "title": "Batching max messages",
+ "description": "Maximum number of messages permitted in a batch.",
+ "type": "integer",
+ "default": 1000
+ },
+ "batching_max_publish_delay": {
+ "title": "Batching max publish delay",
+ "description": " Time period in milliseconds within which the messages sent will be batched.",
+ "type": "integer",
+ "default": 1
+ },
+ "block_if_queue_full": {
+ "title": "Block if queue is full",
+ "description": "If the send operation should block when the outgoing message queue is full.",
+ "type": "boolean",
+ "default": false
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "e06ad785-ad6f-4647-b2e8-3027a5c59454",
+ "name": "RabbitMQ",
+ "dockerRepository": "airbyte/destination-rabbitmq",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/rabbitmq",
+ "icon": "pulsar.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/rabbitmq",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Rabbitmq",
+ "type": "object",
+ "required": [ "host", "routing_key" ],
+ "additionalProperties": false,
+ "properties": {
+ "ssl": {
+ "type": "boolean",
+ "description": "SSL enabled.",
+ "default": true
+ },
+ "host": {
+ "type": "string",
+ "description": "The RabbitMQ host name."
+ },
+ "port": {
+ "type": "integer",
+ "description": "The RabbitMQ port."
+ },
+ "virtual_host": {
+ "type": "string",
+ "description": "The RabbitMQ virtual host name."
+ },
+ "username": {
+ "type": "string",
+ "description": "The username to connect."
+ },
+ "password": {
+ "type": "string",
+ "title": "Password",
+ "description": "The password to connect.",
+ "airbyte_secret": true
+ },
+ "exchange": {
+ "type": "string",
+ "description": "The exchange name."
+ },
+ "routing_key": {
+ "type": "string",
+ "description": "The routing key."
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "d4d3fef9-e319-45c2-881a-bd02ce44cc9f",
+ "name": "Redis",
+ "dockerRepository": "airbyte/destination-redis",
+ "dockerImageTag": "0.1.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redis",
+ "icon": "redis.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redis",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Redis Destination Spec",
+ "type": "object",
+ "required": [ "host", "username", "port", "cache_type" ],
+ "additionalProperties": false,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Redis host to connect to.",
+ "type": "string",
+ "examples": [ "localhost,127.0.0.1" ],
+ "order": 1
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of Redis.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 6379,
+ "order": 2
+ },
+ "username": {
+ "title": "Username",
+ "description": "Username associated with Redis.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with Redis.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "type": "boolean",
+ "description": "Indicates whether SSL encryption protocol will be used to connect to Redis. It is recommended to use SSL connection if possible.",
+ "default": false,
+ "order": 5
+ },
+ "ssl_mode": {
+ "title": "SSL Modes",
+ "description": "SSL connection modes. \n verify-full - This is the most secure mode. Always require encryption and verifies the identity of the source database server",
+ "type": "object",
+ "order": 6,
+ "oneOf": [ {
+ "title": "disable",
+ "additionalProperties": false,
+ "description": "Disable SSL.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "disable",
+ "enum": [ "disable" ],
+ "default": "disable",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "verify-full",
+ "additionalProperties": false,
+ "description": "Verify-full SSL mode.",
+ "required": [ "mode", "ca_certificate", "client_certificate", "client_key" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-full",
+ "enum": [ "verify-full" ],
+ "default": "verify-full",
+ "order": 0
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA Certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ },
+ "client_certificate": {
+ "type": "string",
+ "title": "Client Certificate",
+ "description": "Client certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 2
+ },
+ "client_key": {
+ "type": "string",
+ "title": "Client Key",
+ "description": "Client key",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 3
+ },
+ "client_key_password": {
+ "type": "string",
+ "title": "Client key password",
+ "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ },
+ "cache_type": {
+ "title": "Cache type",
+ "type": "string",
+ "default": "hash",
+ "description": "Redis cache type to store data in.",
+ "enum": [ "hash" ],
+ "order": 7
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [ {
+ "title": "No Tunnel",
+ "required": [ "tunnel_method" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "SSH Key Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Password Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "f7a7d195-377f-cf5b-70a5-be6b819019dc",
+ "name": "Redshift",
+ "dockerRepository": "airbyte/destination-redshift",
+ "dockerImageTag": "0.4.5",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redshift",
+ "icon": "redshift.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redshift",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Redshift Destination Spec",
+ "type": "object",
+ "required": [ "host", "port", "database", "username", "password", "schema" ],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "description": "Host Endpoint of the Redshift Cluster (must include the cluster-id, region and end with .redshift.amazonaws.com)",
+ "type": "string",
+ "title": "Host",
+ "order": 1
+ },
+ "port": {
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 5439,
+ "examples": [ "5439" ],
+ "title": "Port",
+ "order": 2
+ },
+ "username": {
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "title": "Username",
+ "order": 3
+ },
+ "password": {
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "title": "Password",
+ "order": 4
+ },
+ "database": {
+ "description": "Name of the database.",
+ "type": "string",
+ "title": "Database",
+ "order": 5
+ },
+ "schema": {
+ "description": "The default schema tables are written to if the source does not specify a namespace. Unless specifically configured, the usual value for this field is \"public\".",
+ "type": "string",
+ "examples": [ "public" ],
+ "default": "public",
+ "title": "Default Schema",
+ "order": 6
+ },
+ "jdbc_url_params": {
+ "title": "JDBC URL Params",
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "type": "string",
+ "order": 7
+ },
+ "uploading_method": {
+ "title": "Uploading Method",
+ "type": "object",
+ "description": "The method how the data will be uploaded to the database.",
+ "order": 8,
+ "oneOf": [ {
+ "title": "Standard",
+ "required": [ "method" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "Standard"
+ }
+ }
+ }, {
+ "title": "S3 Staging",
+ "required": [ "method", "s3_bucket_name", "s3_bucket_region", "access_key_id", "secret_access_key" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "S3 Staging"
+ },
+ "s3_bucket_name": {
+ "title": "S3 Bucket Name",
+ "type": "string",
+ "description": "The name of the staging S3 bucket to use if utilising a COPY strategy. COPY is recommended for production workloads for better speed and scalability. See AWS docs for more details.",
+ "examples": [ "airbyte.staging" ]
+ },
+ "s3_bucket_path": {
+ "title": "S3 Bucket Path",
+ "type": "string",
+ "description": "The directory under the S3 bucket where data will be written. If not provided, then defaults to the root directory. See path's name recommendations for more details.",
+ "examples": [ "data_sync/test" ]
+ },
+ "s3_bucket_region": {
+ "title": "S3 Bucket Region",
+ "type": "string",
+ "default": "",
+ "description": "The region of the S3 staging bucket to use if utilising a COPY strategy. See AWS docs for details.",
+ "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1" ]
+ },
+ "file_name_pattern": {
+ "type": "string",
+ "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
+ "title": "S3 Filename pattern",
+ "examples": [ "{date}", "{date:yyyy_MM}", "{timestamp}", "{part_number}", "{sync_id}" ],
+ "order": 8
+ },
+ "access_key_id": {
+ "type": "string",
+ "description": "This ID grants access to the above S3 staging bucket. Airbyte requires Read and Write permissions to the given bucket. See AWS docs on how to generate an access key ID and secret access key.",
+ "title": "S3 Key Id",
+ "airbyte_secret": true
+ },
+ "secret_access_key": {
+ "type": "string",
+ "description": "The corresponding secret to the above access key id. See AWS docs on how to generate an access key ID and secret access key.",
+ "title": "S3 Access Key",
+ "airbyte_secret": true
+ },
+ "purge_staging_data": {
+ "title": "Purge Staging Files and Tables",
+ "type": "boolean",
+ "description": "Whether to delete the staging files from S3 after completing the sync. See docs for details.",
+ "default": true
+ },
+ "encryption": {
+ "title": "Encryption",
+ "type": "object",
+ "description": "How to encrypt the staging data",
+ "default": {
+ "encryption_type": "none"
+ },
+ "oneOf": [ {
+ "title": "No encryption",
+ "description": "Staging data will be stored in plaintext.",
+ "type": "object",
+ "required": [ "encryption_type" ],
+ "properties": {
+ "encryption_type": {
+ "type": "string",
+ "const": "none",
+ "enum": [ "none" ],
+ "default": "none"
+ }
+ }
+ }, {
+ "title": "AES-CBC envelope encryption",
+ "description": "Staging data will be encrypted using AES-CBC envelope encryption.",
+ "type": "object",
+ "required": [ "encryption_type" ],
+ "properties": {
+ "encryption_type": {
+ "type": "string",
+ "const": "aes_cbc_envelope",
+ "enum": [ "aes_cbc_envelope" ],
+ "default": "aes_cbc_envelope"
+ },
+ "key_encrypting_key": {
+ "type": "string",
+ "title": "Key",
+ "description": "The key, base64-encoded. Must be either 128, 192, or 256 bits. Leave blank to have Airbyte generate an ephemeral key for each sync.",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ },
+ "file_buffer_count": {
+ "title": "File Buffer Count",
+ "type": "integer",
+ "minimum": 10,
+ "maximum": 50,
+ "default": 10,
+ "description": "Number of file buffers allocated for writing data. Increasing this number is beneficial for connections using Change Data Capture (CDC) and up to the number of streams within a connection. Increasing the number of file buffers past the maximum number of streams has deteriorating effects",
+ "examples": [ "10" ]
+ }
+ }
+ } ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [ {
+ "title": "No Tunnel",
+ "required": [ "tunnel_method" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "SSH Key Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Password Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "resourceRequirements": {
+ "jobSpecific": [ {
+ "jobType": "sync",
+ "resourceRequirements": {
+ "memory_request": "1Gi",
+ "memory_limit": "1Gi"
+ }
+ } ]
+ },
+ "normalizationConfig": {
+ "normalizationRepository": "airbyte/normalization-redshift",
+ "normalizationTag": "0.4.0",
+ "normalizationIntegrationType": "redshift"
+ },
+ "supportsDbt": true
+ }, {
+ "destinationDefinitionId": "825c5ee3-ed9a-4dd1-a2b6-79ed722f7b13",
+ "name": "Redpanda",
+ "dockerRepository": "airbyte/destination-redpanda",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redpanda",
+ "icon": "redpanda.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redpanda",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Redpanda destination connector",
+ "type": "object",
+ "required": [ "bootstrap_servers", "buffer_memory", "compression_type", "retries", "batch_size" ],
+ "properties": {
+ "bootstrap_servers": {
+ "title": "Bootstrap Servers",
+ "description": "A list of host/port pairs to use for establishing the initial connection to the Redpanda cluster. The client will make use of all servers irrespective of which servers are specified here for bootstrapping—this list only impacts the initial hosts used to discover the full set of servers. This list should be in the form host1:port1,host2:port2,...
. Since these servers are just used for the initial connection to discover the full cluster membership (which may change dynamically), this list need not contain the full set of servers (you may want more than one, though, in case a server is down).",
+ "type": "string",
+ "examples": [ "redpanda-broker1:9092,redpanda-broker2:9092" ]
+ },
+ "buffer_memory": {
+ "title": "Buffer Memory",
+ "description": "The total bytes of memory the producer can use to buffer records waiting to be sent to the server.",
+ "type": "string",
+ "examples": 33554432
+ },
+ "compression_type": {
+ "title": "Compression Type",
+ "description": "The compression type for all data generated by the producer.",
+ "type": "string",
+ "default": "none",
+ "enum": [ "none", "gzip", "snappy", "lz4", "zstd" ]
+ },
+ "batch_size": {
+ "title": "Batch Size",
+ "description": "The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition.",
+ "type": "integer",
+ "examples": [ 16384 ]
+ },
+ "retries": {
+ "title": "Retries",
+ "description": "Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error.",
+ "type": "integer",
+ "examples": [ 2147483647 ]
+ },
+ "topic_num_partitions": {
+ "title": "Number of topic partitions",
+ "description": "The number of topic partitions which will be created on topic creation",
+ "type": "integer",
+ "examples": [ 10 ]
+ },
+ "topic_replication_factor": {
+ "title": "Topic replication factor",
+ "description": "The number of topics to which messages will be replicated",
+ "type": "integer",
+ "examples": [ 10 ]
+ },
+ "socket_connection_setup_timeout_ms": {
+ "title": "Socket Connection Setup Timeout",
+ "description": "The amount of time the client will wait for the socket connection to be established.",
+ "type": "integer",
+ "examples": [ 10000 ]
+ },
+ "socket_connection_setup_timeout_max_ms": {
+ "title": "Socket Connection Setup Max Timeout",
+ "description": "The maximum amount of time the client will wait for the socket connection to be established. The connection setup timeout will increase exponentially for each consecutive connection failure up to this maximum.",
+ "type": "integer",
+ "examples": [ 30000 ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "2c9d93a7-9a17-4789-9de9-f46f0097eb70",
+ "name": "Rockset",
+ "dockerRepository": "airbyte/destination-rockset",
+ "dockerImageTag": "0.1.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/rockset",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/rockset",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Rockset Destination Spec",
+ "type": "object",
+ "required": [ "api_key", "workspace" ],
+ "additionalProperties": false,
+ "properties": {
+ "api_key": {
+ "title": "Api Key",
+ "description": "Rockset api key",
+ "type": "string",
+ "order": 0,
+ "airbyte_secret": true
+ },
+ "workspace": {
+ "title": "Workspace",
+ "description": "The Rockset workspace in which collections will be created + written to.",
+ "type": "string",
+ "examples": [ "commons", "my_workspace" ],
+ "default": "commons",
+ "airbyte_secret": false,
+ "order": 1
+ },
+ "api_server": {
+ "title": "Api Server",
+ "description": "Rockset api URL",
+ "type": "string",
+ "airbyte_secret": false,
+ "default": "https://api.rs2.usw2.rockset.com",
+ "pattern": "^https:\\/\\/.*.rockset.com$",
+ "order": 2
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "append", "overwrite" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "4816b78f-1489-44c1-9060-4b19d5fa9362",
+ "name": "S3",
+ "dockerRepository": "airbyte/destination-s3",
+ "dockerImageTag": "0.3.23",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/s3",
+ "icon": "s3.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/s3",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "S3 Destination Spec",
+ "type": "object",
+ "required": [ "s3_bucket_name", "s3_bucket_path", "s3_bucket_region", "format" ],
+ "properties": {
+ "access_key_id": {
+ "type": "string",
+ "description": "The access key ID to access the S3 bucket. Airbyte requires Read and Write permissions to the given bucket. Read more here.",
+ "title": "S3 Key ID",
+ "airbyte_secret": true,
+ "examples": [ "A012345678910EXAMPLE" ],
+ "order": 0
+ },
+ "secret_access_key": {
+ "type": "string",
+ "description": "The corresponding secret to the access key ID. Read more here",
+ "title": "S3 Access Key",
+ "airbyte_secret": true,
+ "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ],
+ "order": 1
+ },
+ "s3_bucket_name": {
+ "title": "S3 Bucket Name",
+ "type": "string",
+ "description": "The name of the S3 bucket. Read more here.",
+ "examples": [ "airbyte_sync" ],
+ "order": 2
+ },
+ "s3_bucket_path": {
+ "title": "S3 Bucket Path",
+ "description": "Directory under the S3 bucket where data will be written. Read more here",
+ "type": "string",
+ "examples": [ "data_sync/test" ],
+ "order": 3
+ },
+ "s3_bucket_region": {
+ "title": "S3 Bucket Region",
+ "type": "string",
+ "default": "",
+ "description": "The region of the S3 bucket. See here for all region codes.",
+ "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
+ "order": 4
+ },
+ "format": {
+ "title": "Output Format",
+ "type": "object",
+ "description": "Format of the data output. See here for more details",
+ "oneOf": [ {
+ "title": "Avro: Apache Avro",
+ "required": [ "format_type", "compression_codec" ],
+ "properties": {
+ "format_type": {
+ "title": "Format Type",
+ "type": "string",
+ "enum": [ "Avro" ],
+ "default": "Avro",
+ "order": 0
+ },
+ "compression_codec": {
+ "title": "Compression Codec",
+ "description": "The compression algorithm used to compress data. Default to no compression.",
+ "type": "object",
+ "oneOf": [ {
+ "title": "No Compression",
+ "required": [ "codec" ],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": [ "no compression" ],
+ "default": "no compression"
+ }
+ }
+ }, {
+ "title": "Deflate",
+ "required": [ "codec", "compression_level" ],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": [ "Deflate" ],
+ "default": "Deflate"
+ },
+ "compression_level": {
+ "title": "Deflate Level",
+ "description": "0: no compression & fastest, 9: best compression & slowest.",
+ "type": "integer",
+ "default": 0,
+ "minimum": 0,
+ "maximum": 9
+ }
+ }
+ }, {
+ "title": "bzip2",
+ "required": [ "codec" ],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": [ "bzip2" ],
+ "default": "bzip2"
+ }
+ }
+ }, {
+ "title": "xz",
+ "required": [ "codec", "compression_level" ],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": [ "xz" ],
+ "default": "xz"
+ },
+ "compression_level": {
+ "title": "Compression Level",
+ "description": "See here for details.",
+ "type": "integer",
+ "default": 6,
+ "minimum": 0,
+ "maximum": 9
+ }
+ }
+ }, {
+ "title": "zstandard",
+ "required": [ "codec", "compression_level" ],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": [ "zstandard" ],
+ "default": "zstandard"
+ },
+ "compression_level": {
+ "title": "Compression Level",
+ "description": "Negative levels are 'fast' modes akin to lz4 or snappy, levels above 9 are generally for archival purposes, and levels above 18 use a lot of memory.",
+ "type": "integer",
+ "default": 3,
+ "minimum": -5,
+ "maximum": 22
+ },
+ "include_checksum": {
+ "title": "Include Checksum",
+ "description": "If true, include a checksum with each data block.",
+ "type": "boolean",
+ "default": false
+ }
+ }
+ }, {
+ "title": "snappy",
+ "required": [ "codec" ],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": [ "snappy" ],
+ "default": "snappy"
+ }
+ }
+ } ],
+ "order": 1
+ }
+ }
+ }, {
+ "title": "CSV: Comma-Separated Values",
+ "required": [ "format_type", "flattening" ],
+ "properties": {
+ "format_type": {
+ "title": "Format Type",
+ "type": "string",
+ "enum": [ "CSV" ],
+ "default": "CSV"
+ },
+ "flattening": {
+ "type": "string",
+ "title": "Flattening",
+ "description": "Whether the input json data should be normalized (flattened) in the output CSV. Please refer to docs for details.",
+ "default": "No flattening",
+ "enum": [ "No flattening", "Root level flattening" ]
+ },
+ "compression": {
+ "title": "Compression",
+ "type": "object",
+ "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".csv.gz\").",
+ "oneOf": [ {
+ "title": "No Compression",
+ "requires": [ "compression_type" ],
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": [ "No Compression" ],
+ "default": "No Compression"
+ }
+ }
+ }, {
+ "title": "GZIP",
+ "requires": [ "compression_type" ],
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": [ "GZIP" ],
+ "default": "GZIP"
+ }
+ }
+ } ]
+ }
+ }
+ }, {
+ "title": "JSON Lines: Newline-delimited JSON",
+ "required": [ "format_type" ],
+ "properties": {
+ "format_type": {
+ "title": "Format Type",
+ "type": "string",
+ "enum": [ "JSONL" ],
+ "default": "JSONL"
+ },
+ "flattening": {
+ "type": "string",
+ "title": "Flattening",
+ "description": "Whether the input json data should be normalized (flattened) in the output JSON Lines. Please refer to docs for details.",
+ "default": "No flattening",
+ "enum": [ "No flattening", "Root level flattening" ]
+ },
+ "compression": {
+ "title": "Compression",
+ "type": "object",
+ "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".jsonl.gz\").",
+ "oneOf": [ {
+ "title": "No Compression",
+ "requires": "compression_type",
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": [ "No Compression" ],
+ "default": "No Compression"
+ }
+ }
+ }, {
+ "title": "GZIP",
+ "requires": "compression_type",
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": [ "GZIP" ],
+ "default": "GZIP"
+ }
+ }
+ } ]
+ }
+ }
+ }, {
+ "title": "Parquet: Columnar Storage",
+ "required": [ "format_type" ],
+ "properties": {
+ "format_type": {
+ "title": "Format Type",
+ "type": "string",
+ "enum": [ "Parquet" ],
+ "default": "Parquet"
+ },
+ "compression_codec": {
+ "title": "Compression Codec",
+ "description": "The compression algorithm used to compress data pages.",
+ "type": "string",
+ "enum": [ "UNCOMPRESSED", "SNAPPY", "GZIP", "LZO", "BROTLI", "LZ4", "ZSTD" ],
+ "default": "UNCOMPRESSED"
+ },
+ "block_size_mb": {
+ "title": "Block Size (Row Group Size) (MB)",
+ "description": "This is the size of a row group being buffered in memory. It limits the memory usage when writing. Larger values will improve the IO when reading, but consume more memory when writing. Default: 128 MB.",
+ "type": "integer",
+ "default": 128,
+ "examples": [ 128 ]
+ },
+ "max_padding_size_mb": {
+ "title": "Max Padding Size (MB)",
+ "description": "Maximum size allowed as padding to align row groups. This is also the minimum size of a row group. Default: 8 MB.",
+ "type": "integer",
+ "default": 8,
+ "examples": [ 8 ]
+ },
+ "page_size_kb": {
+ "title": "Page Size (KB)",
+ "description": "The page size is for compression. A block is composed of pages. A page is the smallest unit that must be read fully to access a single record. If this value is too small, the compression will deteriorate. Default: 1024 KB.",
+ "type": "integer",
+ "default": 1024,
+ "examples": [ 1024 ]
+ },
+ "dictionary_page_size_kb": {
+ "title": "Dictionary Page Size (KB)",
+ "description": "There is one dictionary page per column per row group when dictionary encoding is used. The dictionary page size works like the page size but for dictionary. Default: 1024 KB.",
+ "type": "integer",
+ "default": 1024,
+ "examples": [ 1024 ]
+ },
+ "dictionary_encoding": {
+ "title": "Dictionary Encoding",
+ "description": "Default: true.",
+ "type": "boolean",
+ "default": true
+ }
+ }
+ } ],
+ "order": 5
+ },
+ "s3_endpoint": {
+ "title": "Endpoint",
+ "type": "string",
+ "default": "",
+ "description": "Your S3 endpoint url. Read more here",
+ "examples": [ "http://localhost:9000" ],
+ "order": 6
+ },
+ "s3_path_format": {
+ "title": "S3 Path Format",
+ "description": "Format string on how data will be organized inside the S3 bucket directory. Read more here",
+ "type": "string",
+ "examples": [ "${NAMESPACE}/${STREAM_NAME}/${YEAR}_${MONTH}_${DAY}_${EPOCH}_" ],
+ "order": 7
+ },
+ "file_name_pattern": {
+ "type": "string",
+ "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
+ "title": "S3 Filename pattern",
+ "examples": [ "{date}", "{date:yyyy_MM}", "{timestamp}", "{part_number}", "{sync_id}" ],
+ "order": 8
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "resourceRequirements": {
+ "jobSpecific": [ {
+ "jobType": "sync",
+ "resourceRequirements": {
+ "memory_request": "1Gi",
+ "memory_limit": "1Gi"
+ }
+ } ]
+ }
+ }, {
+ "destinationDefinitionId": "471e5cab-8ed1-49f3-ba11-79c687784737",
+ "name": "S3 Glue",
+ "dockerRepository": "airbyte/destination-s3-glue",
+ "dockerImageTag": "0.1.6",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/s3-glue",
+ "icon": "s3-glue.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/s3-glue",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "S3 Destination Spec",
+ "type": "object",
+ "required": [ "s3_bucket_name", "s3_bucket_path", "s3_bucket_region", "format", "glue_database", "glue_serialization_library" ],
+ "properties": {
+ "access_key_id": {
+ "type": "string",
+ "description": "The access key ID to access the S3 bucket. Airbyte requires Read and Write permissions to the given bucket. Read more here.",
+ "title": "S3 Key ID",
+ "airbyte_secret": true,
+ "examples": [ "A012345678910EXAMPLE" ],
+ "order": 0
+ },
+ "secret_access_key": {
+ "type": "string",
+ "description": "The corresponding secret to the access key ID. Read more here",
+ "title": "S3 Access Key",
+ "airbyte_secret": true,
+ "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ],
+ "order": 1
+ },
+ "s3_bucket_name": {
+ "title": "S3 Bucket Name",
+ "type": "string",
+ "description": "The name of the S3 bucket. Read more here.",
+ "examples": [ "airbyte_sync" ],
+ "order": 2
+ },
+ "s3_bucket_path": {
+ "title": "S3 Bucket Path",
+ "description": "Directory under the S3 bucket where data will be written. Read more here",
+ "type": "string",
+ "examples": [ "data_sync/test" ],
+ "order": 3
+ },
+ "s3_bucket_region": {
+ "title": "S3 Bucket Region",
+ "type": "string",
+ "default": "",
+ "description": "The region of the S3 bucket. See here for all region codes.",
+ "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
+ "order": 4
+ },
+ "format": {
+ "title": "Output Format",
+ "type": "object",
+ "description": "Format of the data output. See here for more details",
+ "oneOf": [ {
+ "title": "JSON Lines: Newline-delimited JSON",
+ "required": [ "format_type" ],
+ "properties": {
+ "format_type": {
+ "title": "Format Type",
+ "type": "string",
+ "enum": [ "JSONL" ],
+ "default": "JSONL"
+ },
+ "compression": {
+ "title": "Compression",
+ "type": "object",
+ "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".jsonl.gz\").",
+ "oneOf": [ {
+ "title": "No Compression",
+ "requires": "compression_type",
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": [ "No Compression" ],
+ "default": "No Compression"
+ }
+ }
+ }, {
+ "title": "GZIP",
+ "requires": "compression_type",
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": [ "GZIP" ],
+ "default": "GZIP"
+ }
+ }
+ } ]
+ },
+ "flattening": {
+ "type": "string",
+ "title": "Flattening",
+ "description": "Whether the input json data should be normalized (flattened) in the output JSON Lines. Please refer to docs for details.",
+ "default": "Root level flattening",
+ "enum": [ "No flattening", "Root level flattening" ]
+ }
+ }
+ } ],
+ "order": 5
+ },
+ "s3_endpoint": {
+ "title": "Endpoint",
+ "type": "string",
+ "default": "",
+ "description": "Your S3 endpoint url. Read more here",
+ "examples": [ "http://localhost:9000" ],
+ "order": 6
+ },
+ "s3_path_format": {
+ "title": "S3 Path Format",
+ "description": "Format string on how data will be organized inside the S3 bucket directory. Read more here",
+ "type": "string",
+ "examples": [ "${NAMESPACE}/${STREAM_NAME}/${YEAR}_${MONTH}_${DAY}_${EPOCH}_" ],
+ "order": 7
+ },
+ "file_name_pattern": {
+ "type": "string",
+ "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
+ "title": "S3 Filename pattern",
+ "examples": [ "{date}", "{date:yyyy_MM}", "{timestamp}", "{part_number}", "{sync_id}" ],
+ "order": 8
+ },
+ "glue_database": {
+ "type": "string",
+ "description": "Name of the glue database for creating the tables, leave blank if no integration",
+ "title": "Glue database name",
+ "examples": [ "airbyte_database" ],
+ "order": 9
+ },
+ "glue_serialization_library": {
+ "title": "Serialization Library",
+ "description": "The library that your query engine will use for reading and writing data in your lake.",
+ "type": "string",
+ "enum": [ "org.openx.data.jsonserde.JsonSerDe", "org.apache.hive.hcatalog.data.JsonSerDe" ],
+ "default": "org.openx.data.jsonserde.JsonSerDe",
+ "order": 10
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "50a559a7-6323-4e33-8aa0-51dfd9dfadac",
+ "name": "SelectDB",
+ "dockerRepository": "airbyte/destination-selectdb",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/selectdb",
+ "icon": "select.db",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/selectdb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "SelectDB Destination Spec",
+ "type": "object",
+ "required": [ "load_url", "jdbc_url", "cluster_name", "user_name", "password", "database" ],
+ "properties": {
+ "load_url": {
+ "title": "loadURL",
+ "description": "load host and port: xxx.privatelink.aliyun.com:47057",
+ "type": "string",
+ "order": 0
+ },
+ "jdbc_url": {
+ "title": "jdbcURL",
+ "description": "jdbc host and port: xxx.privatelink.aliyun.com:30523",
+ "type": "string",
+ "order": 1
+ },
+ "cluster_name": {
+ "title": "ClusterName",
+ "description": "clusterName of SelectDB",
+ "type": "string",
+ "order": 2
+ },
+ "user_name": {
+ "title": "UserName",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "database": {
+ "title": "DataBase Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 5
+ }
+ }
+ },
+ "supportsIncremental": false,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "append", "overwrite" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "e9810f61-4bab-46d2-bb22-edfc902e0644",
+ "name": "SFTP-JSON",
+ "dockerRepository": "airbyte/destination-sftp-json",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/sftp-json",
+ "icon": "sftp.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/sftp-json",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination SFTP JSON",
+ "type": "object",
+ "required": [ "host", "username", "password", "destination_path" ],
+ "additionalProperties": false,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the SFTP server.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the SFTP server.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ 22 ],
+ "order": 1
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the SFTP server.",
+ "type": "string",
+ "order": 2
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "destination_path": {
+ "title": "Destination path",
+ "type": "string",
+ "description": "Path to the directory where json files will be written.",
+ "examples": [ "/json_data" ],
+ "order": 4
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "424892c4-daac-4491-b35d-c6688ba547ba",
+ "name": "Snowflake",
+ "dockerRepository": "airbyte/destination-snowflake",
+ "dockerImageTag": "0.4.61",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/snowflake",
+ "icon": "snowflake.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/snowflake",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Snowflake Destination Spec",
+ "type": "object",
+ "required": [ "host", "role", "warehouse", "database", "schema", "username" ],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "description": "Enter your Snowflake account's locator (in the format ...snowflakecomputing.com)",
+ "examples": [ "accountname.us-east-2.aws.snowflakecomputing.com", "accountname.snowflakecomputing.com" ],
+ "type": "string",
+ "title": "Host",
+ "pattern": "^(http(s)?:\\/\\/)?([^./?#]+\\.)?([^./?#]+\\.)?([^./?#]+\\.)?([^./?#]+\\.snowflakecomputing\\.com)$",
+ "pattern_descriptor": "{account_name}.snowflakecomputing.com or {accountname}.{aws_location}.aws.snowflakecomputing.com",
+ "order": 0
+ },
+ "role": {
+ "description": "Enter the role that you want to use to access Snowflake",
+ "examples": [ "AIRBYTE_ROLE" ],
+ "type": "string",
+ "title": "Role",
+ "order": 1
+ },
+ "warehouse": {
+ "description": "Enter the name of the warehouse that you want to sync data into",
+ "examples": [ "AIRBYTE_WAREHOUSE" ],
+ "type": "string",
+ "title": "Warehouse",
+ "order": 2
+ },
+ "database": {
+ "description": "Enter the name of the database you want to sync data into",
+ "examples": [ "AIRBYTE_DATABASE" ],
+ "type": "string",
+ "title": "Database",
+ "order": 3
+ },
+ "schema": {
+ "description": "Enter the name of the default schema",
+ "examples": [ "AIRBYTE_SCHEMA" ],
+ "type": "string",
+ "title": "Default Schema",
+ "order": 4
+ },
+ "username": {
+ "description": "Enter the name of the user you want to use to access the database",
+ "examples": [ "AIRBYTE_USER" ],
+ "type": "string",
+ "title": "Username",
+ "order": 5
+ },
+ "credentials": {
+ "title": "Authorization Method",
+ "description": "",
+ "type": "object",
+ "oneOf": [ {
+ "title": "OAuth2.0",
+ "type": "object",
+ "order": 0,
+ "required": [ "access_token", "refresh_token" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "OAuth2.0",
+ "enum": [ "OAuth2.0" ],
+ "default": "OAuth2.0",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "Enter your application's Client ID",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "Enter your application's Client secret",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Enter you application's Access Token",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "Enter your application's Refresh Token",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "Key Pair Authentication",
+ "type": "object",
+ "order": 1,
+ "required": [ "private_key" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Key Pair Authentication",
+ "enum": [ "Key Pair Authentication" ],
+ "default": "Key Pair Authentication",
+ "order": 0
+ },
+ "private_key": {
+ "type": "string",
+ "title": "Private Key",
+ "description": "RSA Private key to use for Snowflake connection. See the docs for more information on how to obtain this key.",
+ "multiline": true,
+ "airbyte_secret": true
+ },
+ "private_key_password": {
+ "type": "string",
+ "title": "Passphrase",
+ "description": "Passphrase for private key",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "Username and Password",
+ "type": "object",
+ "required": [ "password" ],
+ "order": 2,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Username and Password",
+ "enum": [ "Username and Password" ],
+ "default": "Username and Password",
+ "order": 0
+ },
+ "password": {
+ "description": "Enter the password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "title": "Password",
+ "order": 1
+ }
+ }
+ } ],
+ "order": 6
+ },
+ "jdbc_url_params": {
+ "description": "Enter the additional properties to pass to the JDBC URL string when connecting to the database (formatted as key=value pairs separated by the symbol &). Example: key1=value1&key2=value2&key3=value3",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 7
+ },
+ "loading_method": {
+ "type": "object",
+ "title": "Data Staging Method",
+ "description": "Select a data staging method",
+ "order": 8,
+ "oneOf": [ {
+ "title": "Select another option",
+ "description": "Select another option",
+ "required": [ "method" ],
+ "properties": {
+ "method": {
+ "title": "",
+ "description": "",
+ "type": "string",
+ "enum": [ "Standard" ],
+ "default": "Standard"
+ }
+ }
+ }, {
+ "title": "[Recommended] Internal Staging",
+ "description": "Recommended for large production workloads for better speed and scalability.",
+ "required": [ "method" ],
+ "properties": {
+ "method": {
+ "title": "",
+ "description": "",
+ "type": "string",
+ "enum": [ "Internal Staging" ],
+ "default": "Internal Staging"
+ }
+ }
+ }, {
+ "title": "AWS S3 Staging",
+ "description": "Recommended for large production workloads for better speed and scalability.",
+ "required": [ "method", "s3_bucket_name", "access_key_id", "secret_access_key" ],
+ "properties": {
+ "method": {
+ "title": "",
+ "description": "",
+ "type": "string",
+ "enum": [ "S3 Staging" ],
+ "default": "S3 Staging",
+ "order": 0
+ },
+ "s3_bucket_name": {
+ "title": "S3 Bucket Name",
+ "type": "string",
+ "description": "Enter your S3 bucket name",
+ "examples": [ "airbyte.staging" ],
+ "order": 1
+ },
+ "s3_bucket_region": {
+ "title": "S3 Bucket Region",
+ "type": "string",
+ "default": "",
+ "description": "Enter the region where your S3 bucket resides",
+ "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-west-1", "eu-west-2", "eu-west-3", "eu-south-1", "eu-north-1", "sa-east-1", "me-south-1" ],
+ "order": 2
+ },
+ "access_key_id": {
+ "type": "string",
+ "description": "Enter your AWS access key ID. Airbyte requires Read and Write permissions on your S3 bucket ",
+ "title": "AWS access key ID",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "secret_access_key": {
+ "type": "string",
+ "description": "Enter your AWS secret access key",
+ "title": "AWS secret access key",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "purge_staging_data": {
+ "title": "Purge Staging Files and Tables",
+ "type": "boolean",
+ "description": "Toggle to delete staging files from the S3 bucket after a successful sync",
+ "default": true,
+ "order": 5
+ },
+ "encryption": {
+ "title": "Encryption",
+ "type": "object",
+ "description": "Choose a data encryption method for the staging data",
+ "default": {
+ "encryption_type": "none"
+ },
+ "order": 6,
+ "oneOf": [ {
+ "title": "No encryption",
+ "description": "Staging data will be stored in plaintext.",
+ "type": "object",
+ "required": [ "encryption_type" ],
+ "properties": {
+ "encryption_type": {
+ "type": "string",
+ "const": "none",
+ "enum": [ "none" ],
+ "default": "none"
+ }
+ }
+ }, {
+ "title": "AES-CBC envelope encryption",
+ "description": "Staging data will be encrypted using AES-CBC envelope encryption.",
+ "type": "object",
+ "required": [ "encryption_type" ],
+ "properties": {
+ "encryption_type": {
+ "type": "string",
+ "const": "aes_cbc_envelope",
+ "enum": [ "aes_cbc_envelope" ],
+ "default": "aes_cbc_envelope"
+ },
+ "key_encrypting_key": {
+ "type": "string",
+ "title": "Key",
+ "description": "The key, base64-encoded. Must be either 128, 192, or 256 bits. Leave blank to have Airbyte generate an ephemeral key for each sync.",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ },
+ "file_name_pattern": {
+ "type": "string",
+ "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
+ "title": "S3 Filename pattern",
+ "examples": [ "{date}", "{date:yyyy_MM}", "{timestamp}", "{part_number}", "{sync_id}" ],
+ "order": 7
+ }
+ }
+ }, {
+ "title": "Google Cloud Storage Staging",
+ "description": "Recommended for large production workloads for better speed and scalability.",
+ "required": [ "method", "project_id", "bucket_name", "credentials_json" ],
+ "properties": {
+ "method": {
+ "title": "",
+ "description": "",
+ "type": "string",
+ "enum": [ "GCS Staging" ],
+ "default": "GCS Staging",
+ "order": 0
+ },
+ "project_id": {
+ "title": "Google Cloud project ID",
+ "type": "string",
+ "description": "Enter the Google Cloud project ID",
+ "examples": [ "my-project" ],
+ "order": 1
+ },
+ "bucket_name": {
+ "title": "Cloud Storage bucket name",
+ "type": "string",
+ "description": "Enter the Cloud Storage bucket name",
+ "examples": [ "airbyte-staging" ],
+ "order": 2
+ },
+ "credentials_json": {
+ "title": "Google Application Credentials",
+ "type": "string",
+ "description": "Enter your Google Cloud service account key in the JSON format with read/write access to your Cloud Storage staging bucket",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 3
+ }
+ }
+ }, {
+ "title": "Azure Blob Storage Staging",
+ "description": "Recommended for large production workloads for better speed and scalability.",
+ "required": [ "method", "azure_blob_storage_account_name", "azure_blob_storage_container_name", "azure_blob_storage_sas_token" ],
+ "properties": {
+ "method": {
+ "title": "",
+ "description": "",
+ "type": "string",
+ "enum": [ "Azure Blob Staging" ],
+ "default": "Azure Blob Staging",
+ "order": 0
+ },
+ "azure_blob_storage_endpoint_domain_name": {
+ "title": "Azure Blob Storage Endpoint",
+ "type": "string",
+ "default": "blob.core.windows.net",
+ "description": "Enter the Azure Blob Storage endpoint domain name",
+ "examples": [ "blob.core.windows.net" ],
+ "order": 1
+ },
+ "azure_blob_storage_account_name": {
+ "title": "Azure Blob Storage account name",
+ "type": "string",
+ "description": "Enter your Azure Blob Storage account name",
+ "examples": [ "airbyte5storage" ],
+ "order": 2
+ },
+ "azure_blob_storage_container_name": {
+ "title": "Azure Blob Storage Container Name",
+ "type": "string",
+ "description": "Enter your Azure Blob Storage container name",
+ "examples": [ "airbytetestcontainername" ],
+ "order": 3
+ },
+ "azure_blob_storage_sas_token": {
+ "title": "SAS Token",
+ "type": "string",
+ "airbyte_secret": true,
+ "description": "Enter the Shared access signature (SAS) token to grant Snowflake limited access to objects in your Azure Blob Storage account",
+ "examples": [ "?sv=2016-05-31&ss=b&srt=sco&sp=rwdl&se=2018-06-27T10:05:50Z&st=2017-06-27T02:05:50Z&spr=https,http&sig=bgqQwoXwxzuD2GJfagRg7VOS8hzNr3QLT7rhS8OFRLQ%3D" ],
+ "order": 4
+ }
+ }
+ } ]
+ },
+ "file_buffer_count": {
+ "title": "File Buffer Count",
+ "type": "integer",
+ "minimum": 10,
+ "maximum": 50,
+ "default": 10,
+ "description": "Number of file buffers allocated for writing data. Increasing this number is beneficial for connections using Change Data Capture (CDC) and up to the number of streams within a connection. Increasing the number of file buffers past the maximum number of streams has deteriorating effects",
+ "examples": [ "10" ],
+ "order": 9
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "auth_type" ],
+ "predicate_value": "OAuth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "path_in_connector_config": [ "host" ]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "access_token" ]
+ },
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "refresh_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "resourceRequirements": {
+ "jobSpecific": [ {
+ "jobType": "sync",
+ "resourceRequirements": {
+ "memory_request": "1Gi",
+ "memory_limit": "1Gi"
+ }
+ } ]
+ },
+ "normalizationConfig": {
+ "normalizationRepository": "airbyte/normalization-snowflake",
+ "normalizationTag": "0.4.0",
+ "normalizationIntegrationType": "snowflake"
+ },
+ "supportsDbt": true
+ }, {
+ "destinationDefinitionId": "294a4790-429b-40ae-9516-49826b9702e1",
+ "name": "MariaDB ColumnStore",
+ "dockerRepository": "airbyte/destination-mariadb-columnstore",
+ "dockerImageTag": "0.1.7",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mariadb-columnstore",
+ "icon": "mariadb.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mariadb-columnstore",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "MariaDB Columnstore Destination Spec",
+ "type": "object",
+ "required": [ "host", "port", "username", "database" ],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "The Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "The Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 3306,
+ "examples": [ "3306" ],
+ "order": 1
+ },
+ "database": {
+ "title": "Database",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "title": "Username",
+ "description": "The Username which is used to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "The Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 5
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [ {
+ "title": "No Tunnel",
+ "required": [ "tunnel_method" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "SSH Key Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Password Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "eebd85cf-60b2-4af6-9ba0-edeca01437b0",
+ "name": "Streamr",
+ "dockerRepository": "ghcr.io/devmate-cloud/streamr-airbyte-connectors",
+ "dockerImageTag": "0.0.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/streamr",
+ "icon": "streamr.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/streamr",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Streamr",
+ "type": "object",
+ "required": [ "privateKey", "streamId" ],
+ "additionalProperties": false,
+ "properties": {
+ "privateKey": {
+ "type": "string",
+ "description": "You private key on Streamr",
+ "airbyte_secret": true
+ },
+ "streamId": {
+ "type": "string",
+ "description": "Your full Stream ID",
+ "examples": [ "0x0d0102474519cd2fc1b3e3f962a87e39cbcbead2/test-streamr" ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "append", "append_dedup" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "3dc6f384-cd6b-4be3-ad16-a41450899bf0",
+ "name": "Scylla",
+ "dockerRepository": "airbyte/destination-scylla",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/scylla",
+ "icon": "scylla.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/scylla",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Scylla Destination Spec",
+ "type": "object",
+ "required": [ "keyspace", "username", "password", "address", "port" ],
+ "additionalProperties": true,
+ "properties": {
+ "keyspace": {
+ "title": "Keyspace",
+ "description": "Default Scylla keyspace to create data in.",
+ "type": "string",
+ "order": 0
+ },
+ "username": {
+ "title": "Username",
+ "description": "Username to use to access Scylla.",
+ "type": "string",
+ "order": 1
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with Scylla.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "address": {
+ "title": "Address",
+ "description": "Address to connect to.",
+ "type": "string",
+ "order": 3
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of Scylla.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 9042,
+ "order": 4
+ },
+ "replication": {
+ "title": "Replication factor",
+ "type": "integer",
+ "description": "Indicates to how many nodes the data should be replicated to.",
+ "default": 1,
+ "order": 5
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "a4cbd2d1-8dbe-4818-b8bc-b90ad782d12a",
+ "name": "Google Sheets",
+ "dockerRepository": "airbyte/destination-google-sheets",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/google-sheets",
+ "icon": "google-sheets.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/google-sheets",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Google Sheets",
+ "type": "object",
+ "required": [ "spreadsheet_id", "credentials" ],
+ "additionalProperties": false,
+ "properties": {
+ "spreadsheet_id": {
+ "type": "string",
+ "title": "Spreadsheet Link",
+ "description": "The link to your spreadsheet. See this guide for more details.",
+ "examples": [ "https://docs.google.com/spreadsheets/d/1hLd9Qqti3UyLXZB2aFfUWDT7BG/edit" ]
+ },
+ "credentials": {
+ "type": "object",
+ "title": "Authentication via Google (OAuth)",
+ "description": "Google API Credentials for connecting to Google Sheets and Google Drive APIs",
+ "required": [ "client_id", "client_secret", "refresh_token" ],
+ "properties": {
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Google Sheets developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Google Sheets developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "The token for obtaining new access token.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ "credentials" ],
+ "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
+ "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "b76be0a6-27dc-4560-95f6-2623da0bd7b6",
+ "name": "Local SQLite",
+ "dockerRepository": "airbyte/destination-sqlite",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-sqlite",
+ "icon": "sqlite.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/sqlite",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Sqlite",
+ "type": "object",
+ "required": [ "destination_path" ],
+ "additionalProperties": false,
+ "properties": {
+ "destination_path": {
+ "type": "string",
+ "description": "Path to the sqlite.db file. The file will be placed inside that local mount. For more information check out our docs",
+ "example": "/local/sqlite.db"
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "06ec60c7-7468-45c0-91ac-174f6e1a788b",
+ "name": "TiDB",
+ "dockerRepository": "airbyte/destination-tidb",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/tidb",
+ "icon": "tidb.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/tidb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "TiDB Destination Spec",
+ "type": "object",
+ "required": [ "host", "port", "username", "database" ],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 4000,
+ "examples": [ "4000" ],
+ "order": 1
+ },
+ "database": {
+ "title": "Database",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "default": "",
+ "order": 4
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL.",
+ "type": "boolean",
+ "default": false,
+ "order": 5
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 6
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [ {
+ "title": "No Tunnel",
+ "required": [ "tunnel_method" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "SSH Key Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Password Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "normalizationConfig": {
+ "normalizationRepository": "airbyte/normalization-tidb",
+ "normalizationTag": "0.4.0",
+ "normalizationIntegrationType": "tidb"
+ },
+ "supportsDbt": true
+ }, {
+ "destinationDefinitionId": "36be8dc6-9851-49af-b776-9d4c30e4ab6a",
+ "name": "Typesense",
+ "dockerRepository": "airbyte/destination-typesense",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/typesense",
+ "icon": "typesense.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/typesense",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Typesense",
+ "type": "object",
+ "required": [ "api_key", "host" ],
+ "additionalProperties": false,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Typesense API Key",
+ "order": 0
+ },
+ "host": {
+ "title": "Host",
+ "type": "string",
+ "description": "Hostname of the Typesense instance without protocol.",
+ "order": 1
+ },
+ "port": {
+ "title": "Port",
+ "type": "string",
+ "description": "Port of the Typesense instance. Ex: 8108, 80, 443. Default is 443",
+ "order": 2
+ },
+ "protocol": {
+ "title": "Protocol",
+ "type": "string",
+ "description": "Protocol of the Typesense instance. Ex: http or https. Default is https",
+ "order": 3
+ },
+ "batch_size": {
+ "title": "Batch size",
+ "type": "string",
+ "description": "How many documents should be imported together. Default 1000",
+ "order": 4
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "2300fdcf-a532-419f-9f24-a014336e7966",
+ "name": "YugabyteDB",
+ "dockerRepository": "airbyte/destination-yugabytedb",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/yugabytedb",
+ "icon": "yugabytedb.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/destinations/yugabytedb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Yugabytedb destination spec",
+ "type": "object",
+ "required": [ "host", "port", "username", "database", "schema" ],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "The Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "The Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 3306,
+ "examples": [ "3306" ],
+ "order": 1
+ },
+ "database": {
+ "title": "Database",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "title": "Username",
+ "description": "The Username which is used to access the database.",
+ "type": "string",
+ "order": 4
+ },
+ "schema": {
+ "title": "Default Schema",
+ "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
+ "type": "string",
+ "examples": [ "public" ],
+ "default": "public",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "The Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 5
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 6
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "302e4d8e-08d3-4098-acd4-ac67ca365b88",
+ "name": "Databend",
+ "dockerRepository": "airbyte/destination-databend",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/databend",
+ "icon": "databend.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/databend",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Databend",
+ "type": "object",
+ "required": [ "host", "username", "database" ],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 443,
+ "examples": [ "443" ],
+ "order": 2
+ },
+ "database": {
+ "title": "DB Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 3
+ },
+ "table": {
+ "title": "Default Table",
+ "description": "The default table was written to.",
+ "type": "string",
+ "examples": [ "default" ],
+ "default": "default",
+ "order": 4
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 5
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 6
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "58e6f9da-904e-11ed-a1eb-0242ac120002",
+ "name": "Teradata Vantage",
+ "dockerRepository": "airbyte/destination-teradata",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.io/integrations/destinations/teradata",
+ "icon": "teradata.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/destinations/teradata",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Teradata Destination Spec",
+ "type": "object",
+ "required": [ "host", "username" ],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 1
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "schema": {
+ "title": "Default Schema",
+ "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
+ "type": "string",
+ "examples": [ "airbyte_td" ],
+ "default": "airbyte_td",
+ "order": 3
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL. When activating SSL, please select one of the connection modes.",
+ "type": "boolean",
+ "default": false,
+ "order": 5
+ },
+ "ssl_mode": {
+ "title": "SSL modes",
+ "description": "SSL connection modes. \n disable - Chose this mode to disable encryption of communication between Airbyte and destination database\n allow - Chose this mode to enable encryption only when required by the destination database\n prefer - Chose this mode to allow unencrypted connection only if the destination database does not support encryption\n require - Chose this mode to always require encryption. If the destination database server does not support encryption, connection will fail\n verify-ca - Chose this mode to always require encryption and to verify that the destination database server has a valid SSL certificate\n verify-full - This is the most secure mode. Chose this mode to always require encryption and to verify the identity of the destination database server\n See more information - in the docs.",
+ "type": "object",
+ "order": 6,
+ "oneOf": [ {
+ "title": "disable",
+ "additionalProperties": false,
+ "description": "Disable SSL.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "disable",
+ "enum": [ "disable" ],
+ "default": "disable",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "allow",
+ "additionalProperties": false,
+ "description": "Allow SSL mode.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "allow",
+ "enum": [ "allow" ],
+ "default": "allow",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "prefer",
+ "additionalProperties": false,
+ "description": "Prefer SSL mode.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "prefer",
+ "enum": [ "prefer" ],
+ "default": "prefer",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "require",
+ "additionalProperties": false,
+ "description": "Require SSL mode.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "require",
+ "enum": [ "require" ],
+ "default": "require",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "verify-ca",
+ "additionalProperties": false,
+ "description": "Verify-ca SSL mode.",
+ "required": [ "mode", "ssl_ca_certificate" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-ca",
+ "enum": [ "verify-ca" ],
+ "default": "verify-ca",
+ "order": 0
+ },
+ "ssl_ca_certificate": {
+ "type": "string",
+ "title": "CA certificate",
+ "description": "Specifies the file name of a PEM file that contains Certificate Authority (CA) certificates for use with SSLMODE=verify-ca.\n See more information - in the docs.",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ }
+ }
+ }, {
+ "title": "verify-full",
+ "additionalProperties": false,
+ "description": "Verify-full SSL mode.",
+ "required": [ "mode", "ssl_ca_certificate" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-full",
+ "enum": [ "verify-full" ],
+ "default": "verify-full",
+ "order": 0
+ },
+ "ssl_ca_certificate": {
+ "type": "string",
+ "title": "CA certificate",
+ "description": "Specifies the file name of a PEM file that contains Certificate Authority (CA) certificates for use with SSLMODE=verify-full.\n See more information - in the docs.",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ }
+ }
+ } ]
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 7
+ }
+ }
+ },
+ "supportsIncremental": false,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "7b7d7a0d-954c-45a0-bcfc-39a634b97736",
+ "name": "Weaviate",
+ "dockerRepository": "airbyte/destination-weaviate",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/weaviate",
+ "icon": "weaviate.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/weaviate",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Weaviate",
+ "type": "object",
+ "required": [ "url" ],
+ "additionalProperties": false,
+ "properties": {
+ "url": {
+ "type": "string",
+ "description": "The URL to the weaviate instance",
+ "examples": [ "http://localhost:8080", "https://your-instance.semi.network" ]
+ },
+ "username": {
+ "type": "string",
+ "description": "Username used with OIDC authentication",
+ "examples": [ "xyz@weaviate.io" ]
+ },
+ "password": {
+ "type": "string",
+ "description": "Password used with OIDC authentication",
+ "airbyte_secret": true
+ },
+ "batch_size": {
+ "type": "integer",
+ "description": "Batch size for writing to Weaviate",
+ "default": 100
+ },
+ "vectors": {
+ "type": "string",
+ "description": "Comma separated list of strings of `stream_name.vector_column_name` to specify which field holds the vectors.",
+ "examples": [ "my_table.my_vector_column, another_table.vector", "mytable.vector" ]
+ },
+ "id_schema": {
+ "type": "string",
+ "description": "Comma separated list of strings of `stream_name.id_column_name` to specify which field holds the ID of the record.",
+ "examples": [ "my_table.my_id_column, another_table.id", "users.user_id" ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "append", "overwrite" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "destinationDefinitionId": "94bd199c-2ff0-4aa2-b98e-17f0acb72610",
+ "name": "DuckDB",
+ "dockerRepository": "airbyte/destination-duckdb",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.io/integrations/destinations/duckdb",
+ "icon": "duckdb.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/destinations/duckdb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "DuckDB Destination Spec",
+ "type": "object",
+ "required": [ "destination_path" ],
+ "additionalProperties": false,
+ "properties": {
+ "destination_path": {
+ "type": "string",
+ "description": "Path to the destination.duckdb file. The file will be placed inside that local mount. For more information check out our docs",
+ "example": "/local/destination.duckdb"
+ },
+ "schema": {
+ "type": "string",
+ "description": "database schema, default for duckdb is main",
+ "example": "main"
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": [ "overwrite", "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ } ],
+ "sources": [ {
+ "sourceDefinitionId": "9f32dab3-77cb-45a1-9d33-347aa5fbe363",
+ "name": "ActiveCampaign",
+ "dockerRepository": "airbyte/source-activecampaign",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/activecampaign",
+ "icon": "activecampaign.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/activecampaign",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Activecampaign Spec",
+ "type": "object",
+ "required": [ "api_key", "account_username" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true
+ },
+ "account_username": {
+ "type": "string",
+ "description": "Account Username"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "d3b7fa46-111b-419a-998a-d7f046f6d66d",
+ "name": "Adjust",
+ "dockerRepository": "airbyte/source-adjust",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/adjust",
+ "icon": "adjust.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://raw.githubusercontent.com/appchoose/airbyte/feature/source-adjust/docs/integrations/sources/adjust.md",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "description": "Adjust reporting API connector.",
+ "properties": {
+ "additional_metrics": {
+ "description": "Metrics names that are not pre-defined, such as cohort metrics or app specific metrics.",
+ "items": {
+ "type": "string"
+ },
+ "order": 3,
+ "title": "Additional metrics for ingestion",
+ "type": "array"
+ },
+ "api_token": {
+ "airbyte_secret": true,
+ "description": "Adjust API key, see https://help.adjust.com/en/article/report-service-api-authentication",
+ "order": 0,
+ "title": "API Token",
+ "type": "string"
+ },
+ "dimensions": {
+ "description": "Dimensions allow a user to break down metrics into groups using one or several parameters. For example, the number of installs by date, country and network. See https://help.adjust.com/en/article/reports-endpoint#dimensions for more information about the dimensions.",
+ "items": {
+ "enum": [ "os_name", "device_type", "app", "app_token", "store_id", "store_type", "app_network", "currency", "currency_code", "network", "campaign", "campaign_network", "campaign_id_network", "adgroup", "adgroup_network", "adgroup_id_network", "source_network", "source_id_network", "creative", "creative_network", "creative_id_network", "country", "country_code", "region", "partner_name", "partner_id" ],
+ "type": "string"
+ },
+ "minItems": 1,
+ "order": 4,
+ "title": "Dimensions",
+ "type": "array",
+ "uniqueItems": true
+ },
+ "ingest_start": {
+ "description": "Data ingest start date.",
+ "format": "date",
+ "order": 1,
+ "title": "Ingest Start Date",
+ "type": "string"
+ },
+ "metrics": {
+ "description": "Select at least one metric to query.",
+ "items": {
+ "enum": [ "network_cost", "network_cost_diff", "network_clicks", "network_impressions", "network_installs", "network_installs_diff", "network_ecpc", "network_ecpi", "network_ecpm", "arpdau_ad", "arpdau", "arpdau_iap", "ad_impressions", "ad_rpm", "ad_revenue", "cohort_ad_revenue", "cost", "adjust_cost", "all_revenue", "cohort_all_revenue", "daus", "maus", "waus", "base_sessions", "ctr", "click_conversion_rate", "click_cost", "clicks", "paid_clicks", "deattributions", "ecpc", "gdpr_forgets", "gross_profit", "cohort_gross_profit", "impression_conversion_rate", "impression_cost", "impressions", "paid_impressions", "install_cost", "installs", "paid_installs", "installs_per_mile", "limit_ad_tracking_installs", "limit_ad_tracking_install_rate", "limit_ad_tracking_reattribution_rate", "limit_ad_tracking_reattributions", "non_organic_installs", "organic_installs", "roas_ad", "roas", "roas_iap", "reattributions", "return_on_investment", "revenue", "cohort_revenue", "revenue_events", "revenue_to_cost", "sessions", "events", "ecpi_all", "ecpi", "ecpm" ],
+ "type": "string"
+ },
+ "minItems": 1,
+ "order": 2,
+ "title": "Metrics to ingest",
+ "type": "array",
+ "uniqueItems": true
+ },
+ "until_today": {
+ "default": false,
+ "description": "Syncs data up until today. Useful when running daily incremental syncs, and duplicates are not desired.",
+ "order": 5,
+ "title": "Until Today",
+ "type": "boolean"
+ }
+ },
+ "required": [ "api_token", "ingest_start", "metrics", "dimensions" ],
+ "title": "Adjust Spec",
+ "type": "object"
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "912eb6b7-a893-4a5b-b1c0-36ebbe2de8cd",
+ "name": "Aircall",
+ "dockerRepository": "airbyte/source-aircall",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/aircall",
+ "icon": "aircall.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/aircall",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Aircall Spec",
+ "type": "object",
+ "required": [ "api_id", "api_token", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_id": {
+ "title": "API ID",
+ "type": "string",
+ "description": "App ID found at settings https://dashboard.aircall.io/integrations/api-keys",
+ "airbyte_secret": true
+ },
+ "api_token": {
+ "title": "API Token",
+ "type": "string",
+ "description": "App token found at settings (Ref- https://dashboard.aircall.io/integrations/api-keys)",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "title": "Date-From Filter",
+ "type": "string",
+ "description": "Date time filter for incremental filter, Specify which date to extract from.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
+ "examples": [ "2022-03-01T00:00:00.000Z" ],
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "14c6e7ea-97ed-4f5e-a7b5-25e9a80b8212",
+ "name": "Airtable",
+ "dockerRepository": "airbyte/source-airtable",
+ "dockerImageTag": "3.0.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/airtable",
+ "icon": "airtable.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/airtable",
+ "connectionSpecification": {
+ "$schema": "https://json-schema.org/draft-07/schema#",
+ "title": "Airtable Source Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authentication",
+ "type": "object",
+ "oneOf": [ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [ "client_id", "client_secret", "refresh_token" ],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "oauth2.0"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The client ID of the Airtable developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client secret",
+ "description": "The client secret the Airtable developer application.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "description": "The date-time when the access token should be refreshed.",
+ "format": "date-time"
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh token",
+ "description": "The key to refresh the expired access token.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "Personal Access Token",
+ "type": "object",
+ "required": [ "api_key" ],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "api_key"
+ },
+ "api_key": {
+ "type": "string",
+ "description": "The Personal Access Token for the Airtable account. See the Support Guide for more information on how to obtain this token.",
+ "title": "Personal Access Token",
+ "airbyte_secret": true,
+ "examples": [ "key1234567890" ]
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "auth_method" ],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "access_token" ]
+ },
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "refresh_token" ]
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "format": "date-time",
+ "path_in_connector_config": [ "credentials", "token_expiry_date" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "api.airtable.com", "airtable.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "81ca39dc-4534-4dd2-b848-b0cfd2c11fce",
+ "name": "Aha",
+ "dockerRepository": "airbyte/source-aha",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/aha",
+ "icon": "aha.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/aha",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Aha Spec",
+ "type": "object",
+ "required": [ "api_key", "url" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API Key",
+ "title": "API Bearer Token"
+ },
+ "url": {
+ "type": "string",
+ "description": "URL",
+ "title": "Aha Url Instance"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "db385323-9333-4fec-bec3-9e0ca9326c90",
+ "name": "Alpha Vantage",
+ "dockerRepository": "airbyte/source-alpha-vantage",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/alpha-vantage",
+ "icon": "alpha-vantage.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/alpha-vantage",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Alpha Vantage Spec",
+ "type": "object",
+ "required": [ "api_key", "symbol" ],
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "symbol": {
+ "title": "Symbol",
+ "type": "string",
+ "description": "Stock symbol (with exchange code)",
+ "examples": [ "AAPL", "TSCO.LON" ],
+ "order": 1
+ },
+ "interval": {
+ "title": "Interval",
+ "type": "string",
+ "description": "Time-series data point interval. Required for intraday endpoints.\n",
+ "enum": [ "1min", "5min", "15min", "30min", "60min" ],
+ "default": "1min",
+ "order": 2
+ },
+ "adjusted": {
+ "title": "Adjusted?",
+ "type": "boolean",
+ "description": "Whether to return adjusted data. Only applicable to intraday endpoints.\n",
+ "default": false,
+ "order": 3
+ },
+ "outputsize": {
+ "title": "Output Size",
+ "type": "string",
+ "description": "Whether to return full or compact data (the last 100 data points).\n",
+ "enum": [ "compact", "full" ],
+ "default": "compact",
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "1fa90628-2b9e-11ed-a261-0242ac120002",
+ "name": "AlloyDB for PostgreSQL",
+ "dockerRepository": "airbyte/source-alloydb",
+ "dockerImageTag": "2.0.23",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/alloydb",
+ "icon": "alloydb.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/postgres",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Postgres Source Spec",
+ "type": "object",
+ "required": [ "host", "port", "database", "username" ],
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0,
+ "group": "db"
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 5432,
+ "examples": [ "5432" ],
+ "order": 1,
+ "group": "db"
+ },
+ "database": {
+ "title": "Database Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2,
+ "group": "db"
+ },
+ "schemas": {
+ "title": "Schemas",
+ "description": "The list of schemas (case sensitive) to sync from. Defaults to public.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 0,
+ "uniqueItems": true,
+ "default": [ "public" ],
+ "order": 3,
+ "group": "db"
+ },
+ "username": {
+ "title": "Username",
+ "description": "Username to access the database.",
+ "type": "string",
+ "order": 4,
+ "group": "auth"
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 5,
+ "group": "auth",
+ "always_show": true
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (Eg. key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
+ "title": "JDBC URL Parameters (Advanced)",
+ "type": "string",
+ "order": 6,
+ "group": "advanced",
+ "pattern_descriptor": "key1=value1&key2=value2"
+ },
+ "ssl_mode": {
+ "title": "SSL Modes",
+ "description": "SSL connection modes. \n Read more in the docs.",
+ "type": "object",
+ "order": 8,
+ "group": "security",
+ "oneOf": [ {
+ "title": "disable",
+ "additionalProperties": true,
+ "description": "Disables encryption of communication between Airbyte and source database.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "disable",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "allow",
+ "additionalProperties": true,
+ "description": "Enables encryption only when required by the source database.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "allow",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "prefer",
+ "additionalProperties": true,
+ "description": "Allows unencrypted connection only if the source database does not support encryption.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "prefer",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "require",
+ "additionalProperties": true,
+ "description": "Always require encryption. If the source database server does not support encryption, connection will fail.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "require",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "verify-ca",
+ "additionalProperties": true,
+ "description": "Always require encryption and verifies that the source database server has a valid SSL certificate.",
+ "required": [ "mode", "ca_certificate" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-ca",
+ "order": 0
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA Certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ },
+ "client_certificate": {
+ "type": "string",
+ "title": "Client Certificate",
+ "description": "Client certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 2,
+ "always_show": true
+ },
+ "client_key": {
+ "type": "string",
+ "title": "Client Key",
+ "description": "Client key",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 3,
+ "always_show": true
+ },
+ "client_key_password": {
+ "type": "string",
+ "title": "Client key password",
+ "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "verify-full",
+ "additionalProperties": true,
+ "description": "This is the most secure mode. Always require encryption and verifies the identity of the source database server.",
+ "required": [ "mode", "ca_certificate" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-full",
+ "order": 0
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA Certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ },
+ "client_certificate": {
+ "type": "string",
+ "title": "Client Certificate",
+ "description": "Client certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 2,
+ "always_show": true
+ },
+ "client_key": {
+ "type": "string",
+ "title": "Client Key",
+ "description": "Client key",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 3,
+ "always_show": true
+ },
+ "client_key_password": {
+ "type": "string",
+ "title": "Client key password",
+ "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ },
+ "replication_method": {
+ "type": "object",
+ "title": "Replication Method",
+ "description": "Replication method for extracting data from the database.",
+ "order": 9,
+ "group": "advanced",
+ "oneOf": [ {
+ "title": "Standard",
+ "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.",
+ "required": [ "method" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "Standard",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "Logical Replication (CDC)",
+ "description": "Logical replication uses the Postgres write-ahead log (WAL) to detect inserts, updates, and deletes. This needs to be configured on the source database itself. Only available on Postgres 10 and above. Read the docs.",
+ "required": [ "method", "replication_slot", "publication" ],
+ "additionalProperties": true,
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "CDC",
+ "order": 1
+ },
+ "plugin": {
+ "type": "string",
+ "title": "Plugin",
+ "description": "A logical decoding plugin installed on the PostgreSQL server.",
+ "enum": [ "pgoutput" ],
+ "default": "pgoutput",
+ "order": 2
+ },
+ "replication_slot": {
+ "type": "string",
+ "title": "Replication Slot",
+ "description": "A plugin logical replication slot. Read about replication slots.",
+ "order": 3
+ },
+ "publication": {
+ "type": "string",
+ "title": "Publication",
+ "description": "A Postgres publication used for consuming changes. Read about publications and replication identities.",
+ "order": 4
+ },
+ "initial_waiting_seconds": {
+ "type": "integer",
+ "title": "Initial Waiting Time in Seconds (Advanced)",
+ "description": "The amount of time the connector will wait when it launches to determine if there is new data to sync or not. Defaults to 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about initial waiting time.",
+ "default": 300,
+ "order": 5,
+ "min": 120,
+ "max": 1200
+ },
+ "lsn_commit_behaviour": {
+ "type": "string",
+ "title": "LSN commit behaviour",
+ "description": "Determines when Airbtye should flush the LSN of processed WAL logs in the source database. `After loading Data in the destination` is default. If `While reading Data` is selected, in case of a downstream failure (while loading data into the destination), next sync would result in a full sync.",
+ "enum": [ "While reading Data", "After loading Data in the destination" ],
+ "default": "After loading Data in the destination",
+ "order": 6
+ }
+ }
+ } ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [ {
+ "title": "No Tunnel",
+ "required": [ "tunnel_method" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "SSH Key Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Password Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ],
+ "group": "security"
+ }
+ },
+ "groups": [ {
+ "id": "db"
+ }, {
+ "id": "auth"
+ }, {
+ "id": "security",
+ "title": "Security"
+ }, {
+ "id": "advanced",
+ "title": "Advanced"
+ } ]
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
+ }
+ }, {
+ "sourceDefinitionId": "6ff047c0-f5d5-4ce5-8c81-204a830fa7e1",
+ "name": "AWS CloudTrail",
+ "dockerRepository": "airbyte/source-aws-cloudtrail",
+ "dockerImageTag": "0.1.5",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/aws-cloudtrail",
+ "icon": "awscloudtrail.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/aws-cloudtrail",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Aws CloudTrail Spec",
+ "type": "object",
+ "required": [ "aws_key_id", "aws_secret_key", "aws_region_name", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "aws_key_id": {
+ "type": "string",
+ "title": "Key ID",
+ "description": "AWS CloudTrail Access Key ID. See the docs for more information on how to obtain this key.",
+ "airbyte_secret": true
+ },
+ "aws_secret_key": {
+ "type": "string",
+ "title": "Secret Key",
+ "description": "AWS CloudTrail Access Key ID. See the docs for more information on how to obtain this key.",
+ "airbyte_secret": true
+ },
+ "aws_region_name": {
+ "type": "string",
+ "title": "Region Name",
+ "description": "The default AWS Region to use, for example, us-west-1 or us-west-2. When specifying a Region inline during client initialization, this property is named region_name."
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date you would like to replicate data. Data in AWS CloudTrail is available for last 90 days only. Format: YYYY-MM-DD.",
+ "examples": [ "2021-01-01" ],
+ "default": "1970-01-01",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "format": "date"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "c6b0a29e-1da9-4512-9002-7bfd0cba2246",
+ "name": "Amazon Ads",
+ "dockerRepository": "airbyte/source-amazon-ads",
+ "dockerImageTag": "1.0.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-ads",
+ "icon": "amazonads.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-ads",
+ "connectionSpecification": {
+ "title": "Amazon Ads Spec",
+ "type": "object",
+ "properties": {
+ "auth_type": {
+ "title": "Auth Type",
+ "const": "oauth2.0",
+ "order": 0,
+ "type": "string"
+ },
+ "client_id": {
+ "title": "Client ID",
+ "description": "The client ID of your Amazon Ads developer application. See the docs for more information.",
+ "order": 1,
+ "type": "string"
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "description": "The client secret of your Amazon Ads developer application. See the docs for more information.",
+ "airbyte_secret": true,
+ "order": 2,
+ "type": "string"
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "description": "Amazon Ads refresh token. See the docs for more information on how to obtain this token.",
+ "airbyte_secret": true,
+ "order": 3,
+ "type": "string"
+ },
+ "region": {
+ "title": "Region",
+ "description": "Region to pull data from (EU/NA/FE). See docs for more details.",
+ "enum": [ "NA", "EU", "FE" ],
+ "type": "string",
+ "default": "NA",
+ "order": 4
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "The Start date for collecting reports, should not be more than 60 days in the past. In YYYY-MM-DD format",
+ "examples": [ "2022-10-10", "2022-10-22" ],
+ "order": 5,
+ "type": "string"
+ },
+ "profiles": {
+ "title": "Profile IDs",
+ "description": "Profile IDs you want to fetch data for. See docs for more details.",
+ "order": 6,
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "state_filter": {
+ "title": "State Filter",
+ "description": "Reflects the state of the Display, Product, and Brand Campaign streams as enabled, paused, or archived. If you do not populate this field, it will be ignored completely.",
+ "items": {
+ "type": "string",
+ "enum": [ "enabled", "paused", "archived" ]
+ },
+ "type": "array",
+ "uniqueItems": true,
+ "order": 7
+ },
+ "look_back_window": {
+ "title": "Look Back Window",
+ "description": "The amount of days to go back in time to get the updated data from Amazon Ads",
+ "examples": [ 3, 10 ],
+ "type": "integer",
+ "default": 3,
+ "order": 8
+ },
+ "report_record_types": {
+ "title": "Report Record Types",
+ "description": "Optional configuration which accepts an array of string of record types. Leave blank for default behaviour to pull all report types. Use this config option only if you want to pull specific report type(s). See docs for more details",
+ "items": {
+ "type": "string",
+ "enum": [ "adGroups", "asins", "asins_keywords", "asins_targets", "campaigns", "keywords", "productAds", "targets" ]
+ },
+ "type": "array",
+ "uniqueItems": true,
+ "order": 9
+ }
+ },
+ "required": [ "client_id", "client_secret", "refresh_token" ],
+ "additionalProperties": true
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "auth_type" ],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": [ "refresh_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "api.amazon.com", "advertising-api.amazon.com", "advertising-api-eu.amazon.com", "advertising-api-fe.amazon.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "e55879a8-0ef8-4557-abcf-ab34c53ec460",
+ "name": "Amazon Seller Partner",
+ "dockerRepository": "airbyte/source-amazon-seller-partner",
+ "dockerImageTag": "1.0.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-seller-partner",
+ "icon": "amazonsellerpartner.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-seller-partner",
+ "changelogUrl": "https://docs.airbyte.com/integrations/sources/amazon-seller-partner",
+ "connectionSpecification": {
+ "title": "Amazon Seller Partner Spec",
+ "type": "object",
+ "properties": {
+ "app_id": {
+ "title": "App Id",
+ "description": "Your Amazon App ID",
+ "airbyte_secret": true,
+ "order": 0,
+ "type": "string"
+ },
+ "auth_type": {
+ "title": "Auth Type",
+ "const": "oauth2.0",
+ "order": 1,
+ "type": "string"
+ },
+ "lwa_app_id": {
+ "title": "LWA Client Id",
+ "description": "Your Login with Amazon Client ID.",
+ "order": 2,
+ "type": "string"
+ },
+ "lwa_client_secret": {
+ "title": "LWA Client Secret",
+ "description": "Your Login with Amazon Client Secret.",
+ "airbyte_secret": true,
+ "order": 3,
+ "type": "string"
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "description": "The Refresh Token obtained via OAuth flow authorization.",
+ "airbyte_secret": true,
+ "order": 4,
+ "type": "string"
+ },
+ "aws_access_key": {
+ "title": "AWS Access Key",
+ "description": "Specifies the AWS access key used as part of the credentials to authenticate the user.",
+ "airbyte_secret": true,
+ "order": 5,
+ "type": "string"
+ },
+ "aws_secret_key": {
+ "title": "AWS Secret Access Key",
+ "description": "Specifies the AWS secret key used as part of the credentials to authenticate the user.",
+ "airbyte_secret": true,
+ "order": 6,
+ "type": "string"
+ },
+ "role_arn": {
+ "title": "Role ARN",
+ "description": "Specifies the Amazon Resource Name (ARN) of an IAM role that you want to use to perform operations requested using this profile. (Needs permission to 'Assume Role' STS).",
+ "airbyte_secret": true,
+ "order": 7,
+ "type": "string"
+ },
+ "replication_start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2017-01-25T00:00:00Z" ],
+ "order": 8,
+ "type": "string"
+ },
+ "replication_end_date": {
+ "title": "End Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data after this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$|^$",
+ "examples": [ "2017-01-25T00:00:00Z" ],
+ "order": 9,
+ "type": "string"
+ },
+ "period_in_days": {
+ "title": "Period In Days",
+ "description": "Will be used for stream slicing for initial full_refresh sync when no updated state is present for reports that support sliced incremental sync.",
+ "default": 90,
+ "maximum": 90,
+ "examples": [ "1", "10", "30", "60", "90" ],
+ "order": 10,
+ "type": "integer"
+ },
+ "report_options": {
+ "title": "Report Options",
+ "description": "Additional information passed to reports. This varies by report type. Must be a valid json string.",
+ "examples": [ "{\"GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT\": {\"reportPeriod\": \"WEEK\"}}", "{\"GET_SOME_REPORT\": {\"custom\": \"true\"}}" ],
+ "order": 11,
+ "type": "string"
+ },
+ "max_wait_seconds": {
+ "title": "Max wait time for reports (in seconds)",
+ "description": "Sometimes report can take up to 30 minutes to generate. This will set the limit for how long to wait for a successful report.",
+ "default": 500,
+ "examples": [ "500", "1980" ],
+ "order": 12,
+ "type": "integer"
+ },
+ "aws_environment": {
+ "title": "AWSEnvironment",
+ "description": "An enumeration.",
+ "enum": [ "PRODUCTION", "SANDBOX" ],
+ "type": "string"
+ },
+ "region": {
+ "title": "AWSRegion",
+ "description": "An enumeration.",
+ "enum": [ "AE", "AU", "BE", "BR", "CA", "DE", "EG", "ES", "FR", "GB", "IN", "IT", "JP", "MX", "NL", "PL", "SA", "SE", "SG", "TR", "UK", "US" ],
+ "type": "string"
+ }
+ },
+ "required": [ "app_id", "lwa_app_id", "lwa_client_secret", "refresh_token", "replication_start_date", "aws_environment", "region" ],
+ "additionalProperties": true,
+ "definitions": {
+ "AWSEnvironment": {
+ "title": "AWSEnvironment",
+ "description": "An enumeration.",
+ "enum": [ "PRODUCTION", "SANDBOX" ],
+ "type": "string"
+ },
+ "AWSRegion": {
+ "title": "AWSRegion",
+ "description": "An enumeration.",
+ "enum": [ "AE", "AU", "BE", "BR", "CA", "DE", "EG", "ES", "FR", "GB", "IN", "IT", "JP", "MX", "NL", "PL", "SA", "SE", "SG", "TR", "UK", "US" ],
+ "type": "string"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "auth_type" ],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "app_id": {
+ "type": "string",
+ "path_in_connector_config": [ "app_id" ]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": [ "refresh_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "lwa_app_id": {
+ "type": "string"
+ },
+ "lwa_client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "lwa_app_id": {
+ "type": "string",
+ "path_in_connector_config": [ "lwa_app_id" ]
+ },
+ "lwa_client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "lwa_client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "983fd355-6bf3-4709-91b5-37afa391eeb6",
+ "name": "Amazon SQS",
+ "dockerRepository": "airbyte/source-amazon-sqs",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-sqs",
+ "icon": "awssqs.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-sqs",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Amazon SQS Source Spec",
+ "type": "object",
+ "required": [ "queue_url", "region", "delete_messages" ],
+ "additionalProperties": false,
+ "properties": {
+ "queue_url": {
+ "title": "Queue URL",
+ "description": "URL of the SQS Queue",
+ "type": "string",
+ "examples": [ "https://sqs.eu-west-1.amazonaws.com/1234567890/my-example-queue" ],
+ "order": 0
+ },
+ "region": {
+ "title": "AWS Region",
+ "description": "AWS Region of the SQS Queue",
+ "type": "string",
+ "enum": [ "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
+ "order": 1
+ },
+ "delete_messages": {
+ "title": "Delete Messages After Read",
+ "description": "If Enabled, messages will be deleted from the SQS Queue after being read. If Disabled, messages are left in the queue and can be read more than once. WARNING: Enabling this option can result in data loss in cases of failure, use with caution, see documentation for more detail. ",
+ "type": "boolean",
+ "default": false,
+ "order": 2
+ },
+ "max_batch_size": {
+ "title": "Max Batch Size",
+ "description": "Max amount of messages to get in one batch (10 max)",
+ "type": "integer",
+ "examples": [ "5" ],
+ "order": 3
+ },
+ "max_wait_time": {
+ "title": "Max Wait Time",
+ "description": "Max amount of time in seconds to wait for messages in a single poll (20 max)",
+ "type": "integer",
+ "examples": [ "5" ],
+ "order": 4
+ },
+ "attributes_to_return": {
+ "title": "Message Attributes To Return",
+ "description": "Comma separated list of Mesage Attribute names to return",
+ "type": "string",
+ "examples": [ "attr1,attr2" ],
+ "order": 5
+ },
+ "visibility_timeout": {
+ "title": "Message Visibility Timeout",
+ "description": "Modify the Visibility Timeout of the individual message from the Queue's default (seconds).",
+ "type": "integer",
+ "examples": [ "15" ],
+ "order": 6
+ },
+ "access_key": {
+ "title": "AWS IAM Access Key ID",
+ "description": "The Access Key ID of the AWS IAM Role to use for pulling messages",
+ "type": "string",
+ "examples": [ "xxxxxHRNxxx3TBxxxxxx" ],
+ "airbyte_secret": true,
+ "order": 7
+ },
+ "secret_key": {
+ "title": "AWS IAM Secret Key",
+ "description": "The Secret Key of the AWS IAM Role to use for pulling messages",
+ "type": "string",
+ "examples": [ "hu+qE5exxxxT6o/ZrKsxxxxxxBhxxXLexxxxxVKz" ],
+ "airbyte_secret": true,
+ "order": 8
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "fa9f58c6-2d03-4237-aaa4-07d75e0c1396",
+ "name": "Amplitude",
+ "dockerRepository": "airbyte/source-amplitude",
+ "dockerImageTag": "0.2.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/amplitude",
+ "icon": "amplitude.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/amplitude",
+ "connectionSpecification": {
+ "$schema": "https://json-schema.org/draft-07/schema#",
+ "title": "Amplitude Spec",
+ "type": "object",
+ "required": [ "api_key", "secret_key", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "data_region": {
+ "type": "string",
+ "title": "Data region",
+ "description": "Amplitude data region server",
+ "enum": [ "Standard Server", "EU Residency Server" ],
+ "default": "Standard Server"
+ },
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Amplitude API Key. See the setup guide for more information on how to obtain this key.",
+ "airbyte_secret": true
+ },
+ "secret_key": {
+ "type": "string",
+ "title": "Secret Key",
+ "description": "Amplitude Secret Key. See the setup guide for more information on how to obtain this key.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Replication Start Date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2021-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": [ "2021-01-25T00:00:00Z" ]
+ },
+ "request_time_range": {
+ "type": "integer",
+ "title": "Request time range",
+ "description": "According to Considerations too big time range in request can cause a timeout error. In this case, set shorter time interval in hours.",
+ "default": 24,
+ "minimum": 1,
+ "maximum": 8760
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "amplitude.com", "analytics.eu.amplitude.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "47f17145-fe20-4ef5-a548-e29b048adf84",
+ "name": "Apify Dataset",
+ "dockerRepository": "airbyte/source-apify-dataset",
+ "dockerImageTag": "0.1.11",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/apify-dataset",
+ "icon": "apify.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/apify-dataset",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Apify Dataset Spec",
+ "type": "object",
+ "required": [ "datasetId" ],
+ "additionalProperties": false,
+ "properties": {
+ "datasetId": {
+ "type": "string",
+ "title": "Dataset ID",
+ "description": "ID of the dataset you would like to load to Airbyte."
+ },
+ "clean": {
+ "type": "boolean",
+ "title": "Clean",
+ "description": "If set to true, only clean items will be downloaded from the dataset. See description of what clean means in Apify API docs. If not sure, set clean to false."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "b4375641-e270-41d3-9c20-4f9cecad87a8",
+ "name": "Appfollow",
+ "dockerRepository": "airbyte/source-appfollow",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/appfollow",
+ "icon": "appfollow.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/appfollow",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Appfollow Spec",
+ "type": "object",
+ "required": [ "ext_id", "country", "cid", "api_secret" ],
+ "additionalProperties": true,
+ "properties": {
+ "ext_id": {
+ "type": "string",
+ "title": "app external id",
+ "description": "for App Store — this is 9-10 digits identification number; for Google Play — this is bundle name;"
+ },
+ "cid": {
+ "type": "string",
+ "title": "client id",
+ "description": "client id provided by Appfollow"
+ },
+ "api_secret": {
+ "type": "string",
+ "title": "api secret",
+ "description": "api secret provided by Appfollow",
+ "airbyte_secret": true
+ },
+ "country": {
+ "type": "string",
+ "title": "country",
+ "description": "getting data by Country"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "e59c8416-c2fa-4bd3-9e95-52677ea281c1",
+ "name": "Apple Search Ads",
+ "dockerRepository": "airbyte/source-apple-search-ads",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/apple-search-ads",
+ "icon": "apple.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/apple-search-ads",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Apple Search Ads Spec",
+ "type": "object",
+ "required": [ "org_id", "client_id", "client_secret", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "org_id": {
+ "type": "integer",
+ "title": "Org Id",
+ "description": "The identifier of the organization that owns the campaign. Your Org Id is the same as your account in the Apple Search Ads UI."
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client Id",
+ "description": "A user identifier for the token request. See here",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "A string that authenticates the user’s setup request. See here",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "Start getting data from that date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": [ "2020-01-01" ]
+ },
+ "end_date": {
+ "type": "string",
+ "title": "End Date",
+ "description": "Data is retrieved until that date (included)",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": [ "2021-01-01" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "16447954-e6a8-4593-b140-43dea13bc457",
+ "name": "AppsFlyer",
+ "dockerRepository": "airbyte/source-appsflyer",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/appsflyer",
+ "icon": "appsflyer.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Appsflyer Spec",
+ "type": "object",
+ "required": [ "app_id", "api_token", "start_date" ],
+ "additionalProperties": false,
+ "properties": {
+ "app_id": {
+ "type": "string",
+ "description": "App identifier as found in AppsFlyer."
+ },
+ "api_token": {
+ "type": "string",
+ "description": "Pull API token for authentication. If you change the account admin, the token changes, and you must update scripts with the new token. Get the API token in the Dashboard.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "description": "The default value to use if no bookmark exists for an endpoint. Raw Reports historical lookback is limited to 90 days.",
+ "examples": [ "2021-11-16", "2021-11-16 15:00:00" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}( [0-9]{2}:[0-9]{2}:[0-9]{2})?$"
+ },
+ "timezone": {
+ "type": "string",
+ "description": "Time zone in which date times are stored. The project timezone may be found in the App settings in the AppsFlyer console.",
+ "default": "UTC",
+ "examples": [ "US/Pacific", "UTC" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "2af123bf-0aaf-4e0d-9784-cb497f23741a",
+ "name": "Appstore",
+ "dockerRepository": "airbyte/source-appstore-singer",
+ "dockerImageTag": "0.2.6",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/appstore",
+ "icon": "appstore.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/appstore",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Appstore Singer Spec",
+ "type": "object",
+ "required": [ "key_id", "private_key", "issuer_id", "vendor", "start_date" ],
+ "additionalProperties": false,
+ "properties": {
+ "key_id": {
+ "type": "string",
+ "title": "Key ID",
+ "description": "Appstore Key ID. See the docs for more information on how to obtain this key."
+ },
+ "private_key": {
+ "type": "string",
+ "title": "Private Key",
+ "description": "Appstore Private Key. See the docs for more information on how to obtain this key.",
+ "airbyte_secret": true,
+ "multiline": true
+ },
+ "issuer_id": {
+ "type": "string",
+ "title": "Issuer ID",
+ "description": "Appstore Issuer ID. See the docs for more information on how to obtain this ID."
+ },
+ "vendor": {
+ "type": "string",
+ "title": "Vendor ID",
+ "description": "Appstore Vendor ID. See the docs for more information on how to obtain this ID."
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": [ "2020-11-16T00:00:00Z" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "d0243522-dccf-4978-8ba0-37ed47a0bdbf",
+ "name": "Asana",
+ "dockerRepository": "airbyte/source-asana",
+ "dockerImageTag": "0.1.5",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/asana",
+ "icon": "asana.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Asana Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authentication mechanism",
+ "description": "Choose how to authenticate to Github",
+ "type": "object",
+ "oneOf": [ {
+ "type": "object",
+ "title": "Authenticate with Personal Access Token",
+ "required": [ "personal_access_token" ],
+ "properties": {
+ "option_title": {
+ "type": "string",
+ "title": "Credentials title",
+ "description": "PAT Credentials",
+ "const": "PAT Credentials"
+ },
+ "personal_access_token": {
+ "type": "string",
+ "title": "Personal Access Token",
+ "description": "Asana Personal Access Token (generate yours here).",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "Authenticate via Asana (Oauth)",
+ "required": [ "client_id", "client_secret", "refresh_token" ],
+ "properties": {
+ "option_title": {
+ "type": "string",
+ "title": "Credentials title",
+ "description": "OAuth Credentials",
+ "const": "OAuth Credentials"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "",
+ "description": "",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "",
+ "description": "",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "",
+ "description": "",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ "credentials", "1" ],
+ "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
+ "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta"
+ }, {
+ "sourceDefinitionId": "4e8c9fa0-3634-499b-b948-11581b5c3efa",
+ "name": "Ashby",
+ "dockerRepository": "airbyte/source-ashby",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/ashby",
+ "icon": "ashby.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://developers.ashbyhq.com/reference/introduction",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Ashby Spec",
+ "type": "object",
+ "required": [ "api_key", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "Ashby API key",
+ "description": "The Ashby API Key, see doc here.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": [ "2017-01-25T00:00:00Z" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "6c504e48-14aa-4221-9a72-19cf5ff1ae78",
+ "name": "Auth0",
+ "dockerRepository": "airbyte/source-auth0",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/auth0",
+ "icon": "auth0.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://auth0.com/docs/api/management/v2/",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Auth0 Management API Spec",
+ "type": "object",
+ "required": [ "base_url", "credentials" ],
+ "additionalProperties": true,
+ "properties": {
+ "base_url": {
+ "type": "string",
+ "title": "Base URL",
+ "examples": [ "https://dev-yourOrg.us.auth0.com/" ],
+ "description": "The Authentication API is served over HTTPS. All URLs referenced in the documentation have the following base `https://YOUR_DOMAIN`"
+ },
+ "credentials": {
+ "title": "Authentication Method",
+ "type": "object",
+ "oneOf": [ {
+ "type": "object",
+ "title": "OAuth2 Confidential Application",
+ "required": [ "auth_type", "client_id", "client_secret", "audience" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "title": "Authentication Method",
+ "const": "oauth2_confidential_application",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "description": "Your application's Client ID. You can find this value on the application's settings tab after you login the admin portal.",
+ "type": "string",
+ "examples": [ "Client_ID" ]
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "description": "Your application's Client Secret. You can find this value on the application's settings tab after you login the admin portal.",
+ "type": "string",
+ "examples": [ "Client_Secret" ],
+ "airbyte_secret": true
+ },
+ "audience": {
+ "title": "Audience",
+ "description": "The audience for the token, which is your API. You can find this in the Identifier field on your API's settings tab",
+ "type": "string",
+ "examples": [ "https://dev-yourOrg.us.auth0.com/api/v2/" ]
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "OAuth2 Access Token",
+ "required": [ "access_token", "auth_type" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "title": "Authentication Method",
+ "const": "oauth2_access_token",
+ "order": 0
+ },
+ "access_token": {
+ "title": "OAuth2 Access Token",
+ "description": "Also called API Access Token The access token used to call the Auth0 Management API Token. It's a JWT that contains specific grant permissions knowns as scopes.",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "798ae795-5189-42b6-b64e-3cb91db93338",
+ "name": "Azure Table Storage",
+ "dockerRepository": "airbyte/source-azure-table",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/azure-table",
+ "icon": "azureblobstorage.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Azure Data Table Spec",
+ "type": "object",
+ "required": [ "storage_account_name", "storage_access_key" ],
+ "properties": {
+ "storage_account_name": {
+ "title": "Account Name",
+ "type": "string",
+ "description": "The name of your storage account.",
+ "order": 0,
+ "airbyte_secret": false
+ },
+ "storage_access_key": {
+ "title": "Access Key",
+ "type": "string",
+ "description": "Azure Table Storage Access Key. See the docs for more information on how to obtain this key.",
+ "order": 1,
+ "airbyte_secret": true
+ },
+ "storage_endpoint_suffix": {
+ "title": "Endpoint Suffix",
+ "type": "string",
+ "description": "Azure Table Storage service account URL suffix. See the docs for more information on how to obtain endpoint suffix",
+ "order": 2,
+ "default": "core.windows.net",
+ "examples": [ "core.windows.net", "core.chinacloudapi.cn" ],
+ "airbyte_secret": false
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "fdaaba68-4875-4ed9-8fcd-4ae1e0a25093",
+ "name": "Azure Blob Storage",
+ "dockerRepository": "airbyte/source-azure-blob-storage",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/azure-blob-storage",
+ "icon": "azureblobstorage.svg",
+ "sourceType": "file",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/azureblobstorage",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "AzureBlobStorage Source Spec",
+ "type": "object",
+ "required": [ "azure_blob_storage_account_name", "azure_blob_storage_account_key", "azure_blob_storage_container_name", "format" ],
+ "additionalProperties": true,
+ "properties": {
+ "azure_blob_storage_endpoint": {
+ "title": "Endpoint Domain Name",
+ "type": "string",
+ "default": "blob.core.windows.net",
+ "description": "This is Azure Blob Storage endpoint domain name. Leave default value (or leave it empty if run container from command line) to use Microsoft native from example.",
+ "examples": [ "blob.core.windows.net" ]
+ },
+ "azure_blob_storage_container_name": {
+ "title": "Azure blob storage container (Bucket) Name",
+ "type": "string",
+ "description": "The name of the Azure blob storage container.",
+ "examples": [ "airbytetescontainername" ]
+ },
+ "azure_blob_storage_account_name": {
+ "title": "Azure Blob Storage account name",
+ "type": "string",
+ "description": "The account's name of the Azure Blob Storage.",
+ "examples": [ "airbyte5storage" ]
+ },
+ "azure_blob_storage_account_key": {
+ "title": "Azure Blob Storage account key",
+ "description": "The Azure blob storage account key.",
+ "airbyte_secret": true,
+ "type": "string",
+ "examples": [ "Z8ZkZpteggFx394vm+PJHnGTvdRncaYS+JhLKdj789YNmD+iyGTnG+PV+POiuYNhBg/ACS+LKjd%4FG3FHGN12Nd==" ]
+ },
+ "azure_blob_storage_blobs_prefix": {
+ "title": "Azure Blob Storage blobs prefix",
+ "description": "The Azure blob storage prefix to be applied",
+ "type": "string",
+ "examples": [ "FolderA/FolderB/" ]
+ },
+ "azure_blob_storage_schema_inference_limit": {
+ "title": "Azure Blob Storage schema inference limit",
+ "description": "The Azure blob storage blobs to scan for inferring the schema, useful on large amounts of data with consistent structure",
+ "type": "integer",
+ "examples": [ "500" ]
+ },
+ "format": {
+ "title": "Input Format",
+ "type": "object",
+ "description": "Input data format",
+ "oneOf": [ {
+ "title": "JSON Lines: newline-delimited JSON",
+ "required": [ "format_type" ],
+ "properties": {
+ "format_type": {
+ "type": "string",
+ "const": "JSONL"
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "971c3e1e-78a5-411e-ad56-c4052b50876b",
+ "name": "Babelforce",
+ "dockerRepository": "airbyte/source-babelforce",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/babelforce",
+ "icon": "babelforce.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Babelforce Spec",
+ "type": "object",
+ "required": [ "region", "access_key_id", "access_token" ],
+ "additionalProperties": false,
+ "properties": {
+ "region": {
+ "type": "string",
+ "title": "Region",
+ "default": "services",
+ "description": "Babelforce region",
+ "enum": [ "services", "us-east", "ap-southeast" ],
+ "order": 1
+ },
+ "access_key_id": {
+ "type": "string",
+ "title": "Access Key ID",
+ "description": "The Babelforce access key ID",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The Babelforce access token",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "date_created_from": {
+ "type": "integer",
+ "title": "Date Created from",
+ "description": "Timestamp in Unix the replication from Babelforce API will start from. For example 1651363200 which corresponds to 2022-05-01 00:00:00.",
+ "examples": [ 1651363200 ],
+ "order": 4
+ },
+ "date_created_to": {
+ "type": "integer",
+ "title": "Date Created to",
+ "description": "Timestamp in Unix the replication from Babelforce will be up to. For example 1651363200 which corresponds to 2022-05-01 00:00:00.",
+ "examples": [ 1651363200 ],
+ "order": 5
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "90916976-a132-4ce9-8bce-82a03dd58788",
+ "name": "BambooHR",
+ "dockerRepository": "airbyte/source-bamboo-hr",
+ "dockerImageTag": "0.2.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/bamboo-hr",
+ "icon": "bamboohr.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/bamboo-hr",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Bamboo HR Spec",
+ "type": "object",
+ "required": [ "subdomain", "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "subdomain": {
+ "type": "string",
+ "description": "Sub Domain of bamboo hr"
+ },
+ "api_key": {
+ "type": "string",
+ "description": "Api key of bamboo hr",
+ "airbyte_secret": true
+ },
+ "custom_reports_fields": {
+ "type": "string",
+ "default": "",
+ "description": "Comma-separated list of fields to include in custom reports."
+ },
+ "custom_reports_include_default_fields": {
+ "type": "boolean",
+ "default": true,
+ "description": "If true, the custom reports endpoint will include the default fields defined here: https://documentation.bamboohr.com/docs/list-of-field-names."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "59c5501b-9f95-411e-9269-7143c939adbd",
+ "name": "BigCommerce",
+ "dockerRepository": "airbyte/source-bigcommerce",
+ "dockerImageTag": "0.1.10",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/bigcommerce",
+ "icon": "bigcommerce.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/bigcommerce",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "BigCommerce Source CDK Specifications",
+ "type": "object",
+ "required": [ "start_date", "store_hash", "access_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date you would like to replicate data. Format: YYYY-MM-DD.",
+ "examples": [ "2021-01-01" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
+ },
+ "store_hash": {
+ "type": "string",
+ "title": "Store Hash",
+ "description": "The hash code of the store. For https://api.bigcommerce.com/stores/HASH_CODE/v3/, The store's hash code is 'HASH_CODE'."
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "bfd1ddf8-ae8a-4620-b1d7-55597d2ba08c",
+ "name": "BigQuery",
+ "dockerRepository": "airbyte/source-bigquery",
+ "dockerImageTag": "0.2.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/bigquery",
+ "icon": "bigquery.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/bigquery",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "BigQuery Source Spec",
+ "type": "object",
+ "required": [ "project_id", "credentials_json" ],
+ "properties": {
+ "project_id": {
+ "type": "string",
+ "description": "The GCP project ID for the project containing the target BigQuery dataset.",
+ "title": "Project ID"
+ },
+ "dataset_id": {
+ "type": "string",
+ "description": "The dataset ID to search for tables and views. If you are only loading data from one dataset, setting this option could result in much faster schema discovery.",
+ "title": "Default Dataset ID"
+ },
+ "credentials_json": {
+ "type": "string",
+ "description": "The contents of your Service Account Key JSON file. See the docs for more information on how to obtain this key.",
+ "title": "Credentials JSON",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": [ ],
+ "supported_sync_modes": [ "overwrite", "append", "append_dedup" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "47f25999-dd5e-4636-8c39-e7cea2453331",
+ "name": "Bing Ads",
+ "dockerRepository": "airbyte/source-bing-ads",
+ "dockerImageTag": "0.1.19",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/bing-ads",
+ "icon": "bingads.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/bing-ads",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Bing Ads Spec",
+ "type": "object",
+ "required": [ "developer_token", "client_id", "refresh_token", "reports_start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "oauth2.0"
+ },
+ "tenant_id": {
+ "type": "string",
+ "title": "Tenant ID",
+ "description": "The Tenant ID of your Microsoft Advertising developer application. Set this to \"common\" unless you know you need a different value.",
+ "airbyte_secret": true,
+ "default": "common",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your Microsoft Advertising developer application.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your Microsoft Advertising developer application.",
+ "default": "",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "Refresh Token to renew the expired Access Token.",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "developer_token": {
+ "type": "string",
+ "title": "Developer Token",
+ "description": "Developer token associated with user. See more info in the docs.",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "reports_start_date": {
+ "type": "string",
+ "title": "Reports replication start date",
+ "format": "date",
+ "default": "2020-01-01",
+ "description": "The start date from which to begin replicating report data. Any data generated before this date will not be replicated in reports. This is a UTC date in YYYY-MM-DD format.",
+ "order": 5
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "auth_method" ],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "tenant_id": {
+ "type": "string",
+ "path_in_connector_config": [ "tenant_id" ]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": [ "refresh_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "bingads.microsoft.com", "login.microsoftonline.com", "login.live.com", "login.windows-ppe.net", "ads.microsoft.com", "api.ads.microsoft.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "63cea06f-1c75-458d-88fe-ad48c7cb27fd",
+ "name": "Braintree",
+ "dockerRepository": "airbyte/source-braintree",
+ "dockerImageTag": "0.1.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/braintree",
+ "icon": "braintree.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/braintree",
+ "connectionSpecification": {
+ "title": "Braintree Spec",
+ "type": "object",
+ "properties": {
+ "merchant_id": {
+ "title": "Merchant ID",
+ "description": "The unique identifier for your entire gateway account. See the docs for more information on how to obtain this ID.",
+ "name": "Merchant ID",
+ "type": "string"
+ },
+ "public_key": {
+ "title": "Public Key",
+ "description": "Braintree Public Key. See the docs for more information on how to obtain this key.",
+ "name": "Public Key",
+ "type": "string"
+ },
+ "private_key": {
+ "title": "Private Key",
+ "description": "Braintree Private Key. See the docs for more information on how to obtain this key.",
+ "name": "Private Key",
+ "airbyte_secret": true,
+ "type": "string"
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "name": "Start Date",
+ "examples": [ "2020", "2020-12-30", "2020-11-22 20:20:05" ],
+ "type": "string",
+ "format": "date-time"
+ },
+ "environment": {
+ "title": "Environment",
+ "description": "Environment specifies where the data will come from.",
+ "name": "Environment",
+ "examples": [ "sandbox", "production", "qa", "development" ],
+ "enum": [ "Development", "Sandbox", "Qa", "Production" ],
+ "type": "string"
+ }
+ },
+ "required": [ "merchant_id", "public_key", "private_key", "environment" ]
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "7c37685e-8512-4901-addf-9afbef6c0de9",
+ "name": "Breezometer",
+ "dockerRepository": "airbyte/source-breezometer",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/breezometer",
+ "icon": "breezometer.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/breezometer",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Breezometer Spec",
+ "type": "object",
+ "required": [ "api_key", "latitude", "longitude" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "tittle": "API Key",
+ "description": "Your API Access Key. See here.",
+ "airbyte_secret": true
+ },
+ "latitude": {
+ "type": "string",
+ "tittle": "Latitude",
+ "description": "Latitude of the monitored location.",
+ "examples": [ "54.675003" ]
+ },
+ "longitude": {
+ "type": "string",
+ "tittle": "Longitude",
+ "description": "Longitude of the monitored location.",
+ "examples": [ "-113.550282" ]
+ },
+ "days_to_forecast": {
+ "type": "integer",
+ "tittle": "Days to Forecast",
+ "description": "Number of days to forecast. Minimum 1, maximum 3. Valid for Polen and Weather Forecast streams.",
+ "examples": [ 3 ]
+ },
+ "hours_to_forecast": {
+ "type": "integer",
+ "tittle": "Hours to Forecast",
+ "description": "Number of hours to forecast. Minimum 1, maximum 96. Valid for Air Quality Forecast stream.",
+ "examples": [ 30 ]
+ },
+ "historic_hours": {
+ "type": "integer",
+ "tittle": "Historic Hours",
+ "description": "Number of hours retireve from Air Quality History stream. Minimum 1, maximum 720.",
+ "examples": [ 30 ]
+ },
+ "radius": {
+ "type": "integer",
+ "tittle": "Radius",
+ "description": "Desired radius from the location provided. Minimum 5, maximum 100. Valid for Wildfires streams.",
+ "examples": [ 50 ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "dc98a6ad-2dd1-47b6-9529-2ec35820f9c6",
+ "name": "CallRail",
+ "dockerRepository": "airbyte/source-callrail",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/callrail",
+ "icon": "callrail.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/callrail",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Call Rail Spec",
+ "type": "object",
+ "required": [ "api_key", "account_id", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API access key",
+ "airbyte_secret": true
+ },
+ "account_id": {
+ "type": "string",
+ "description": "Account ID",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "description": "Start getting data from that date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": [ "%Y-%m-%d" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "bb1a6d31-6879-4819-a2bd-3eed299ea8e2",
+ "name": "Cart.com",
+ "dockerRepository": "airbyte/source-cart",
+ "dockerImageTag": "0.2.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/cart",
+ "icon": "cart.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/cart",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Cart.com Spec",
+ "type": "object",
+ "required": [ "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authorization Method",
+ "description": "",
+ "type": "object",
+ "oneOf": [ {
+ "title": "Central API Router",
+ "type": "object",
+ "order": 0,
+ "required": [ "auth_type", "user_name", "user_secret", "site_id" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "CENTRAL_API_ROUTER",
+ "order": 0
+ },
+ "user_name": {
+ "type": "string",
+ "title": "User Name",
+ "description": "Enter your application's User Name",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "user_secret": {
+ "type": "string",
+ "title": "User Secret",
+ "description": "Enter your application's User Secret",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "site_id": {
+ "type": "string",
+ "title": "Site ID",
+ "description": "You can determine a site provisioning site Id by hitting https://site.com/store/sitemonitor.aspx and reading the response param PSID",
+ "airbyte_secret": true,
+ "order": 3
+ }
+ }
+ }, {
+ "title": "Single Store Access Token",
+ "type": "object",
+ "order": 1,
+ "required": [ "auth_type", "access_token", "store_name" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "SINGLE_STORE_ACCESS_TOKEN",
+ "order": 0
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "airbyte_secret": true,
+ "order": 1,
+ "description": "Access Token for making authenticated requests."
+ },
+ "store_name": {
+ "type": "string",
+ "title": "Store Name",
+ "order": 2,
+ "description": "The name of Cart.com Online Store. All API URLs start with https://[mystorename.com]/api/v1/, where [mystorename.com] is the domain name of your store."
+ }
+ }
+ } ]
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "The date from which you'd like to replicate the data",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2021-01-01T00:00:00Z" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "686473f1-76d9-4994-9cc7-9b13da46147c",
+ "name": "Chargebee",
+ "dockerRepository": "airbyte/source-chargebee",
+ "dockerImageTag": "0.2.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/chargebee",
+ "icon": "chargebee.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://apidocs.chargebee.com/docs/api",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Chargebee Spec",
+ "type": "object",
+ "required": [ "site", "site_api_key", "start_date", "product_catalog" ],
+ "additionalProperties": true,
+ "properties": {
+ "site_api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Chargebee API Key. See the docs for more information on how to obtain this key.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "site": {
+ "type": "string",
+ "title": "Site",
+ "description": "The site prefix for your Chargebee instance.",
+ "examples": [ "airbyte-test" ],
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "format": "date-time",
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2021-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2021-01-25T00:00:00Z" ],
+ "order": 2
+ },
+ "product_catalog": {
+ "type": "string",
+ "title": "Product Catalog",
+ "description": "Product Catalog version of your Chargebee site. Instructions on how to find your version you may find here under `API Version` section.",
+ "enum": [ "1.0", "2.0" ],
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "*.chargebee.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "9b2d3607-7222-4709-9fa2-c2abdebbdd88",
+ "name": "Chargify",
+ "dockerRepository": "airbyte/source-chargify",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/chargify",
+ "icon": "chargify.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/chargify",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Chargify Spec",
+ "type": "object",
+ "required": [ "api_key", "domain" ],
+ "additionalProperties": false,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "Chargify API Key.",
+ "airbyte_secret": true
+ },
+ "domain": {
+ "type": "string",
+ "description": "Chargify domain. Normally this domain follows the following format companyname.chargify.com"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "b6604cbd-1b12-4c08-8767-e140d0fb0877",
+ "name": "Chartmogul",
+ "dockerRepository": "airbyte/source-chartmogul",
+ "dockerImageTag": "0.2.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/chartmogul",
+ "icon": "chartmogul.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/chartmogul",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Chartmogul Spec",
+ "type": "object",
+ "required": [ "api_key", "start_date", "interval" ],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API key",
+ "description": "Your Chartmogul API key. See the docs for info on how to obtain this.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. When feasible, any data before this date will not be replicated.",
+ "examples": [ "2017-01-25T00:00:00Z" ],
+ "order": 1,
+ "format": "date-time"
+ },
+ "interval": {
+ "type": "string",
+ "title": "Interval",
+ "description": "Some APIs such as Metrics require intervals to cluster data.",
+ "enum": [ "day", "week", "month", "quarter" ],
+ "default": "month",
+ "order": 2
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "api.chartmogul.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "bad83517-5e54-4a3d-9b53-63e85fbd4d7c",
+ "name": "ClickHouse",
+ "dockerRepository": "airbyte/source-clickhouse",
+ "dockerImageTag": "0.1.17",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/clickhouse",
+ "icon": "clickhouse.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/clickhouse",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "ClickHouse Source Spec",
+ "type": "object",
+ "required": [ "host", "port", "database", "username" ],
+ "properties": {
+ "host": {
+ "description": "The host endpoint of the Clickhouse cluster.",
+ "title": "Host",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "description": "The port of the database.",
+ "title": "Port",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 8123,
+ "examples": [ "8123" ],
+ "order": 1
+ },
+ "database": {
+ "description": "The name of the database.",
+ "title": "Database",
+ "type": "string",
+ "examples": [ "default" ],
+ "order": 2
+ },
+ "username": {
+ "description": "The username which is used to access the database.",
+ "title": "Username",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "description": "The password associated with this username.",
+ "title": "Password",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (Eg. key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
+ "title": "JDBC URL Parameters (Advanced)",
+ "type": "string",
+ "order": 5
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL.",
+ "type": "boolean",
+ "default": true,
+ "order": 6
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [ {
+ "title": "No Tunnel",
+ "required": [ "tunnel_method" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "SSH Key Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Password Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
+ }
+ }, {
+ "sourceDefinitionId": "311a7a27-3fb5-4f7e-8265-5e4afe258b66",
+ "name": "ClickUp",
+ "dockerRepository": "airbyte/source-clickup-api",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/click-up",
+ "icon": "clickup.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "ClickUp Api Spec",
+ "type": "object",
+ "required": [ "api_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "description": "Every ClickUp API call required authentication. This field is your personal API token. See here.",
+ "airbyte_secret": true
+ },
+ "team_id": {
+ "type": "string",
+ "description": "The ID of your team in ClickUp. Retrieve it from the `/team` of the ClickUp API. See here."
+ },
+ "space_id": {
+ "type": "string",
+ "description": "The ID of your space in your workspace. Retrieve it from the `/team/{team_id}/space` of the ClickUp API. See here."
+ },
+ "folder_id": {
+ "type": "string",
+ "description": "The ID of your folder in your space. Retrieve it from the `/space/{space_id}/folder` of the ClickUp API. See here."
+ },
+ "list_id": {
+ "type": "string",
+ "description": "The ID of your list in your folder. Retrieve it from the `/folder/{folder_id}/list` of the ClickUp API. See here."
+ },
+ "include_closed_tasks": {
+ "title": "Include Closed Tasks",
+ "type": "boolean",
+ "default": false,
+ "description": "Include or exclude closed tasks. By default, they are excluded. See here."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "dfffecb7-9a13-43e9-acdc-b92af7997ca9",
+ "name": "Close.com",
+ "dockerRepository": "airbyte/source-close-com",
+ "dockerImageTag": "0.2.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/close-com",
+ "icon": "close.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/close-com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Close.com Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "Close.com API key (usually starts with 'api_'; find yours here).",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "description": "The start date to sync data. Leave blank for full sync. Format: YYYY-MM-DD.",
+ "examples": [ "2021-01-01" ],
+ "default": "2021-01-01",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "api.close.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "9cdd4183-d0ba-40c3-aad3-6f46d4103974",
+ "name": "CoinGecko Coins",
+ "dockerRepository": "airbyte/source-coingecko-coins",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/coingecko-coins",
+ "icon": "coingeckocoins.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "CoinGecko Coins Spec",
+ "type": "object",
+ "required": [ "coin_id", "vs_currency", "days", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API Key (for pro users)",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "coin_id": {
+ "type": "string",
+ "description": "CoinGecko coin ID (e.g. bitcoin). Can be retrieved from the\n`/coins/list` endpoint.\n",
+ "order": 1
+ },
+ "vs_currency": {
+ "type": "string",
+ "description": "The target currency of market data (e.g. usd, eur, jpy, etc.)\n",
+ "order": 2
+ },
+ "days": {
+ "type": "string",
+ "description": "The number of days of data for market chart.\n",
+ "enum": [ "1", "7", "14", "30", "90", "180", "365", "max" ],
+ "default": "30",
+ "order": 3
+ },
+ "start_date": {
+ "type": "string",
+ "description": "The start date for the historical data stream in dd-mm-yyyy format.\n",
+ "format": "date",
+ "pattern": "^[0-9]{2}-[0-9]{2}-[0-9]{4}$",
+ "order": 4
+ },
+ "end_date": {
+ "type": "string",
+ "description": "The end date for the historical data stream in dd-mm-yyyy format.\n",
+ "format": "date",
+ "pattern": "^[0-9]{2}-[0-9]{2}-[0-9]{4}$",
+ "order": 5
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "9fa5862c-da7c-11eb-8d19-0242ac130003",
+ "name": "Cockroachdb",
+ "dockerRepository": "airbyte/source-cockroachdb",
+ "dockerImageTag": "0.1.22",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/cockroachdb",
+ "icon": "cockroachdb.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/cockroachdb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Cockroach Source Spec",
+ "type": "object",
+ "required": [ "host", "port", "database", "username" ],
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 5432,
+ "examples": [ "5432" ],
+ "order": 1
+ },
+ "database": {
+ "title": "DB Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (Eg. key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
+ "title": "JDBC URL Parameters (Advanced)",
+ "type": "string",
+ "order": 5
+ },
+ "ssl": {
+ "title": "Connect using SSL",
+ "description": "Encrypt client/server communications for increased security.",
+ "type": "boolean",
+ "default": false,
+ "order": 6
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "${host}" ]
+ }
+ }, {
+ "sourceDefinitionId": "27f910fd-f832-4b2e-bcfd-6ab342e434d8",
+ "name": "Coda",
+ "dockerRepository": "airbyte/source-coda",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/coda",
+ "icon": "coda.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/coda",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Required attributes for hitting apis",
+ "type": "object",
+ "required": [ "auth_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "auth_token": {
+ "title": "Authentication token",
+ "type": "string",
+ "description": "Bearer token",
+ "airbyte_secret": true,
+ "order": 0
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "919984ef-53a2-479b-8ffe-9c1ddb9fc3f3",
+ "name": "Coin API",
+ "dockerRepository": "airbyte/source-coin-api",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/coin-api",
+ "icon": "coinapi.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/coin-api",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Coin API Spec",
+ "type": "object",
+ "required": [ "api_key", "environment", "symbol_id", "period", "start_date" ],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "environment": {
+ "type": "string",
+ "description": "The environment to use. Either sandbox or production.\n",
+ "enum": [ "sandbox", "production" ],
+ "default": "sandbox",
+ "order": 1
+ },
+ "symbol_id": {
+ "type": "string",
+ "description": "The symbol ID to use. See the documentation for a list.\nhttps://docs.coinapi.io/#list-all-symbols-get\n",
+ "order": 2
+ },
+ "period": {
+ "type": "string",
+ "description": "The period to use. See the documentation for a list. https://docs.coinapi.io/#list-all-periods-get",
+ "examples": [ "5SEC", "2MTH" ]
+ },
+ "start_date": {
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
+ "description": "The start date in ISO 8601 format.",
+ "examples": [ "2019-01-01T00:00:00" ]
+ },
+ "end_date": {
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
+ "description": "The end date in ISO 8601 format. If not supplied, data will be returned\nfrom the start date to the current time, or when the count of result\nelements reaches its limit.\n",
+ "examples": [ "2019-01-01T00:00:00" ]
+ },
+ "limit": {
+ "type": "integer",
+ "description": "The maximum number of elements to return. If not supplied, the default\nis 100. For numbers larger than 100, each 100 items is counted as one\nrequest for pricing purposes. Maximum value is 100000.\n",
+ "minimum": 1,
+ "maximum": 100000,
+ "default": 100
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "239463f5-64bb-4d88-b4bd-18ce673fd572",
+ "name": "CoinMarketCap",
+ "dockerRepository": "airbyte/source-coinmarketcap",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/coinmarketcap",
+ "icon": "coinmarketcap.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/coinmarketcap",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Coinmarketcap Spec",
+ "type": "object",
+ "required": [ "api_key", "data_type" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Your API Key. See here. The token is case sensitive.",
+ "airbyte_secret": true
+ },
+ "data_type": {
+ "title": "Data type",
+ "type": "string",
+ "enum": [ "latest", "historical" ],
+ "description": "/latest: Latest market ticker quotes and averages for cryptocurrencies and exchanges. /historical: Intervals of historic market data like OHLCV data or data for use in charting libraries. See here."
+ },
+ "symbols": {
+ "title": "Symbol",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Cryptocurrency symbols. (only used for quotes stream)",
+ "minItems": 1,
+ "examples": [ "AVAX", "BTC" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "008b2e26-11a3-11ec-82a8-0242ac130003",
+ "name": "Commercetools",
+ "dockerRepository": "airbyte/source-commercetools",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/commercetools",
+ "icon": "commercetools.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/commercetools",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Commercetools Source CDK Specifications",
+ "type": "object",
+ "required": [ "region", "start_date", "host", "project_key", "client_id", "client_secret" ],
+ "additionalProperties": false,
+ "properties": {
+ "region": {
+ "type": "string",
+ "description": "The region of the platform.",
+ "examples": [ "us-central1", "australia-southeast1" ]
+ },
+ "host": {
+ "type": "string",
+ "enum": [ "gcp", "aws" ],
+ "description": "The cloud provider your shop is hosted. See: https://docs.commercetools.com/api/authorization"
+ },
+ "start_date": {
+ "type": "string",
+ "description": "The date you would like to replicate data. Format: YYYY-MM-DD.",
+ "examples": [ "2021-01-01" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
+ },
+ "project_key": {
+ "type": "string",
+ "description": "The project key"
+ },
+ "client_id": {
+ "type": "string",
+ "description": "Id of API Client.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "description": "The password of secret of API Client.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "4fd7565c-8b99-439b-80d0-2d965e1d958c",
+ "name": "ConfigCat",
+ "dockerRepository": "airbyte/source-configcat",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/configcat",
+ "icon": "configcat.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/configcat",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Configcat Spec",
+ "type": "object",
+ "required": [ "username", "password" ],
+ "additionalProperties": true,
+ "properties": {
+ "username": {
+ "title": "Username",
+ "type": "string",
+ "description": "Basic auth user name. See here."
+ },
+ "password": {
+ "title": "Password",
+ "type": "string",
+ "description": "Basic auth password. See here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "cf40a7f8-71f8-45ce-a7fa-fca053e4028c",
+ "name": "Confluence",
+ "dockerRepository": "airbyte/source-confluence",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/confluence",
+ "icon": "confluence.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Confluence Spec",
+ "type": "object",
+ "required": [ "api_token", "domain_name", "email" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "title": "API Token",
+ "type": "string",
+ "description": "Please follow the Jira confluence for generating an API token: generating an API token.",
+ "airbyte_secret": true
+ },
+ "domain_name": {
+ "title": "Domain name",
+ "type": "string",
+ "description": "Your Confluence domain name",
+ "examples": [ "example.atlassian.net" ]
+ },
+ "email": {
+ "title": "Email",
+ "type": "string",
+ "description": "Your Confluence login email",
+ "examples": [ "abc@example.com" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "${subdomain}.atlassian.net" ]
+ }
+ }, {
+ "sourceDefinitionId": "be9ee02f-6efe-4970-979b-95f797a37188",
+ "name": "ConvertKit",
+ "dockerRepository": "airbyte/source-convertkit",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/convertkit",
+ "icon": "convertkit.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/convertkit",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Convertkit Spec",
+ "type": "object",
+ "required": [ "api_secret" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_secret": {
+ "type": "string",
+ "description": "API Secret",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "f39208dc-7e1c-48b8-919b-5006360cc27f",
+ "name": "Commcare",
+ "dockerRepository": "airbyte/source-commcare",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/commcare",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Commcare Source Spec",
+ "type": "object",
+ "required": [ "api_key", "app_id", "start_date" ],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Commcare API Key",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "project_space": {
+ "type": "string",
+ "title": "Project Space",
+ "description": "Project Space for commcare",
+ "order": 1
+ },
+ "app_id": {
+ "type": "string",
+ "title": "Application ID",
+ "description": "The Application ID we are interested in",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date for extracting records",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "default": "2022-10-01T00:00:00Z",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Only records after this date will be replicated.",
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "44f3002f-2df9-4f6d-b21c-02cd3b47d0dc",
+ "name": "Copper",
+ "dockerRepository": "airbyte/source-copper",
+ "dockerImageTag": "0.2.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/copper",
+ "icon": "copper.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/copper",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Copper Spec",
+ "type": "object",
+ "required": [ "api_key", "user_email" ],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Copper API key",
+ "airbyte_secret": true
+ },
+ "user_email": {
+ "type": "string",
+ "title": "User email",
+ "description": "user email used to login in to Copper"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "c332628c-f55c-4017-8222-378cfafda9b2",
+ "name": "Convex",
+ "dockerRepository": "airbyte/source-convex",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/convex",
+ "icon": "convex.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/convex",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Convex Source Spec",
+ "type": "object",
+ "required": [ "deployment_url", "access_key" ],
+ "properties": {
+ "deployment_url": {
+ "type": "string",
+ "title": "Deployment Url",
+ "examples": [ "https://murky-swan-635.convex.cloud", "https://cluttered-owl-337.convex.cloud" ]
+ },
+ "access_key": {
+ "type": "string",
+ "title": "Access Key",
+ "description": "API access key used to retrieve data from Convex.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "0541b2cd-2367-4986-b5f1-b79ff55439e4",
+ "name": "Courier",
+ "dockerRepository": "airbyte/source-courier",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/courier",
+ "icon": "courier.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/courier",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Courier Source Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "Courier API Key to retrieve your data.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "e71aae8a-5143-11ed-bdc3-0242ac120002",
+ "name": "Clockify",
+ "dockerRepository": "airbyte/source-clockify",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/clockify",
+ "icon": "clockify.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/clockify",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Clockify Spec",
+ "type": "object",
+ "required": [ "workspace_id", "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "workspace_id": {
+ "title": "Workspace Id",
+ "description": "WorkSpace Id",
+ "type": "string"
+ },
+ "api_key": {
+ "title": "API Key",
+ "description": "You can get your api access_key here This API is Case Sensitive.",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "c47d6804-8b98-449f-970a-5ddb5cb5d7aa",
+ "name": "Customer.io",
+ "dockerRepository": "farosai/airbyte-customer-io-source",
+ "dockerImageTag": "0.1.23",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/customer-io",
+ "icon": "customer-io.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.faros.ai",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Customer.io Spec",
+ "type": "object",
+ "required": [ "app_api_key" ],
+ "additionalProperties": false,
+ "properties": {
+ "app_api_key": {
+ "type": "string",
+ "title": "Customer.io App API Key",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "1cfc30c7-82db-43f4-9fd7-ac1b42312cda",
+ "name": "Datadog",
+ "dockerRepository": "airbyte/source-datadog",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/datadog",
+ "icon": "datadog.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/datadog",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Datadog Source Spec",
+ "type": "object",
+ "required": [ "api_key", "application_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "description": "Datadog API key",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "application_key": {
+ "title": "Application Key",
+ "description": "Datadog application key",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "query": {
+ "title": "Query",
+ "description": "The search query. This just applies to Incremental syncs. If empty, it'll collect all logs.",
+ "type": "string",
+ "order": 3
+ },
+ "max_records_per_request": {
+ "type": "integer",
+ "title": "Max records per requests",
+ "default": 5000,
+ "minimum": 1,
+ "maximum": 5000,
+ "description": "Maximum number of records to collect per request.",
+ "order": 4
+ },
+ "start_date": {
+ "title": "Start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. This just applies to Incremental syncs.",
+ "type": "string",
+ "examples": [ "2022-10-01T00:00:00Z" ],
+ "order": 5
+ },
+ "end_date": {
+ "title": "End date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Data after this date will not be replicated. An empty value will represent the current datetime for each execution. This just applies to Incremental syncs.",
+ "examples": [ "2022-10-01T00:00:00Z" ],
+ "type": "string",
+ "order": 6
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "8e1ae2d2-4790-44d3-9d83-75b3fc3940ff",
+ "name": "Datascope",
+ "dockerRepository": "airbyte/source-datascope",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/datascope",
+ "icon": "datascope.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/datascope",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Datascope Spec",
+ "type": "object",
+ "required": [ "api_key", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "Start date for the data to be replicated",
+ "examples": [ "dd/mm/YYYY HH:MM" ],
+ "pattern": "^[0-9]{2}/[0-9]{2}/[0-9]{4} [0-9]{2}:[0-9]{2}$"
+ },
+ "api_key": {
+ "title": "Authorization",
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "cc88c43f-6f53-4e8a-8c4d-b284baaf9635",
+ "name": "Delighted",
+ "dockerRepository": "airbyte/source-delighted",
+ "dockerImageTag": "0.2.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/delighted",
+ "icon": "delighted.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Delighted Spec",
+ "type": "object",
+ "required": [ "since", "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "Delighted API Key",
+ "type": "string",
+ "description": "A Delighted API key.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "since": {
+ "title": "Date Since",
+ "type": "string",
+ "description": "The date from which you'd like to replicate the data",
+ "examples": [ "2022-05-30T04:50:23Z", "2022-05-30 04:50:23" ],
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z?$",
+ "order": 1,
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "api.delighted.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "0b5c867e-1b12-4d02-ab74-97b2184ff6d7",
+ "name": "Dixa",
+ "dockerRepository": "airbyte/source-dixa",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/dixa",
+ "icon": "dixa.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/dixa",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Dixa Spec",
+ "type": "object",
+ "required": [ "api_token", "start_date" ],
+ "additionalProperties": false,
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "description": "Dixa API token",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "description": "The connector pulls records updated from this date onwards.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": [ "YYYY-MM-DD" ]
+ },
+ "batch_size": {
+ "type": "integer",
+ "description": "Number of days to batch into one request. Max 31.",
+ "pattern": "^[0-9]{1,2}$",
+ "examples": [ 1, 31 ],
+ "default": 31
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "72d405a3-56d8-499f-a571-667c03406e43",
+ "name": "Dockerhub",
+ "dockerRepository": "airbyte/source-dockerhub",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/dockerhub",
+ "icon": "dockerhub.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/dockerhub",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Dockerhub Spec",
+ "type": "object",
+ "required": [ "docker_username" ],
+ "additionalProperties": false,
+ "properties": {
+ "docker_username": {
+ "type": "string",
+ "description": "Username of DockerHub person or organization (for https://hub.docker.com/v2/repositories/USERNAME/ API call)",
+ "pattern": "^[a-z0-9_\\-]+$",
+ "examples": [ "airbyte" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "d99e9ace-8621-46c2-9144-76ae4751d64b",
+ "name": "Dremio",
+ "dockerRepository": "airbyte/source-dremio",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/dremio",
+ "icon": "dremio.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/dremio",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Dremio Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "required": [ "api_key", "base_url" ],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API Key that is generated when you authenticate to Dremio API",
+ "airbyte_secret": true
+ },
+ "base_url": {
+ "type": "string",
+ "description": "URL of your Dremio instance",
+ "default": "https://app.dremio.cloud"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "445831eb-78db-4b1f-8f1f-0d96ad8739e2",
+ "name": "Drift",
+ "dockerRepository": "airbyte/source-drift",
+ "dockerImageTag": "0.2.6",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/drift",
+ "icon": "drift.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/drift",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Drift Spec",
+ "type": "object",
+ "required": [ ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "oneOf": [ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [ "client_id", "client_secret", "access_token", "refresh_token" ],
+ "properties": {
+ "credentials": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your Drift developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your Drift developer application.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "Refresh Token to renew the expired Access Token.",
+ "default": "",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "Access Token",
+ "type": "object",
+ "required": [ "access_token" ],
+ "properties": {
+ "credentials": {
+ "type": "string",
+ "const": "access_token",
+ "order": 0
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Drift Access Token. See the docs for more information on how to generate this key.",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ "credentials", "0" ],
+ "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
+ "oauthFlowOutputParameters": [ [ "access_token" ], [ "refresh_token" ] ]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "driftapi.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "1356e1d9-977f-4057-ad4b-65f25329cf61",
+ "name": "DV 360",
+ "dockerRepository": "airbyte/source-dv-360",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/dv-360",
+ "icon": "dv360.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Display & Video 360 Spec",
+ "type": "object",
+ "required": [ "credentials", "partner_id", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "type": "object",
+ "description": "Oauth2 credentials",
+ "order": 0,
+ "required": [ "access_token", "refresh_token", "token_uri", "client_id", "client_secret" ],
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "description": "Access token",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "description": "Refresh token",
+ "airbyte_secret": true
+ },
+ "token_uri": {
+ "type": "string",
+ "description": "Token URI",
+ "airbyte_secret": true
+ },
+ "client_id": {
+ "type": "string",
+ "description": "Client ID",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "description": "Client secret",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "partner_id": {
+ "type": "integer",
+ "description": "Partner ID",
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "description": "UTC date and time in the format 2017-01-25. Any data before this date will not be replicated",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 2
+ },
+ "end_date": {
+ "type": "string",
+ "description": "UTC date and time in the format 2017-01-25. Any data after this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 3
+ },
+ "filters": {
+ "type": "array",
+ "description": "filters for the dimensions. each filter object had 2 keys: 'type' for the name of the dimension to be used as. and 'value' for the value of the filter",
+ "default": [ ],
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "50401137-8871-4c5a-abb7-1f5fda35545a",
+ "name": "DynamoDB",
+ "dockerRepository": "airbyte/source-dynamodb",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/dynamodb",
+ "icon": "dynamodb.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/dynamodb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Dynamodb Source Spec",
+ "type": "object",
+ "required": [ "access_key_id", "secret_access_key" ],
+ "additionalProperties": false,
+ "properties": {
+ "endpoint": {
+ "title": "Dynamodb Endpoint",
+ "type": "string",
+ "default": "",
+ "description": "the URL of the Dynamodb database",
+ "examples": [ "https://{aws_dynamo_db_url}.com" ]
+ },
+ "region": {
+ "title": "Dynamodb Region",
+ "type": "string",
+ "default": "",
+ "description": "The region of the Dynamodb database",
+ "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ]
+ },
+ "access_key_id": {
+ "title": "Dynamodb Key Id",
+ "type": "string",
+ "description": "The access key id to access Dynamodb. Airbyte requires read permissions to the database",
+ "airbyte_secret": true,
+ "examples": [ "A012345678910EXAMPLE" ]
+ },
+ "secret_access_key": {
+ "title": "Dynamodb Access Key",
+ "type": "string",
+ "description": "The corresponding secret to the access key id.",
+ "airbyte_secret": true,
+ "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ]
+ },
+ "reserved_attribute_names": {
+ "title": "Reserved attribute names",
+ "type": "string",
+ "description": "Comma separated reserved attribute names present in your tables",
+ "airbyte_secret": true,
+ "examples": [ "name, field_name, field-name" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "d53f9084-fa6b-4a5a-976c-5b8392f4ad8a",
+ "name": "E2E Testing",
+ "dockerRepository": "airbyte/source-e2e-test",
+ "dockerImageTag": "2.1.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/e2e-test",
+ "icon": "airbyte.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/e2e-test",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "E2E Test Source Spec",
+ "additionalProperties": true,
+ "type": "object",
+ "oneOf": [ {
+ "title": "Legacy Infinite Feed",
+ "description": "This mode is used for Platform acceptance tests. The catalog has one \"data\" stream, which has one string field \"column1\". This mode will emit messages infinitely.",
+ "required": [ "type", "max_records" ],
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "INFINITE_FEED",
+ "default": "INFINITE_FEED"
+ },
+ "max_records": {
+ "title": "Max Records",
+ "description": "Number of records to emit. If not set, defaults to infinity.",
+ "type": "integer"
+ },
+ "message_interval": {
+ "title": "Message Interval",
+ "description": "Interval between messages in ms.",
+ "type": "integer"
+ }
+ }
+ }, {
+ "title": "Legacy Exception After N",
+ "description": "This mode is used for Platform acceptance tests. The catalog has one \"data\" stream, which has one string field \"column1\". This mode will throw an exception after N messages.",
+ "required": [ "type", "throw_after_n_records" ],
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "EXCEPTION_AFTER_N",
+ "default": "EXCEPTION_AFTER_N"
+ },
+ "throw_after_n_records": {
+ "title": "Throw After N Records",
+ "description": "Number of records to emit before throwing an exception. Min 1.",
+ "type": "integer",
+ "min": 1
+ }
+ }
+ }, {
+ "title": "Continuous Feed",
+ "type": "object",
+ "required": [ "type", "max_messages", "mock_catalog" ],
+ "additionalProperties": true,
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "CONTINUOUS_FEED",
+ "default": "CONTINUOUS_FEED",
+ "order": 10
+ },
+ "max_messages": {
+ "title": "Max Records",
+ "description": "Number of records to emit per stream. Min 1. Max 100 billion.",
+ "type": "integer",
+ "default": 100,
+ "min": 1,
+ "max": 100000000000,
+ "order": 20
+ },
+ "seed": {
+ "title": "Random Seed",
+ "description": "When the seed is unspecified, the current time millis will be used as the seed. Range: [0, 1000000].",
+ "type": "integer",
+ "default": 0,
+ "examples": [ 42 ],
+ "min": 0,
+ "max": 1000000,
+ "order": 30
+ },
+ "message_interval_ms": {
+ "title": "Message Interval (ms)",
+ "description": "Interval between messages in ms. Min 0 ms. Max 60000 ms (1 minute).",
+ "type": "integer",
+ "min": 0,
+ "max": 60000,
+ "default": 0,
+ "order": 40
+ },
+ "mock_catalog": {
+ "title": "Mock Catalog",
+ "type": "object",
+ "order": 50,
+ "oneOf": [ {
+ "title": "Single Schema",
+ "description": "A catalog with one or multiple streams that share the same schema.",
+ "type": "object",
+ "required": [ "type", "stream_name", "stream_schema" ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "SINGLE_STREAM",
+ "default": "SINGLE_STREAM"
+ },
+ "stream_name": {
+ "title": "Stream Name",
+ "description": "Name of the data stream.",
+ "type": "string",
+ "default": "data_stream"
+ },
+ "stream_schema": {
+ "title": "Stream Schema",
+ "description": "A Json schema for the stream. The schema should be compatible with draft-07. See this doc for examples.",
+ "type": "string",
+ "default": "{ \"type\": \"object\", \"properties\": { \"column1\": { \"type\": \"string\" } } }"
+ },
+ "stream_duplication": {
+ "title": "Duplicate the stream N times",
+ "description": "Duplicate the stream for easy load testing. Each stream name will have a number suffix. For example, if the stream name is \"ds\", the duplicated streams will be \"ds_0\", \"ds_1\", etc.",
+ "type": "integer",
+ "default": 1,
+ "min": 1,
+ "max": 10000
+ }
+ }
+ }, {
+ "title": "Multi Schema",
+ "type": "object",
+ "description": "A catalog with multiple data streams, each with a different schema.",
+ "required": [ "type", "stream_schemas" ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "MULTI_STREAM",
+ "default": "MULTI_STREAM"
+ },
+ "stream_schemas": {
+ "title": "Streams and Schemas",
+ "description": "A Json object specifying multiple data streams and their schemas. Each key in this object is one stream name. Each value is the schema for that stream. The schema should be compatible with draft-07. See this doc for examples.",
+ "type": "string",
+ "default": "{ \"stream1\": { \"type\": \"object\", \"properties\": { \"field1\": { \"type\": \"string\" } } }, \"stream2\": { \"type\": \"object\", \"properties\": { \"field1\": { \"type\": \"boolean\" } } } }"
+ }
+ }
+ } ]
+ }
+ }
+ }, {
+ "title": "Benchmark",
+ "description": "This mode is used for speed benchmarks. Specifically, it should be used for testing the throughput of the platform and destination. It optimizes for emitting records very quickly, so that it should never be the bottleneck.",
+ "type": "object",
+ "required": [ "type", "schema", "terminationCondition" ],
+ "additionalProperties": true,
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "BENCHMARK",
+ "default": "BENCHMARK"
+ },
+ "schema": {
+ "title": "Schema",
+ "description": "schema of the data in the benchmark.",
+ "type": "string",
+ "enum": [ "FIVE_STRING_COLUMNS" ]
+ },
+ "terminationCondition": {
+ "title": "Termination Condition",
+ "description": "when does the benchmark stop?",
+ "type": "object",
+ "oneOf": [ {
+ "title": "max records",
+ "type": "object",
+ "required": [ "type", "max" ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "MAX_RECORDS",
+ "default": "MAX_RECORDS"
+ },
+ "max": {
+ "type": "number"
+ }
+ }
+ } ]
+ }
+ }
+ } ]
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "protocol_version": "0.2.1"
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "46b25e70-c980-4590-a811-8deaf50ee09f",
+ "name": "EmailOctopus",
+ "dockerRepository": "airbyte/source-emailoctopus",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/emailoctopus",
+ "icon": "emailoctopus.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/emailoctopus",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "EmailOctopus Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "EmailOctopus API key",
+ "description": "EmailOctopus API Key. See the docs for information on how to generate this key.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "e2b40e36-aa0e-4bed-b41b-bcea6fa348b1",
+ "name": "Exchange Rates Api",
+ "dockerRepository": "airbyte/source-exchange-rates",
+ "dockerImageTag": "1.2.8",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/exchangeratesapi",
+ "icon": "exchangeratesapi.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/exchangeratesapi",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "exchangeratesapi.io Source Spec",
+ "type": "object",
+ "required": [ "start_date", "access_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "description": "Start getting data from that date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": [ "YYYY-MM-DD" ],
+ "format": "date"
+ },
+ "access_key": {
+ "type": "string",
+ "description": "Your API Key. See here. The key is case sensitive.",
+ "airbyte_secret": true
+ },
+ "base": {
+ "type": "string",
+ "description": "ISO reference currency. See here. Free plan doesn't support Source Currency Switching, default base currency is EUR",
+ "examples": [ "EUR", "USD" ]
+ },
+ "ignore_weekends": {
+ "type": "boolean",
+ "description": "Ignore weekends? (Exchanges don't run on weekends)",
+ "default": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "${subdomain}.apilayer.com", "apilayer.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "6babfc42-c734-4ef6-a817-6eca15f0f9b7",
+ "name": "Everhour",
+ "dockerRepository": "airbyte/source-everhour",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/everhour",
+ "icon": "everhour.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/everhour",
+ "connectionSpecification": {
+ "title": "Everhour Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Everhour API Key. See the docs for information on how to generate this key.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "api.everhour.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "e7778cfc-e97c-4458-9ecb-b4f2bba8946c",
+ "name": "Facebook Marketing",
+ "dockerRepository": "airbyte/source-facebook-marketing",
+ "dockerImageTag": "0.3.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/facebook-marketing",
+ "icon": "facebook.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/facebook-marketing",
+ "changelogUrl": "https://docs.airbyte.com/integrations/sources/facebook-marketing",
+ "connectionSpecification": {
+ "title": "Source Facebook Marketing",
+ "type": "object",
+ "properties": {
+ "account_id": {
+ "title": "Account ID",
+ "description": "The Facebook Ad account ID to use when pulling data from the Facebook Marketing API. Open your Meta Ads Manager. The Ad account ID number is in the account dropdown menu or in your browser's address bar. See the docs for more information.",
+ "order": 0,
+ "examples": [ "111111111111111" ],
+ "type": "string"
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for all incremental streams, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "order": 1,
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2017-01-25T00:00:00Z" ],
+ "type": "string",
+ "format": "date-time"
+ },
+ "end_date": {
+ "title": "End Date",
+ "description": "The date until which you'd like to replicate data for all incremental streams, in the format YYYY-MM-DDT00:00:00Z. All data generated between the start date and this end date will be replicated. Not setting this option will result in always syncing the latest data.",
+ "order": 2,
+ "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2017-01-26T00:00:00Z" ],
+ "type": "string"
+ },
+ "access_token": {
+ "title": "Access Token",
+ "description": "The value of the generated access token. From your App’s Dashboard, click on \"Marketing API\" then \"Tools\". Select permissions ads_management, ads_read, read_insights, business_management. Then click on \"Get token\". See the docs for more information.",
+ "order": 3,
+ "airbyte_secret": true,
+ "type": "string"
+ },
+ "include_deleted": {
+ "title": "Include Deleted Campaigns, Ads, and AdSets",
+ "description": "Set to active if you want to include data from deleted Campaigns, Ads, and AdSets.",
+ "default": false,
+ "order": 4,
+ "type": "boolean"
+ },
+ "fetch_thumbnail_images": {
+ "title": "Fetch Thumbnail Images from Ad Creative",
+ "description": "Set to active if you want to fetch the thumbnail_url and store the result in thumbnail_data_url for each Ad Creative.",
+ "default": false,
+ "order": 5,
+ "type": "boolean"
+ },
+ "custom_insights": {
+ "title": "Custom Insights",
+ "description": "A list which contains ad statistics entries, each entry must have a name and can contains fields, breakdowns or action_breakdowns. Click on \"add\" to fill this field.",
+ "order": 6,
+ "type": "array",
+ "items": {
+ "title": "InsightConfig",
+ "description": "Config for custom insights",
+ "type": "object",
+ "properties": {
+ "name": {
+ "title": "Name",
+ "description": "The name value of insight",
+ "type": "string"
+ },
+ "level": {
+ "title": "Level",
+ "description": "Chosen level for API",
+ "default": "ad",
+ "enum": [ "ad", "adset", "campaign", "account" ],
+ "type": "string"
+ },
+ "fields": {
+ "title": "Fields",
+ "description": "A list of chosen fields for fields parameter",
+ "default": [ ],
+ "type": "array",
+ "items": {
+ "title": "ValidEnums",
+ "description": "Generic enumeration.\n\nDerive from this class to define new enumerations.",
+ "enum": [ "account_currency", "account_id", "account_name", "action_values", "actions", "ad_bid_value", "ad_click_actions", "ad_id", "ad_impression_actions", "ad_name", "adset_bid_value", "adset_end", "adset_id", "adset_name", "adset_start", "age_targeting", "attribution_setting", "auction_bid", "auction_competitiveness", "auction_max_competitor_bid", "buying_type", "campaign_id", "campaign_name", "canvas_avg_view_percent", "canvas_avg_view_time", "catalog_segment_actions", "catalog_segment_value", "catalog_segment_value_mobile_purchase_roas", "catalog_segment_value_omni_purchase_roas", "catalog_segment_value_website_purchase_roas", "clicks", "conversion_rate_ranking", "conversion_values", "conversions", "converted_product_quantity", "converted_product_value", "cost_per_15_sec_video_view", "cost_per_2_sec_continuous_video_view", "cost_per_action_type", "cost_per_ad_click", "cost_per_conversion", "cost_per_dda_countby_convs", "cost_per_estimated_ad_recallers", "cost_per_inline_link_click", "cost_per_inline_post_engagement", "cost_per_one_thousand_ad_impression", "cost_per_outbound_click", "cost_per_thruplay", "cost_per_unique_action_type", "cost_per_unique_click", "cost_per_unique_conversion", "cost_per_unique_inline_link_click", "cost_per_unique_outbound_click", "cpc", "cpm", "cpp", "created_time", "ctr", "date_start", "date_stop", "dda_countby_convs", "dda_results", "engagement_rate_ranking", "estimated_ad_recall_rate", "estimated_ad_recall_rate_lower_bound", "estimated_ad_recall_rate_upper_bound", "estimated_ad_recallers", "estimated_ad_recallers_lower_bound", "estimated_ad_recallers_upper_bound", "frequency", "full_view_impressions", "full_view_reach", "gender_targeting", "impressions", "inline_link_click_ctr", "inline_link_clicks", "inline_post_engagement", "instant_experience_clicks_to_open", "instant_experience_clicks_to_start", "instant_experience_outbound_clicks", "interactive_component_tap", "labels", "location", "mobile_app_purchase_roas", "objective", "optimization_goal", "outbound_clicks", "outbound_clicks_ctr", "place_page_name", "purchase_roas", "qualifying_question_qualify_answer_rate", "quality_ranking", "quality_score_ectr", "quality_score_ecvr", "quality_score_organic", "reach", "social_spend", "spend", "total_postbacks", "total_postbacks_detailed", "unique_actions", "unique_clicks", "unique_conversions", "unique_ctr", "unique_inline_link_click_ctr", "unique_inline_link_clicks", "unique_link_clicks_ctr", "unique_outbound_clicks", "unique_outbound_clicks_ctr", "unique_video_continuous_2_sec_watched_actions", "unique_video_view_15_sec", "updated_time", "video_15_sec_watched_actions", "video_30_sec_watched_actions", "video_avg_time_watched_actions", "video_continuous_2_sec_watched_actions", "video_p100_watched_actions", "video_p25_watched_actions", "video_p50_watched_actions", "video_p75_watched_actions", "video_p95_watched_actions", "video_play_actions", "video_play_curve_actions", "video_play_retention_0_to_15s_actions", "video_play_retention_20_to_60s_actions", "video_play_retention_graph_actions", "video_thruplay_watched_actions", "video_time_watched_actions", "website_ctr", "website_purchase_roas", "wish_bid" ]
+ }
+ },
+ "breakdowns": {
+ "title": "Breakdowns",
+ "description": "A list of chosen breakdowns for breakdowns",
+ "default": [ ],
+ "type": "array",
+ "items": {
+ "title": "ValidBreakdowns",
+ "description": "Generic enumeration.\n\nDerive from this class to define new enumerations.",
+ "enum": [ "ad_format_asset", "age", "app_id", "body_asset", "call_to_action_asset", "country", "description_asset", "device_platform", "dma", "frequency_value", "gender", "hourly_stats_aggregated_by_advertiser_time_zone", "hourly_stats_aggregated_by_audience_time_zone", "image_asset", "impression_device", "is_conversion_id_modeled", "link_url_asset", "mmm", "place_page_id", "platform_position", "product_id", "publisher_platform", "region", "skan_campaign_id", "skan_conversion_id", "title_asset", "video_asset" ]
+ }
+ },
+ "action_breakdowns": {
+ "title": "Action Breakdowns",
+ "description": "A list of chosen action_breakdowns for action_breakdowns",
+ "default": [ ],
+ "type": "array",
+ "items": {
+ "title": "ValidActionBreakdowns",
+ "description": "Generic enumeration.\n\nDerive from this class to define new enumerations.",
+ "enum": [ "action_canvas_component_name", "action_carousel_card_id", "action_carousel_card_name", "action_destination", "action_device", "action_reaction", "action_target_id", "action_type", "action_video_sound", "action_video_type" ]
+ }
+ },
+ "time_increment": {
+ "title": "Time Increment",
+ "description": "Time window in days by which to aggregate statistics. The sync will be chunked into N day intervals, where N is the number of days you specified. For example, if you set this value to 7, then all statistics will be reported as 7-day aggregates by starting from the start_date. If the start and end dates are October 1st and October 30th, then the connector will output 5 records: 01 - 06, 07 - 13, 14 - 20, 21 - 27, and 28 - 30 (3 days only).",
+ "default": 1,
+ "exclusiveMaximum": 90,
+ "exclusiveMinimum": 0,
+ "type": "integer"
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for this stream, in the format YYYY-MM-DDT00:00:00Z.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2017-01-25T00:00:00Z" ],
+ "type": "string",
+ "format": "date-time"
+ },
+ "end_date": {
+ "title": "End Date",
+ "description": "The date until which you'd like to replicate data for this stream, in the format YYYY-MM-DDT00:00:00Z. All data generated between the start date and this end date will be replicated. Not setting this option will result in always syncing the latest data.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2017-01-26T00:00:00Z" ],
+ "type": "string",
+ "format": "date-time"
+ },
+ "insights_lookback_window": {
+ "title": "Custom Insights Lookback Window",
+ "description": "The attribution window",
+ "default": 28,
+ "maximum": 28,
+ "mininum": 1,
+ "exclusiveMinimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [ "name" ]
+ }
+ },
+ "page_size": {
+ "title": "Page Size of Requests",
+ "description": "Page size used when sending requests to Facebook API to specify number of records per page when response has pagination. Most users do not need to set this field unless they specifically need to tune the connector to address specific issues or use cases.",
+ "default": 100,
+ "order": 7,
+ "exclusiveMinimum": 0,
+ "type": "integer"
+ },
+ "insights_lookback_window": {
+ "title": "Insights Lookback Window",
+ "description": "The attribution window. Facebook freezes insight data 28 days after it was generated, which means that all data from the past 28 days may have changed since we last emitted it, so you can retrieve refreshed insights from the past by setting this parameter. If you set a custom lookback window value in Facebook account, please provide the same value here.",
+ "default": 28,
+ "order": 8,
+ "maximum": 28,
+ "mininum": 1,
+ "exclusiveMinimum": 0,
+ "type": "integer"
+ },
+ "max_batch_size": {
+ "title": "Maximum size of Batched Requests",
+ "description": "Maximum batch size used when sending batch requests to Facebook API. Most users do not need to set this field unless they specifically need to tune the connector to address specific issues or use cases.",
+ "default": 50,
+ "order": 9,
+ "exclusiveMinimum": 0,
+ "type": "integer"
+ },
+ "action_breakdowns_allow_empty": {
+ "title": "Action Breakdowns Allow Empty",
+ "description": "Allows action_breakdowns to be an empty list",
+ "default": true,
+ "airbyte_hidden": true,
+ "type": "boolean"
+ }
+ },
+ "required": [ "account_id", "start_date", "access_token" ]
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "append" ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ ],
+ "oauthFlowInitParameters": [ ],
+ "oauthFlowOutputParameters": [ [ "access_token" ] ]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "graph.facebook.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "010eb12f-837b-4685-892d-0a39f76a98f5",
+ "name": "Facebook Pages",
+ "dockerRepository": "airbyte/source-facebook-pages",
+ "dockerImageTag": "0.2.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/facebook-pages",
+ "icon": "facebook.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/facebook-pages",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Facebook Pages Spec",
+ "type": "object",
+ "required": [ "access_token", "page_id" ],
+ "additionalProperties": true,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "title": "Page Access Token",
+ "description": "Facebook Page Access Token",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "page_id": {
+ "type": "string",
+ "title": "Page ID",
+ "description": "Page ID",
+ "order": 1
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "graph.facebook.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "dfd88b22-b603-4c3d-aad7-3701784586b1",
+ "name": "Sample Data (Faker)",
+ "dockerRepository": "airbyte/source-faker",
+ "dockerImageTag": "2.0.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/faker",
+ "icon": "faker.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/faker",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Faker Source Spec",
+ "type": "object",
+ "required": [ "count" ],
+ "additionalProperties": true,
+ "properties": {
+ "count": {
+ "title": "Count",
+ "description": "How many users should be generated in total. This setting does not apply to the purchases or products stream.",
+ "type": "integer",
+ "minimum": 1,
+ "default": 1000,
+ "order": 0
+ },
+ "seed": {
+ "title": "Seed",
+ "description": "Manually control the faker random seed to return the same values on subsequent runs (leave -1 for random)",
+ "type": "integer",
+ "default": -1,
+ "order": 1
+ },
+ "records_per_sync": {
+ "title": "Records Per Sync",
+ "description": "How many fake records will be returned for each sync, for each stream? By default, it will take 2 syncs to create the requested 1000 records.",
+ "type": "integer",
+ "minimum": 1,
+ "default": 500,
+ "order": 2
+ },
+ "records_per_slice": {
+ "title": "Records Per Stream Slice",
+ "description": "How many fake records will be in each page (stream slice), before a state message is emitted?",
+ "type": "integer",
+ "minimum": 1,
+ "default": 1000,
+ "order": 3
+ },
+ "parallelism": {
+ "title": "Parallelism",
+ "description": "How many parallel workers should we use to generate fake data? Choose a value equal to the number of CPUs you will allocate to this source.",
+ "type": "integer",
+ "minimum": 1,
+ "default": 4,
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "resourceRequirements": {
+ "jobSpecific": [ {
+ "jobType": "sync",
+ "resourceRequirements": {
+ "cpu_request": "1.0",
+ "cpu_limit": "4.0"
+ }
+ } ]
+ },
+ "allowedHosts": {
+ "hosts": [ ]
+ },
+ "suggestedStreams": {
+ "streams": [ "users", "products", "purchases" ]
+ }
+ }, {
+ "sourceDefinitionId": "eb3e9c1c-0467-4eb7-a172-5265e04ccd0a",
+ "name": "Fastbill",
+ "dockerRepository": "airbyte/source-fastbill",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/fastbill",
+ "icon": "fastbill.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/fastbill",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Fastbill Spec",
+ "type": "object",
+ "required": [ "username", "api_key" ],
+ "properties": {
+ "username": {
+ "title": "Username",
+ "type": "string",
+ "description": "Username for Fastbill account"
+ },
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Fastbill API key",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "3825db3e-c94b-42ac-bd53-b5a9507ace2b",
+ "name": "Fauna",
+ "dockerRepository": "airbyte/source-fauna",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/fauna",
+ "icon": "fauna.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://github.com/fauna/airbyte/blob/source-fauna/docs/integrations/sources/fauna.md",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Fauna Spec",
+ "type": "object",
+ "required": [ "domain", "port", "scheme", "secret" ],
+ "additionalProperties": true,
+ "properties": {
+ "domain": {
+ "order": 0,
+ "type": "string",
+ "title": "Domain",
+ "description": "Domain of Fauna to query. Defaults db.fauna.com. See the docs.",
+ "default": "db.fauna.com"
+ },
+ "port": {
+ "order": 1,
+ "type": "integer",
+ "title": "Port",
+ "description": "Endpoint port.",
+ "default": 443
+ },
+ "scheme": {
+ "order": 2,
+ "type": "string",
+ "title": "Scheme",
+ "description": "URL scheme.",
+ "default": "https"
+ },
+ "secret": {
+ "order": 3,
+ "type": "string",
+ "title": "Fauna Secret",
+ "description": "Fauna secret, used when authenticating with the database.",
+ "airbyte_secret": true
+ },
+ "collection": {
+ "order": 5,
+ "type": "object",
+ "title": "Collection",
+ "description": "Settings for the Fauna Collection.",
+ "required": [ "page_size", "deletions" ],
+ "properties": {
+ "page_size": {
+ "order": 4,
+ "type": "integer",
+ "title": "Page Size",
+ "default": 64,
+ "description": "The page size used when reading documents from the database. The larger the page size, the faster the connector processes documents. However, if a page is too large, the connector may fail.
\nChoose your page size based on how large the documents are.
\nSee the docs."
+ },
+ "deletions": {
+ "order": 5,
+ "type": "object",
+ "title": "Deletion Mode",
+ "description": "This only applies to incremental syncs.
\nEnabling deletion mode informs your destination of deleted documents.
\nDisabled - Leave this feature disabled, and ignore deleted documents.
\nEnabled - Enables this feature. When a document is deleted, the connector exports a record with a \"deleted at\" column containing the time that the document was deleted.",
+ "oneOf": [ {
+ "title": "Disabled",
+ "type": "object",
+ "order": 0,
+ "required": [ "deletion_mode" ],
+ "properties": {
+ "deletion_mode": {
+ "type": "string",
+ "const": "ignore"
+ }
+ }
+ }, {
+ "title": "Enabled",
+ "type": "object",
+ "order": 1,
+ "required": [ "deletion_mode", "column" ],
+ "properties": {
+ "deletion_mode": {
+ "type": "string",
+ "const": "deleted_field"
+ },
+ "column": {
+ "type": "string",
+ "title": "Deleted At Column",
+ "description": "Name of the \"deleted at\" column.",
+ "default": "deleted_at"
+ }
+ }
+ } ]
+ }
+ }
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "778daa7c-feaf-4db6-96f3-70fd645acc77",
+ "name": "File (CSV, JSON, Excel, Feather, Parquet)",
+ "dockerRepository": "airbyte/source-file",
+ "dockerImageTag": "0.2.38",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/file",
+ "icon": "file.svg",
+ "sourceType": "file",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/file",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "File Source Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "required": [ "dataset_name", "format", "url", "provider" ],
+ "properties": {
+ "dataset_name": {
+ "type": "string",
+ "title": "Dataset Name",
+ "description": "The Name of the final table to replicate this file into (should include letters, numbers dash and underscores only)."
+ },
+ "format": {
+ "type": "string",
+ "enum": [ "csv", "json", "jsonl", "excel", "excel_binary", "feather", "parquet", "yaml" ],
+ "default": "csv",
+ "title": "File Format",
+ "description": "The Format of the file which should be replicated (Warning: some formats may be experimental, please refer to the docs)."
+ },
+ "reader_options": {
+ "type": "string",
+ "title": "Reader Options",
+ "description": "This should be a string in JSON format. It depends on the chosen file format to provide additional options and tune its behavior.",
+ "examples": [ "{}", "{\"sep\": \" \"}", "{\"sep\": \"\t\", \"header\": 0, \"names\": [\"column1\", \"column2\"] }" ]
+ },
+ "url": {
+ "type": "string",
+ "title": "URL",
+ "description": "The URL path to access the file which should be replicated.",
+ "examples": [ "https://storage.googleapis.com/covid19-open-data/v2/latest/epidemiology.csv", "gs://my-google-bucket/data.csv", "s3://gdelt-open-data/events/20190914.export.csv" ]
+ },
+ "provider": {
+ "type": "object",
+ "title": "Storage Provider",
+ "description": "The storage Provider or Location of the file(s) which should be replicated.",
+ "default": "Public Web",
+ "oneOf": [ {
+ "title": "HTTPS: Public Web",
+ "required": [ "storage" ],
+ "properties": {
+ "storage": {
+ "type": "string",
+ "const": "HTTPS"
+ },
+ "user_agent": {
+ "type": "boolean",
+ "title": "User-Agent",
+ "default": false,
+ "description": "Add User-Agent to request"
+ }
+ }
+ }, {
+ "title": "GCS: Google Cloud Storage",
+ "required": [ "storage" ],
+ "properties": {
+ "storage": {
+ "type": "string",
+ "title": "Storage",
+ "const": "GCS"
+ },
+ "service_account_json": {
+ "type": "string",
+ "title": "Service Account JSON",
+ "description": "In order to access private Buckets stored on Google Cloud, this connector would need a service account json credentials with the proper permissions as described here. Please generate the credentials.json file and copy/paste its content to this field (expecting JSON formats). If accessing publicly available data, this field is not necessary."
+ }
+ }
+ }, {
+ "title": "S3: Amazon Web Services",
+ "required": [ "storage" ],
+ "properties": {
+ "storage": {
+ "type": "string",
+ "title": "Storage",
+ "const": "S3"
+ },
+ "aws_access_key_id": {
+ "type": "string",
+ "title": "AWS Access Key ID",
+ "description": "In order to access private Buckets stored on AWS S3, this connector would need credentials with the proper permissions. If accessing publicly available data, this field is not necessary."
+ },
+ "aws_secret_access_key": {
+ "type": "string",
+ "title": "AWS Secret Access Key",
+ "description": "In order to access private Buckets stored on AWS S3, this connector would need credentials with the proper permissions. If accessing publicly available data, this field is not necessary.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "AzBlob: Azure Blob Storage",
+ "required": [ "storage", "storage_account" ],
+ "properties": {
+ "storage": {
+ "type": "string",
+ "title": "Storage",
+ "const": "AzBlob"
+ },
+ "storage_account": {
+ "type": "string",
+ "title": "Storage Account",
+ "description": "The globally unique name of the storage account that the desired blob sits within. See here for more details."
+ },
+ "sas_token": {
+ "type": "string",
+ "title": "SAS Token",
+ "description": "To access Azure Blob Storage, this connector would need credentials with the proper permissions. One option is a SAS (Shared Access Signature) token. If accessing publicly available data, this field is not necessary.",
+ "airbyte_secret": true
+ },
+ "shared_key": {
+ "type": "string",
+ "title": "Shared Key",
+ "description": "To access Azure Blob Storage, this connector would need credentials with the proper permissions. One option is a storage account shared key (aka account key or access key). If accessing publicly available data, this field is not necessary.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "SSH: Secure Shell",
+ "required": [ "storage", "user", "host" ],
+ "properties": {
+ "storage": {
+ "type": "string",
+ "title": "Storage",
+ "const": "SSH"
+ },
+ "user": {
+ "type": "string",
+ "title": "User",
+ "description": ""
+ },
+ "password": {
+ "type": "string",
+ "title": "Password",
+ "description": "",
+ "airbyte_secret": true
+ },
+ "host": {
+ "type": "string",
+ "title": "Host",
+ "description": ""
+ },
+ "port": {
+ "type": "string",
+ "title": "Port",
+ "default": "22",
+ "description": ""
+ }
+ }
+ }, {
+ "title": "SCP: Secure copy protocol",
+ "required": [ "storage", "user", "host" ],
+ "properties": {
+ "storage": {
+ "type": "string",
+ "title": "Storage",
+ "const": "SCP"
+ },
+ "user": {
+ "type": "string",
+ "title": "User",
+ "description": ""
+ },
+ "password": {
+ "type": "string",
+ "title": "Password",
+ "description": "",
+ "airbyte_secret": true
+ },
+ "host": {
+ "type": "string",
+ "title": "Host",
+ "description": ""
+ },
+ "port": {
+ "type": "string",
+ "title": "Port",
+ "default": "22",
+ "description": ""
+ }
+ }
+ }, {
+ "title": "SFTP: Secure File Transfer Protocol",
+ "required": [ "storage", "user", "host" ],
+ "properties": {
+ "storage": {
+ "type": "string",
+ "title": "Storage",
+ "const": "SFTP"
+ },
+ "user": {
+ "type": "string",
+ "title": "User",
+ "description": ""
+ },
+ "password": {
+ "type": "string",
+ "title": "Password",
+ "description": "",
+ "airbyte_secret": true
+ },
+ "host": {
+ "type": "string",
+ "title": "Host",
+ "description": ""
+ },
+ "port": {
+ "type": "string",
+ "title": "Port",
+ "default": "22",
+ "description": ""
+ }
+ }
+ }, {
+ "title": "Local Filesystem (limited)",
+ "required": [ "storage" ],
+ "properties": {
+ "storage": {
+ "type": "string",
+ "title": "Storage",
+ "description": "WARNING: Note that the local storage URL available for reading must start with the local mount \"/local/\" at the moment until we implement more advanced docker mounting options.",
+ "const": "local"
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "*" ]
+ }
+ }, {
+ "sourceDefinitionId": "acb5f973-a565-441e-992f-4946f3e65662",
+ "name": "Firebase Realtime Database",
+ "dockerRepository": "airbyte/source-firebase-realtime-database",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/firebase-realtime-database",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/firebase-realtime-database",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Firebase Realtime Database Spec",
+ "type": "object",
+ "required": [ "database_name", "google_application_credentials" ],
+ "properties": {
+ "database_name": {
+ "title": "Database Name",
+ "type": "string",
+ "description": "Database name (This will be part of the url pointing to the database, https://.firebaseio.com/)"
+ },
+ "google_application_credentials": {
+ "title": "Service Account Key JSON",
+ "type": "string",
+ "description": "Cert credentials in JSON format of Service Account with Firebase Realtime Database Viewer role. (see, https://firebase.google.com/docs/projects/iam/roles-predefined-product#realtime-database)",
+ "airbyte_secret": true
+ },
+ "path": {
+ "title": "Node Path",
+ "type": "string",
+ "description": "Path to a node in the Firebase realtime database"
+ },
+ "buffer_size": {
+ "title": "Buffer Size",
+ "type": "number",
+ "description": "Number of records to fetch at once"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "supported_sync_modes": [ "full_refresh" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "*" ]
+ }
+ }, {
+ "sourceDefinitionId": "8a5d48f6-03bb-4038-a942-a8d3f175cca3",
+ "name": "Freshcaller",
+ "dockerRepository": "airbyte/source-freshcaller",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshcaller",
+ "icon": "freshcaller.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshcaller",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Freshcaller Spec",
+ "type": "object",
+ "required": [ "domain", "api_key", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "domain": {
+ "type": "string",
+ "title": "Domain for Freshcaller account",
+ "description": "Used to construct Base URL for the Freshcaller APIs",
+ "examples": [ "snaptravel" ]
+ },
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Freshcaller API Key. See the docs for more information on how to obtain this key.",
+ "airbyte_secret": true
+ },
+ "requests_per_minute": {
+ "title": "Requests per minute",
+ "type": "integer",
+ "description": "The number of requests per minute that this source allowed to use. There is a rate limit of 50 requests per minute per app per account."
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time. Any data created after this date will be replicated.",
+ "format": "date-time",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2022-01-01T12:00:00Z" ]
+ },
+ "sync_lag_minutes": {
+ "title": "Lag in minutes for each sync",
+ "type": "integer",
+ "description": "Lag in minutes for each sync, i.e., at time T, data for the time range [prev_sync_time, T-30] will be fetched"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false
+ }, {
+ "sourceDefinitionId": "f95337f1-2ad1-4baf-922f-2ca9152de630",
+ "name": "Flexport",
+ "dockerRepository": "airbyte/source-flexport",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/flexport",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/flexport",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Flexport Spec",
+ "additionalProperties": true,
+ "type": "object",
+ "required": [ "api_key", "start_date" ],
+ "properties": {
+ "api_key": {
+ "order": 0,
+ "type": "string",
+ "title": "API Key",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "order": 1,
+ "title": "Start Date",
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "ec4b9503-13cb-48ab-a4ab-6ade4be46567",
+ "name": "Freshdesk",
+ "dockerRepository": "airbyte/source-freshdesk",
+ "dockerImageTag": "3.0.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshdesk",
+ "icon": "freshdesk.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshdesk",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Freshdesk Spec",
+ "type": "object",
+ "required": [ "domain", "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "domain": {
+ "type": "string",
+ "description": "Freshdesk domain",
+ "title": "Domain",
+ "examples": [ "myaccount.freshdesk.com" ],
+ "pattern": "^[a-zA-Z0-9._-]*\\.freshdesk\\.com$"
+ },
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Freshdesk API Key. See the docs for more information on how to obtain this key.",
+ "airbyte_secret": true
+ },
+ "requests_per_minute": {
+ "title": "Requests per minute",
+ "type": "integer",
+ "description": "The number of requests per minute that this source allowed to use. There is a rate limit of 50 requests per minute per app per account."
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "UTC date and time. Any data created after this date will be replicated. If this parameter is not set, all data will be replicated.",
+ "format": "date-time",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2020-12-01T00:00:00Z" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "*.freshdesk.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "eca08d79-7b92-4065-b7f3-79c14836ebe7",
+ "name": "Freshsales",
+ "dockerRepository": "airbyte/source-freshsales",
+ "dockerImageTag": "0.1.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshsales",
+ "icon": "freshsales.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshsales",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Freshsales Spec",
+ "type": "object",
+ "required": [ "domain_name", "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "domain_name": {
+ "type": "string",
+ "title": "Domain Name",
+ "description": "The Name of your Freshsales domain",
+ "examples": [ "mydomain.myfreshworks.com" ]
+ },
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Freshsales API Key. See here. The key is case sensitive.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "*.myfreshworks.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "9bb85338-ea95-4c93-b267-6be89125b267",
+ "name": "Freshservice",
+ "dockerRepository": "airbyte/source-freshservice",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshservice",
+ "icon": "freshservice.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshservice",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Freshservice Spec",
+ "type": "object",
+ "required": [ "domain_name", "api_key", "start_date" ],
+ "additionalProperties": false,
+ "properties": {
+ "domain_name": {
+ "type": "string",
+ "title": "Domain Name",
+ "description": "The name of your Freshservice domain",
+ "examples": [ "mydomain.freshservice.com" ]
+ },
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Freshservice API Key. See here. The key is case sensitive.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "UTC date and time in the format 2020-10-01T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": [ "2020-10-01T00:00:00Z" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "2a8c41ae-8c23-4be0-a73f-2ab10ca1a820",
+ "name": "GCS",
+ "dockerRepository": "airbyte/source-gcs",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gcs",
+ "icon": "gcs.svg",
+ "sourceType": "file",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Gcs Spec",
+ "type": "object",
+ "required": [ "gcs_bucket", "gcs_path", "service_account" ],
+ "properties": {
+ "gcs_bucket": {
+ "type": "string",
+ "title": "GCS bucket",
+ "description": "GCS bucket name"
+ },
+ "gcs_path": {
+ "type": "string",
+ "title": "GCS Path",
+ "description": "GCS path to data"
+ },
+ "service_account": {
+ "type": "string",
+ "title": "Service Account Information.",
+ "description": "Enter your Google Cloud service account key in JSON format",
+ "airbyte_secret": true,
+ "examples": [ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false
+ }, {
+ "sourceDefinitionId": "5ea4459a-8f1a-452a-830f-a65c38cc438d",
+ "name": "Genesys",
+ "dockerRepository": "airbyte/source-genesys",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/genesys",
+ "icon": "genesys.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/genesys",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Genesys Connector Configuration",
+ "type": "object",
+ "required": [ "start_date", "tenant_endpoint", "client_id", "client_secret" ],
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "Your OAuth user Client ID",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "Your OAuth user Client Secret",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "tenant_endpoint": {
+ "title": "Tenant Endpoint Location",
+ "type": "string",
+ "description": "Please choose the right endpoint where your Tenant is located. More info by this Link",
+ "enum": [ "Americas (US East)", "Americas (US East 2)", "Americas (US West)", "Americas (Canada)", "Americas (São Paulo)", "EMEA (Frankfurt)", "EMEA (Dublin)", "EMEA (London)", "Asia Pacific (Mumbai)", "Asia Pacific (Seoul)", "Asia Pacific (Sydney)" ],
+ "order": 2
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "Start Date in format: YYYY-MM-DD",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false
+ }, {
+ "sourceDefinitionId": "e1a3866b-d3b2-43b6-b6d7-8c1ee4d7f53f",
+ "name": "GetLago",
+ "dockerRepository": "airbyte/source-getlago",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/getlago",
+ "icon": "getlago.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/getlago",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Getlago Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Your API Key. See here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "6cbea164-3237-433b-9abb-36d384ee4cbf",
+ "name": "Gridly",
+ "dockerRepository": "airbyte/source-gridly",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gridly",
+ "icon": "gridly.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gridly",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Gridly Spec",
+ "type": "object",
+ "required": [ "api_key", "grid_id" ],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "airbyte_secret": true
+ },
+ "grid_id": {
+ "type": "string",
+ "title": "Grid ID",
+ "description": "ID of a grid, or can be ID of a branch"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "ef69ef6e-aa7f-4af1-a01d-ef775033524e",
+ "name": "GitHub",
+ "dockerRepository": "airbyte/source-github",
+ "dockerImageTag": "0.4.7",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/github",
+ "icon": "github.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/github",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "GitHub Source Spec",
+ "type": "object",
+ "required": [ "start_date", "repository" ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authentication",
+ "description": "Choose how to authenticate to GitHub",
+ "type": "object",
+ "order": 0,
+ "group": "auth",
+ "oneOf": [ {
+ "type": "object",
+ "title": "OAuth",
+ "required": [ "access_token" ],
+ "properties": {
+ "option_title": {
+ "type": "string",
+ "const": "OAuth Credentials",
+ "order": 0
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "OAuth access token",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "Personal Access Token",
+ "required": [ "personal_access_token" ],
+ "properties": {
+ "option_title": {
+ "type": "string",
+ "const": "PAT Credentials",
+ "order": 0
+ },
+ "personal_access_token": {
+ "type": "string",
+ "title": "Personal Access Tokens",
+ "description": "Log into GitHub and then generate a personal access token. To load balance your API quota consumption across multiple API tokens, input multiple tokens separated with \",\"",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "description": "The date from which you'd like to replicate data from GitHub in the format YYYY-MM-DDT00:00:00Z. For the streams which support this configuration, only data generated on or after the start date will be replicated. This field doesn't apply to all streams, see the docs for more info",
+ "examples": [ "2021-03-01T00:00:00Z" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "order": 1,
+ "format": "date-time"
+ },
+ "repository": {
+ "type": "string",
+ "examples": [ "airbytehq/airbyte airbytehq/another-repo", "airbytehq/*", "airbytehq/airbyte" ],
+ "title": "GitHub Repositories",
+ "description": "Space-delimited list of GitHub organizations/repositories, e.g. `airbytehq/airbyte` for single repository, `airbytehq/*` for get all repositories from organization and `airbytehq/airbyte airbytehq/another-repo` for multiple repositories.",
+ "order": 2,
+ "pattern_descriptor": "org/repo1 org/repo2"
+ },
+ "branch": {
+ "type": "string",
+ "title": "Branch",
+ "examples": [ "airbytehq/airbyte/master airbytehq/airbyte/my-branch" ],
+ "description": "Space-delimited list of GitHub repository branches to pull commits for, e.g. `airbytehq/airbyte/master`. If no branches are specified for a repository, the default branch will be pulled.",
+ "order": 3,
+ "pattern_descriptor": "org/repo/branch1 org/repo/branch2"
+ },
+ "page_size_for_large_streams": {
+ "type": "integer",
+ "title": "Page size for large streams",
+ "minimum": 1,
+ "maximum": 100,
+ "default": 10,
+ "description": "The Github connector contains several streams with a large amount of data. The page size of such streams depends on the size of your repository. We recommended that you specify values between 10 and 30.",
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "option_title" ],
+ "predicate_value": "OAuth Credentials",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "access_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "api.github.com" ]
+ },
+ "suggestedStreams": {
+ "streams": [ "branches", "comments", "issues", "organizations", "pull_requests", "repositories", "stargazers", "tags", "teams", "users" ]
+ },
+ "maxSecondsBetweenMessages": 5400
+ }, {
+ "sourceDefinitionId": "5e6175e5-68e1-4c17-bff9-56103bbb0d80",
+ "name": "Gitlab",
+ "dockerRepository": "airbyte/source-gitlab",
+ "dockerImageTag": "1.0.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gitlab",
+ "icon": "gitlab.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gitlab",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Gitlab Spec",
+ "type": "object",
+ "required": [ "api_url", "start_date", "credentials" ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "order": 0,
+ "oneOf": [ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [ "client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "oauth2.0"
+ },
+ "client_id": {
+ "type": "string",
+ "description": "The API ID of the Gitlab developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "description": "The API Secret the Gitlab developer application.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "description": "The date-time when the access token should be refreshed.",
+ "format": "date-time"
+ },
+ "refresh_token": {
+ "type": "string",
+ "description": "The key to refresh the expired access_token.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "Private Token",
+ "type": "object",
+ "required": [ "access_token" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "access_token"
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Private Token",
+ "description": "Log into your Gitlab account and then generate a personal Access Token.",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ },
+ "api_url": {
+ "type": "string",
+ "examples": [ "gitlab.com" ],
+ "title": "API URL",
+ "default": "gitlab.com",
+ "description": "Please enter your basic URL from GitLab instance.",
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for GitLab API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "examples": [ "2021-03-01T00:00:00Z" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "order": 2,
+ "format": "date-time"
+ },
+ "groups": {
+ "type": "string",
+ "examples": [ "airbyte.io" ],
+ "title": "Groups",
+ "description": "Space-delimited list of groups. e.g. airbyte.io.",
+ "order": 3
+ },
+ "projects": {
+ "type": "string",
+ "title": "Projects",
+ "examples": [ "airbyte.io/documentation" ],
+ "description": "Space-delimited list of projects. e.g. airbyte.io/documentation meltano/tap-gitlab.",
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "auth_type" ],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "properties": {
+ "domain": {
+ "type": "string",
+ "path_in_connector_config": [ "api_url" ]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "access_token" ]
+ },
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "refresh_token" ]
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "format": "date-time",
+ "path_in_connector_config": [ "credentials", "token_expiry_date" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "*" ]
+ }
+ }, {
+ "sourceDefinitionId": "cf8ff320-6272-4faa-89e6-4402dc17e5d5",
+ "name": "Glassfrog",
+ "dockerRepository": "airbyte/source-glassfrog",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/glassfrog",
+ "icon": "glassfrog.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/glassfrog",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Glassfrog Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API key provided by Glassfrog",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "ce38aec4-5a77-439a-be29-9ca44fd4e811",
+ "name": "GNews",
+ "dockerRepository": "airbyte/source-gnews",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gnews",
+ "icon": "gnews.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gnews",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Gnews Spec",
+ "type": "object",
+ "required": [ "api_key", "query" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "API Key",
+ "order": 0,
+ "airbyte_secret": true
+ },
+ "query": {
+ "type": "string",
+ "order": 1,
+ "title": "Query",
+ "description": "This parameter allows you to specify your search keywords to find the news articles you are looking for. The keywords will be used to return the most relevant articles. It is possible to use logical operators with keywords. - Phrase Search Operator: This operator allows you to make an exact search. Keywords surrounded by \n quotation marks are used to search for articles with the exact same keyword sequence. \n For example the query: \"Apple iPhone\" will return articles matching at least once this sequence of keywords.\n- Logical AND Operator: This operator allows you to make sure that several keywords are all used in the article\n search. By default the space character acts as an AND operator, it is possible to replace the space character \n by AND to obtain the same result. For example the query: Apple Microsoft is equivalent to Apple AND Microsoft\n- Logical OR Operator: This operator allows you to retrieve articles matching the keyword a or the keyword b.\n It is important to note that this operator has a higher precedence than the AND operator. For example the \n query: Apple OR Microsoft will return all articles matching the keyword Apple as well as all articles matching \n the keyword Microsoft\n- Logical NOT Operator: This operator allows you to remove from the results the articles corresponding to the\n specified keywords. To use it, you need to add NOT in front of each word or phrase surrounded by quotes.\n For example the query: Apple NOT iPhone will return all articles matching the keyword Apple but not the keyword\n iPhone",
+ "examples": [ "Microsoft Windows 10", "Apple OR Microsoft", "Apple AND NOT iPhone", "(Windows 7) AND (Windows 10)", "Intel AND (i7 OR i9)" ]
+ },
+ "language": {
+ "type": "string",
+ "title": "Language",
+ "decription": "This parameter allows you to specify the language of the news articles returned by the API. You have to set as value the 2 letters code of the language you want to filter.",
+ "order": 2,
+ "enum": [ "ar", "zh", "nl", "en", "fr", "de", "el", "he", "hi", "it", "ja", "ml", "mr", "no", "pt", "ro", "ru", "es", "sv", "ta", "te", "uk" ]
+ },
+ "country": {
+ "type": "string",
+ "title": "Country",
+ "description": "This parameter allows you to specify the country where the news articles returned by the API were published, the contents of the articles are not necessarily related to the specified country. You have to set as value the 2 letters code of the country you want to filter.",
+ "order": 3,
+ "enum": [ "au", "br", "ca", "cn", "eg", "fr", "de", "gr", "hk", "in", "ie", "il", "it", "jp", "nl", "no", "pk", "pe", "ph", "pt", "ro", "ru", "sg", "es", "se", "ch", "tw", "ua", "gb", "us" ]
+ },
+ "in": {
+ "type": "array",
+ "title": "In",
+ "description": "This parameter allows you to choose in which attributes the keywords are searched. The attributes that can be set are title, description and content. It is possible to combine several attributes.",
+ "order": 4,
+ "items": {
+ "type": "string",
+ "enum": [ "title", "description", "content" ]
+ }
+ },
+ "nullable": {
+ "type": "array",
+ "title": "Nullable",
+ "description": "This parameter allows you to specify the attributes that you allow to return null values. The attributes that can be set are title, description and content. It is possible to combine several attributes",
+ "order": 5,
+ "items": {
+ "type": "string",
+ "enum": [ "title", "description", "content" ]
+ }
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "This parameter allows you to filter the articles that have a publication date greater than or equal to the specified value. The date must respect the following format: YYYY-MM-DD hh:mm:ss (in UTC)",
+ "order": 6,
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$",
+ "examples": [ "2022-08-21 16:27:09" ]
+ },
+ "end_date": {
+ "type": "string",
+ "title": "End Date",
+ "description": "This parameter allows you to filter the articles that have a publication date smaller than or equal to the specified value. The date must respect the following format: YYYY-MM-DD hh:mm:ss (in UTC)",
+ "order": 6,
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$",
+ "examples": [ "2022-08-21 16:27:09" ]
+ },
+ "sortby": {
+ "type": "string",
+ "title": "Sort By",
+ "description": "This parameter allows you to choose with which type of sorting the articles should be returned. Two values are possible:\n - publishedAt = sort by publication date, the articles with the most recent publication date are returned first\n - relevance = sort by best match to keywords, the articles with the best match are returned first",
+ "order": 7,
+ "enum": [ "publishedAt", "relevance" ]
+ },
+ "top_headlines_query": {
+ "type": "string",
+ "order": 8,
+ "title": "Top Headlines Query",
+ "description": "This parameter allows you to specify your search keywords to find the news articles you are looking for. The keywords will be used to return the most relevant articles. It is possible to use logical operators with keywords. - Phrase Search Operator: This operator allows you to make an exact search. Keywords surrounded by \n quotation marks are used to search for articles with the exact same keyword sequence. \n For example the query: \"Apple iPhone\" will return articles matching at least once this sequence of keywords.\n- Logical AND Operator: This operator allows you to make sure that several keywords are all used in the article\n search. By default the space character acts as an AND operator, it is possible to replace the space character \n by AND to obtain the same result. For example the query: Apple Microsoft is equivalent to Apple AND Microsoft\n- Logical OR Operator: This operator allows you to retrieve articles matching the keyword a or the keyword b.\n It is important to note that this operator has a higher precedence than the AND operator. For example the \n query: Apple OR Microsoft will return all articles matching the keyword Apple as well as all articles matching \n the keyword Microsoft\n- Logical NOT Operator: This operator allows you to remove from the results the articles corresponding to the\n specified keywords. To use it, you need to add NOT in front of each word or phrase surrounded by quotes.\n For example the query: Apple NOT iPhone will return all articles matching the keyword Apple but not the keyword\n iPhone",
+ "examples": [ "Microsoft Windows 10", "Apple OR Microsoft", "Apple AND NOT iPhone", "(Windows 7) AND (Windows 10)", "Intel AND (i7 OR i9)" ]
+ },
+ "top_headlines_topic": {
+ "type": "string",
+ "title": "Top Headlines Topic",
+ "description": "This parameter allows you to change the category for the request.",
+ "order": 9,
+ "enum": [ "breaking-news", "world", "nation", "business", "technology", "entertainment", "sports", "science", "health" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "ba15ac82-5c6a-4fb2-bf24-925c23a1180c",
+ "name": "GoCardless",
+ "dockerRepository": "airbyte/source-gocardless",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gocardless",
+ "icon": "gocardless.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gocardless",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Gocardless Spec",
+ "type": "object",
+ "required": [ "access_token", "gocardless_environment", "gocardless_version", "start_date" ],
+ "properties": {
+ "access_token": {
+ "title": "Access Token",
+ "type": "string",
+ "pattern": "^(sandbox|live)_.+$",
+ "description": "Gocardless API TOKEN",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "gocardless_environment": {
+ "title": "GoCardless API Environment",
+ "type": "string",
+ "enum": [ "sandbox", "live" ],
+ "default": "sandbox",
+ "description": "Environment you are trying to connect to.",
+ "order": 1
+ },
+ "gocardless_version": {
+ "title": "GoCardless API Version",
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "description": "GoCardless version. This is a date. You can find the latest here: \nhttps://developer.gocardless.com/api-reference/#api-usage-making-requests\n",
+ "order": 2
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data\nbefore this date will not be replicated.\n",
+ "examples": [ "2017-01-25T00:00:00Z" ],
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "32382e40-3b49-4b99-9c5c-4076501914e7",
+ "name": "Gong",
+ "dockerRepository": "airbyte/source-gong",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gong",
+ "icon": "gong.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gong",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Gong Spec",
+ "type": "object",
+ "required": [ "access_key", "access_key_secret" ],
+ "additionalProperties": true,
+ "properties": {
+ "access_key": {
+ "type": "string",
+ "title": "Gong Access Key",
+ "description": "Gong Access Key",
+ "airbyte_secret": true
+ },
+ "access_key_secret": {
+ "type": "string",
+ "title": "Gong Access Key Secret",
+ "description": "Gong Access Key Secret",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "The date from which to list calls, in the ISO-8601 format; if not specified, the calls start with the earliest recorded call. For web-conference calls recorded by Gong, the date denotes its scheduled time, otherwise, it denotes its actual start time.",
+ "examples": [ "2018-02-18T08:00:00Z" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "253487c0-2246-43ba-a21f-5116b20a2c50",
+ "name": "Google Ads",
+ "dockerRepository": "airbyte/source-google-ads",
+ "dockerImageTag": "0.2.14",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-ads",
+ "icon": "google-adwords.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-ads",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Google Ads Spec",
+ "type": "object",
+ "required": [ "credentials", "start_date", "customer_id" ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "type": "object",
+ "description": "",
+ "title": "Google Credentials",
+ "order": 0,
+ "required": [ "developer_token", "client_id", "client_secret", "refresh_token" ],
+ "properties": {
+ "developer_token": {
+ "type": "string",
+ "title": "Developer Token",
+ "order": 0,
+ "description": "Developer token granted by Google to use their APIs. More instruction on how to find this value in our docs",
+ "airbyte_secret": true
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "order": 1,
+ "description": "The Client ID of your Google Ads developer application. More instruction on how to find this value in our docs"
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "order": 2,
+ "description": "The Client Secret of your Google Ads developer application. More instruction on how to find this value in our docs",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "order": 3,
+ "description": "The token for obtaining a new access token. More instruction on how to find this value in our docs",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "order": 4,
+ "description": "Access Token for making authenticated requests. More instruction on how to find this value in our docs",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "customer_id": {
+ "title": "Customer ID(s)",
+ "type": "string",
+ "description": "Comma separated list of (client) customer IDs. Each customer ID must be specified as a 10-digit number without dashes. More instruction on how to find this value in our docs. Metrics streams like AdGroupAdReport cannot be requested for a manager account.",
+ "pattern": "^[0-9]{10}(,[0-9]{10})*$",
+ "examples": [ "6783948572,5839201945" ],
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25. Any data before this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": [ "2017-01-25" ],
+ "order": 2,
+ "format": "date"
+ },
+ "end_date": {
+ "type": "string",
+ "title": "End Date",
+ "description": "UTC date and time in the format 2017-01-25. Any data after this date will not be replicated.",
+ "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": [ "2017-01-30" ],
+ "order": 6,
+ "format": "date"
+ },
+ "custom_queries": {
+ "type": "array",
+ "title": "Custom GAQL Queries",
+ "description": "",
+ "order": 3,
+ "items": {
+ "type": "object",
+ "required": [ "query", "table_name" ],
+ "properties": {
+ "query": {
+ "type": "string",
+ "title": "Custom Query",
+ "description": "A custom defined GAQL query for building the report. Should not contain segments.date expression because it is used by incremental streams. See Google's query builder for more information.",
+ "examples": [ "SELECT segments.ad_destination_type, campaign.advertising_channel_sub_type FROM campaign WHERE campaign.status = 'PAUSED'" ]
+ },
+ "table_name": {
+ "type": "string",
+ "title": "Destination Table Name",
+ "description": "The table name in your destination database for choosen query."
+ }
+ }
+ }
+ },
+ "login_customer_id": {
+ "type": "string",
+ "title": "Login Customer ID for Managed Accounts",
+ "description": "If your access to the customer account is through a manager account, this field is required and must be set to the customer ID of the manager account (10-digit number without dashes). More information about this field you can see here",
+ "pattern": "^([0-9]{10})?$",
+ "examples": [ "7349206847" ],
+ "order": 4
+ },
+ "conversion_window_days": {
+ "title": "Conversion Window",
+ "type": "integer",
+ "description": "A conversion window is the period of time after an ad interaction (such as an ad click or video view) during which a conversion, such as a purchase, is recorded in Google Ads. For more information, see Google's documentation.",
+ "minimum": 0,
+ "maximum": 1095,
+ "default": 14,
+ "examples": [ 14 ],
+ "order": 5
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ "credentials" ],
+ "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ], [ "developer_token" ] ],
+ "oauthFlowOutputParameters": [ [ "access_token" ], [ "refresh_token" ] ]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "accounts.google.com", "googleads.googleapis.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "eff3616a-f9c3-11eb-9a03-0242ac130003",
+ "name": "Google Analytics (Universal Analytics)",
+ "dockerRepository": "airbyte/source-google-analytics-v4",
+ "dockerImageTag": "0.1.34",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-analytics-v4",
+ "icon": "google-analytics.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-analytics-universal-analytics",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Google Analytics (Universal Analytics) Spec",
+ "type": "object",
+ "required": [ "view_id", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "order": 0,
+ "type": "object",
+ "title": "Credentials",
+ "description": "Credentials for the service",
+ "oneOf": [ {
+ "title": "Authenticate via Google (Oauth)",
+ "type": "object",
+ "required": [ "client_id", "client_secret", "refresh_token" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Google Analytics developer application.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Google Analytics developer application.",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "The token for obtaining a new access token.",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "access_token": {
+ "title": "Access Token",
+ "type": "string",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "Service Account Key Authentication",
+ "required": [ "credentials_json" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Service",
+ "order": 0
+ },
+ "credentials_json": {
+ "title": "Service Account JSON Key",
+ "type": "string",
+ "description": "The JSON key of the service account to use for authorization",
+ "examples": [ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }" ],
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ },
+ "start_date": {
+ "order": 1,
+ "type": "string",
+ "title": "Replication Start Date",
+ "description": "The date in the format YYYY-MM-DD. Any data before this date will not be replicated.",
+ "examples": [ "2020-06-01" ]
+ },
+ "view_id": {
+ "order": 2,
+ "type": "string",
+ "title": "View ID",
+ "description": "The ID for the Google Analytics View you want to fetch data from. This can be found from the Google Analytics Account Explorer."
+ },
+ "custom_reports": {
+ "order": 3,
+ "type": "string",
+ "title": "Custom Reports",
+ "description": "A JSON array describing the custom reports you want to sync from Google Analytics. See the docs for more information about the exact format you can use to fill out this field."
+ },
+ "window_in_days": {
+ "type": "integer",
+ "title": "Data request time increment in days",
+ "description": "The time increment used by the connector when requesting data from the Google Analytics API. More information is available in the the docs. The bigger this value is, the faster the sync will be, but the more likely that sampling will be applied to your data, potentially causing inaccuracies in the returned results. We recommend setting this to 1 unless you have a hard requirement to make the sync faster at the expense of accuracy. The minimum allowed value for this field is 1, and the maximum is 364. ",
+ "examples": [ 30, 60, 90, 120, 200, 364 ],
+ "default": 1,
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ "credentials", "0" ],
+ "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
+ "oauthFlowOutputParameters": [ [ "access_token" ], [ "refresh_token" ] ]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "oauth2.googleapis.com", "www.googleapis.com", "analyticsdata.googleapis.com", "analyticsreporting.googleapis.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "3cc2eafd-84aa-4dca-93af-322d9dfeec1a",
+ "name": "Google Analytics 4 (GA4)",
+ "dockerRepository": "airbyte/source-google-analytics-data-api",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-analytics-data-api",
+ "icon": "google-analytics.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-analytics-data-api",
+ "connectionSpecification": {
+ "$schema": "https://json-schema.org/draft-07/schema#",
+ "title": "Google Analytics (Data API) Spec",
+ "type": "object",
+ "required": [ "property_id", "date_ranges_start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "order": 0,
+ "type": "object",
+ "title": "Credentials",
+ "description": "Credentials for the service",
+ "oneOf": [ {
+ "title": "Authenticate via Google (Oauth)",
+ "type": "object",
+ "required": [ "client_id", "client_secret", "refresh_token" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Google Analytics developer application.",
+ "order": 1
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Google Analytics developer application.",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "The token for obtaining a new access token.",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "access_token": {
+ "title": "Access Token",
+ "type": "string",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "Service Account Key Authentication",
+ "required": [ "credentials_json" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Service",
+ "order": 0
+ },
+ "credentials_json": {
+ "title": "Service Account JSON Key",
+ "type": "string",
+ "description": "The JSON key of the service account to use for authorization",
+ "examples": [ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }" ],
+ "airbyte_secret": true,
+ "order": 1
+ }
+ }
+ } ]
+ },
+ "property_id": {
+ "type": "string",
+ "title": "Property ID",
+ "description": "A Google Analytics GA4 property identifier whose events are tracked. Specified in the URL path and not the body",
+ "order": 1
+ },
+ "date_ranges_start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The start date from which to replicate report data in the format YYYY-MM-DD. Data generated before this date will not be included in the report.",
+ "format": "date",
+ "order": 2
+ },
+ "custom_reports": {
+ "order": 3,
+ "type": "string",
+ "title": "Custom Reports",
+ "description": "A JSON array describing the custom reports you want to sync from Google Analytics. See the docs for more information about the exact format you can use to fill out this field."
+ },
+ "window_in_days": {
+ "type": "integer",
+ "title": "Data request time increment in days",
+ "description": "The time increment used by the connector when requesting data from the Google Analytics API. More information is available in the the docs. The bigger this value is, the faster the sync will be, but the more likely that sampling will be applied to your data, potentially causing inaccuracies in the returned results. We recommend setting this to 1 unless you have a hard requirement to make the sync faster at the expense of accuracy. The minimum allowed value for this field is 1, and the maximum is 364.",
+ "examples": [ 30, 60, 90, 120, 200, 364 ],
+ "minimum": 1,
+ "maximum": 364,
+ "default": 1,
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ "credentials", "0" ],
+ "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
+ "oauthFlowOutputParameters": [ [ "access_token" ], [ "refresh_token" ] ]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "oauth2.googleapis.com", "www.googleapis.com", "analyticsdata.googleapis.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "d19ae824-e289-4b14-995a-0632eb46d246",
+ "name": "Google Directory",
+ "dockerRepository": "airbyte/source-google-directory",
+ "dockerImageTag": "0.1.9",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-directory",
+ "icon": "googledirectory.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-directory",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Google Directory Spec",
+ "type": "object",
+ "required": [ ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Google Credentials",
+ "description": "Google APIs use the OAuth 2.0 protocol for authentication and authorization. The Source supports Web server application and Service accounts scenarios.",
+ "type": "object",
+ "oneOf": [ {
+ "title": "Sign in via Google (OAuth)",
+ "description": "For these scenario user only needs to give permission to read Google Directory data.",
+ "type": "object",
+ "required": [ "client_id", "client_secret", "refresh_token" ],
+ "properties": {
+ "credentials_title": {
+ "type": "string",
+ "title": "Credentials Title",
+ "description": "Authentication Scenario",
+ "const": "Web server app",
+ "enum": [ "Web server app" ],
+ "default": "Web server app",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of the developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client secret",
+ "type": "string",
+ "description": "The Client Secret of the developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "The Token for obtaining a new access token.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "Service Account Key",
+ "description": "For these scenario user should obtain service account's credentials from the Google API Console and provide delegated email.",
+ "type": "object",
+ "required": [ "credentials_json", "email" ],
+ "properties": {
+ "credentials_title": {
+ "type": "string",
+ "title": "Credentials Title",
+ "description": "Authentication Scenario",
+ "const": "Service accounts",
+ "enum": [ "Service accounts" ],
+ "default": "Service accounts",
+ "order": 0
+ },
+ "credentials_json": {
+ "type": "string",
+ "title": "Credentials JSON",
+ "description": "The contents of the JSON service account key. See the docs for more information on how to generate this key.",
+ "airbyte_secret": true
+ },
+ "email": {
+ "type": "string",
+ "title": "Email",
+ "description": "The email of the user, which has permissions to access the Google Workspace Admin APIs."
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ "credentials", "0" ],
+ "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
+ "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "1e9086ab-ddac-4c1d-aafd-ba43ff575fe4",
+ "name": "Google PageSpeed Insights",
+ "dockerRepository": "airbyte/source-google-pagespeed-insights",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-pagespeed-insights",
+ "icon": "google-pagespeed-insights.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/google-pagespeed-insights",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Google PageSpeed Insights Spec",
+ "type": "object",
+ "required": [ "urls", "strategies", "categories" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Google PageSpeed API Key. See here. The key is optional - however the API is heavily rate limited when using without API Key. Creating and using the API key therefore is recommended. The key is case sensitive.",
+ "airbyte_secret": true
+ },
+ "urls": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "^(?:origin:)?(http(s)?:\\/\\/)[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:\\/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$"
+ },
+ "title": "URLs to analyse",
+ "description": "The URLs to retrieve pagespeed information from. The connector will attempt to sync PageSpeed reports for all the defined URLs. Format: https://(www.)url.domain",
+ "example": "https://example.com"
+ },
+ "strategies": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [ "desktop", "mobile" ]
+ },
+ "title": "Analyses Strategies",
+ "description": "The analyses strategy to use. Either \"desktop\" or \"mobile\"."
+ },
+ "categories": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [ "accessibility", "best-practices", "performance", "pwa", "seo" ]
+ },
+ "title": "Lighthouse Categories",
+ "description": "Defines which Lighthouse category to run. One or many of: \"accessibility\", \"best-practices\", \"performance\", \"pwa\", \"seo\"."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "eb4c9e00-db83-4d63-a386-39cfa91012a8",
+ "name": "Google Search Console",
+ "dockerRepository": "airbyte/source-google-search-console",
+ "dockerImageTag": "0.1.22",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-search-console",
+ "icon": "googlesearchconsole.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-search-console",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Google Search Console Spec",
+ "type": "object",
+ "required": [ "site_urls", "start_date", "authorization" ],
+ "properties": {
+ "site_urls": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "Website URL Property",
+ "description": "The URLs of the website property attached to your GSC account. Read more here.",
+ "examples": [ "https://example1.com/", "sc-domain:example2.com" ],
+ "order": 0
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "UTC date in the format 2017-01-25. Any data before this date will not be replicated.",
+ "examples": [ "2021-01-01" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 1,
+ "format": "date"
+ },
+ "end_date": {
+ "type": "string",
+ "title": "End Date",
+ "description": "UTC date in the format 2017-01-25. Any data after this date will not be replicated. Must be greater or equal to the start date field.",
+ "examples": [ "2021-12-12" ],
+ "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 2,
+ "format": "date"
+ },
+ "authorization": {
+ "type": "object",
+ "title": "Authentication Type",
+ "description": "",
+ "order": 3,
+ "oneOf": [ {
+ "title": "OAuth",
+ "type": "object",
+ "required": [ "auth_type", "client_id", "client_secret", "refresh_token" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The client ID of your Google Search Console developer application. Read more here.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The client secret of your Google Search Console developer application. Read more here.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "title": "Access Token",
+ "type": "string",
+ "description": "Access token for making authenticated requests. Read more here.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "The token for obtaining a new access token. Read more here.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "Service Account Key Authentication",
+ "required": [ "auth_type", "service_account_info", "email" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Service",
+ "order": 0
+ },
+ "service_account_info": {
+ "title": "Service Account JSON Key",
+ "type": "string",
+ "description": "The JSON key of the service account to use for authorization. Read more here.",
+ "examples": [ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }" ],
+ "airbyte_secret": true
+ },
+ "email": {
+ "title": "Admin Email",
+ "type": "string",
+ "description": "The email of the user which has permissions to access the Google Workspace Admin APIs."
+ }
+ }
+ } ]
+ },
+ "custom_reports": {
+ "order": 4,
+ "type": "string",
+ "title": "Custom Reports",
+ "description": "A JSON array describing the custom reports you want to sync from Google Search Console. See the docs for more information about the exact format you can use to fill out this field."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ "authorization", "0" ],
+ "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
+ "oauthFlowOutputParameters": [ [ "access_token" ], [ "refresh_token" ] ]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "*.googleapis.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "71607ba1-c0ac-4799-8049-7f4b90dd50f7",
+ "name": "Google Sheets",
+ "dockerRepository": "airbyte/source-google-sheets",
+ "dockerImageTag": "0.2.37",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-sheets",
+ "icon": "google-sheets.svg",
+ "sourceType": "file",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-sheets",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Google Sheets Source Spec",
+ "type": "object",
+ "required": [ "spreadsheet_id", "credentials" ],
+ "additionalProperties": true,
+ "properties": {
+ "spreadsheet_id": {
+ "type": "string",
+ "title": "Spreadsheet Link",
+ "description": "Enter the link to the Google spreadsheet you want to sync",
+ "examples": [ "https://docs.google.com/spreadsheets/d/1hLd9Qqti3UyLXZB2aFfUWDT7BG-arw2xy4HR3D-dwUb/edit" ]
+ },
+ "row_batch_size": {
+ "type": "integer",
+ "title": "Row Batch Size",
+ "description": "Number of rows fetched when making a Google Sheet API call. Defaults to 200.",
+ "default": 200
+ },
+ "names_conversion": {
+ "type": "boolean",
+ "title": "Columns Name Conversion",
+ "description": "Columns name conversion using a set of rules, for example, 'My Name' -> 'my-name'.",
+ "default": false
+ },
+ "credentials": {
+ "type": "object",
+ "title": "Authentication",
+ "description": "Credentials for connecting to the Google Sheets API",
+ "oneOf": [ {
+ "title": "Authenticate via Google (OAuth)",
+ "type": "object",
+ "required": [ "auth_type", "client_id", "client_secret", "refresh_token" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client"
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "Enter your Google application's Client ID",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "Enter your Google application's Client Secret",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "Enter your Google application's refresh token",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "Service Account Key Authentication",
+ "type": "object",
+ "required": [ "auth_type", "service_account_info" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Service"
+ },
+ "service_account_info": {
+ "type": "string",
+ "title": "Service Account Information.",
+ "description": "Enter your Google Cloud service account key in JSON format",
+ "airbyte_secret": true,
+ "examples": [ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }" ]
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ "credentials", "0" ],
+ "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
+ "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "*.googleapis.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "a68fbcde-b465-4ab3-b2a6-b0590a875835",
+ "name": "Google Webfonts",
+ "dockerRepository": "airbyte/source-google-webfonts",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-webfonts",
+ "icon": "googleworkpace.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-webfonts",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Google Webfonts Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API key is required to access google apis, For getting your's goto google console and generate api key for Webfonts",
+ "airbyte_secret": true
+ },
+ "sort": {
+ "type": "string",
+ "description": "Optional, to find how to sort"
+ },
+ "prettyPrint": {
+ "type": "string",
+ "description": "Optional, boolean type"
+ },
+ "alt": {
+ "type": "string",
+ "description": "Optional, Available params- json, media, proto"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "ed9dfefa-1bbc-419d-8c5e-4d78f0ef6734",
+ "name": "Google Workspace Admin Reports",
+ "dockerRepository": "airbyte/source-google-workspace-admin-reports",
+ "dockerImageTag": "0.1.8",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-workspace-admin-reports",
+ "icon": "googleworkpace.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-workspace-admin-reports",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Google Directory Spec",
+ "type": "object",
+ "required": [ "credentials_json", "email" ],
+ "additionalProperties": false,
+ "properties": {
+ "credentials_json": {
+ "type": "string",
+ "title": "Credentials JSON",
+ "description": "The contents of the JSON service account key. See the docs for more information on how to generate this key.",
+ "airbyte_secret": true
+ },
+ "email": {
+ "type": "string",
+ "title": "Email",
+ "description": "The email of the user, who has permissions to access the Google Workspace Admin APIs."
+ },
+ "lookback": {
+ "type": "integer",
+ "title": "Lookback Window in Days",
+ "minimum": 0,
+ "maximum": 180,
+ "description": "Sets the range of time shown in the report. The maximum value allowed by the Google API is 180 days."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "59f1e50a-331f-4f09-b3e8-2e8d4d355f44",
+ "name": "Greenhouse",
+ "dockerRepository": "airbyte/source-greenhouse",
+ "dockerImageTag": "0.3.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/greenhouse",
+ "icon": "greenhouse.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/greenhouse",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Greenhouse Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Greenhouse API Key. See the docs for more information on how to generate this key.",
+ "airbyte_secret": true,
+ "order": 0
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "harvest.greenhouse.io" ]
+ }
+ }, {
+ "sourceDefinitionId": "bff9a277-e01d-420d-81ee-80f28a307318",
+ "name": "Gutendex",
+ "dockerRepository": "airbyte/source-gutendex",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gutendex",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gutendex",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Gutendex Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "author_year_start": {
+ "type": "string",
+ "description": "(Optional) Defines the minimum birth year of the authors. Books by authors born prior to the start year will not be returned. Supports both positive (CE) or negative (BCE) integer values",
+ "pattern": "^[-]?[0-9]{1,4}$",
+ "examples": [ 2002, 500, -500, 2020 ]
+ },
+ "author_year_end": {
+ "type": "string",
+ "description": "(Optional) Defines the maximum birth year of the authors. Books by authors born after the end year will not be returned. Supports both positive (CE) or negative (BCE) integer values",
+ "pattern": "^[-]?[0-9]{1,4}$",
+ "examples": [ 2002, 500, -500, 2020 ]
+ },
+ "copyright": {
+ "type": "string",
+ "description": "(Optional) Use this to find books with a certain copyright status - true for books with existing copyrights, false for books in the public domain in the USA, or null for books with no available copyright information.",
+ "pattern": "^(true|false|null)$",
+ "examples": [ true, false, null ]
+ },
+ "languages": {
+ "type": "string",
+ "description": "(Optional) Use this to find books in any of a list of languages. They must be comma-separated, two-character language codes.",
+ "examples": [ "en", "en,fr,fi" ]
+ },
+ "search": {
+ "type": "string",
+ "description": "(Optional) Use this to search author names and book titles with given words. They must be separated by a space (i.e. %20 in URL-encoded format) and are case-insensitive.",
+ "examples": [ "dickens%20great%20expect", "dickens" ]
+ },
+ "sort": {
+ "type": "string",
+ "description": "(Optional) Use this to sort books - ascending for Project Gutenberg ID numbers from lowest to highest, descending for IDs highest to lowest, or popular (the default) for most popular to least popular by number of downloads.",
+ "pattern": "^(ascending|descending|popular)$",
+ "examples": [ "ascending", "descending", "popular" ]
+ },
+ "topic": {
+ "type": "string",
+ "description": "(Optional) Use this to search for a case-insensitive key-phrase in books' bookshelves or subjects.",
+ "examples": [ "children", "fantasy" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "6fe89830-d04d-401b-aad6-6552ffa5c4af",
+ "name": "Harness",
+ "dockerRepository": "farosai/airbyte-harness-source",
+ "dockerImageTag": "0.1.23",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/harness",
+ "icon": "harness.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.faros.ai",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Harness Spec",
+ "type": "object",
+ "required": [ "api_key", "account_id" ],
+ "additionalProperties": false,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "Harness API key",
+ "airbyte_secret": true
+ },
+ "account_id": {
+ "type": "string",
+ "title": "Harness account ID"
+ },
+ "api_url": {
+ "type": "string",
+ "title": "Harness API URL",
+ "default": "https://app.harness.io",
+ "examples": [ "https://my-harness-server.example.com" ]
+ },
+ "cutoff_days": {
+ "type": "number",
+ "title": "Harness Cutoff Days",
+ "default": 90,
+ "description": "Only fetch deployments updated after cutoff"
+ },
+ "page_size": {
+ "type": "number",
+ "title": "Harness Page Size",
+ "default": 100,
+ "description": "number of pipelines (builds) to fetch per call"
+ },
+ "deployment_timeout": {
+ "type": "number",
+ "title": "Harness Deployment Timeout",
+ "default": 24,
+ "description": "Max number of hours to consider for a deployment to be running/queued before giving up on syncing it"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "fe2b4084-3386-4d3b-9ad6-308f61a6f1e6",
+ "name": "Harvest",
+ "dockerRepository": "airbyte/source-harvest",
+ "dockerImageTag": "0.1.17",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/harvest",
+ "icon": "harvest.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/harvest",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Harvest Spec",
+ "type": "object",
+ "required": [ "account_id", "replication_start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "account_id": {
+ "title": "Account ID",
+ "description": "Harvest account ID. Required for all Harvest requests in pair with Personal Access Token",
+ "airbyte_secret": true,
+ "type": "string",
+ "order": 0
+ },
+ "replication_start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2017-01-25T00:00:00Z" ],
+ "type": "string",
+ "order": 1,
+ "format": "date-time"
+ },
+ "replication_end_date": {
+ "title": "End Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data after this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2017-01-25T00:00:00Z" ],
+ "type": "string",
+ "airbyte_hidden": true,
+ "order": 2,
+ "format": "date-time"
+ },
+ "credentials": {
+ "title": "Authentication mechanism",
+ "description": "Choose how to authenticate to Harvest.",
+ "type": "object",
+ "order": 3,
+ "oneOf": [ {
+ "type": "object",
+ "title": "Authenticate via Harvest (OAuth)",
+ "required": [ "client_id", "client_secret", "refresh_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Harvest developer application."
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Harvest developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "Refresh Token to renew the expired Access Token.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "Authenticate with Personal Access Token",
+ "required": [ "api_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Token",
+ "order": 0
+ },
+ "api_token": {
+ "title": "Personal Access Token",
+ "description": "Log into Harvest and then create new personal access token.",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "append" ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ "credentials", "0" ],
+ "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
+ "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
+ }
+ },
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "auth_type" ],
+ "predicate_value": "Client",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "refresh_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "api.harvestapp.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "492b56d1-937c-462e-8076-21ad2031e784",
+ "name": "Hellobaton",
+ "dockerRepository": "airbyte/source-hellobaton",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/hellobaton",
+ "icon": "hellobaton.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Hellobaton Spec",
+ "type": "object",
+ "required": [ "api_key", "company" ],
+ "additionalProperties": false,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "authentication key required to access the api endpoints",
+ "airbyte_secret": true
+ },
+ "company": {
+ "type": "string",
+ "description": "Company name that generates your base api url",
+ "examples": [ "google", "facebook", "microsoft" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "8097ceb9-383f-42f6-9f92-d3fd4bcc7689",
+ "name": "Hubplanner",
+ "dockerRepository": "airbyte/source-hubplanner",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/hubplanner",
+ "icon": "hubplanner.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/hubplanner",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Hubplanner Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "Hubplanner API key. See https://github.com/hubplanner/API#authentication for more details.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "36c891d9-4bd9-43ac-bad2-10e12756272c",
+ "name": "HubSpot",
+ "dockerRepository": "airbyte/source-hubspot",
+ "dockerImageTag": "0.6.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/hubspot",
+ "icon": "hubspot.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/hubspot",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "HubSpot Source Spec",
+ "type": "object",
+ "required": [ "start_date", "credentials" ],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": [ "2017-01-25T00:00:00Z" ],
+ "format": "date-time"
+ },
+ "credentials": {
+ "title": "Authentication",
+ "description": "Choose how to authenticate to HubSpot.",
+ "type": "object",
+ "oneOf": [ {
+ "type": "object",
+ "title": "OAuth",
+ "required": [ "client_id", "client_secret", "refresh_token", "credentials_title" ],
+ "properties": {
+ "credentials_title": {
+ "type": "string",
+ "title": "Credentials",
+ "description": "Name of the credentials",
+ "const": "OAuth Credentials",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "description": "The Client ID of your HubSpot developer application. See the Hubspot docs if you need help finding this ID.",
+ "type": "string",
+ "examples": [ "123456789000" ]
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "description": "The client secret for your HubSpot developer application. See the Hubspot docs if you need help finding this secret.",
+ "type": "string",
+ "examples": [ "secret" ],
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "description": "Refresh token to renew an expired access token. See the Hubspot docs if you need help finding this token.",
+ "type": "string",
+ "examples": [ "refresh_token" ],
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "Private App",
+ "required": [ "access_token", "credentials_title" ],
+ "properties": {
+ "credentials_title": {
+ "type": "string",
+ "title": "Credentials",
+ "description": "Name of the credentials set",
+ "const": "Private App Credentials",
+ "order": 0
+ },
+ "access_token": {
+ "title": "Access token",
+ "description": "HubSpot Access token. See the Hubspot docs if you need help finding this token.",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ "credentials", "0" ],
+ "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
+ "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "api.hubapi.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "f23b7b7c-d705-49a3-9042-09add3b104a5",
+ "name": "IP2Whois",
+ "dockerRepository": "airbyte/source-ip2whois",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/ip2whois",
+ "icon": "ip2whois.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/ip2whois",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Ip2whois Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API key",
+ "type": "string",
+ "description": "Your API Key. See here.",
+ "airbyte_secret": true
+ },
+ "domain": {
+ "title": "Domain",
+ "type": "string",
+ "description": "Domain name. See here.",
+ "examples": [ "www.google.com", "www.facebook.com" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "447e0381-3780-4b46-bb62-00a4e3c8b8e2",
+ "name": "IBM Db2",
+ "dockerRepository": "airbyte/source-db2",
+ "dockerImageTag": "0.1.19",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/db2",
+ "icon": "db2.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/db2",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "IBM Db2 Source Spec",
+ "type": "object",
+ "required": [ "host", "port", "db", "username", "password", "encryption" ],
+ "properties": {
+ "host": {
+ "description": "Host of the Db2.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 8123,
+ "examples": [ "8123" ],
+ "order": 1
+ },
+ "db": {
+ "description": "Name of the database.",
+ "type": "string",
+ "examples": [ "default" ],
+ "order": 2
+ },
+ "username": {
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 5
+ },
+ "encryption": {
+ "title": "Encryption",
+ "type": "object",
+ "description": "Encryption method to use when communicating with the database",
+ "order": 6,
+ "oneOf": [ {
+ "title": "Unencrypted",
+ "description": "Data transfer will not be encrypted.",
+ "required": [ "encryption_method" ],
+ "properties": {
+ "encryption_method": {
+ "type": "string",
+ "const": "unencrypted"
+ }
+ }
+ }, {
+ "title": "TLS Encrypted (verify certificate)",
+ "description": "Verify and use the cert provided by the server.",
+ "required": [ "encryption_method", "ssl_certificate" ],
+ "properties": {
+ "encryption_method": {
+ "type": "string",
+ "const": "encrypted_verify_certificate"
+ },
+ "ssl_certificate": {
+ "title": "SSL PEM file",
+ "description": "Privacy Enhanced Mail (PEM) files are concatenated certificate containers frequently used in certificate installations",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true
+ },
+ "key_store_password": {
+ "title": "Key Store Password. This field is optional. If you do not fill in this field, the password will be randomly generated.",
+ "description": "Key Store Password",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "${host}" ]
+ }
+ }, {
+ "sourceDefinitionId": "38f84314-fe6a-4257-97be-a8dcd942d693",
+ "name": "Insightly",
+ "dockerRepository": "airbyte/source-insightly",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/insightly",
+ "icon": "insightly.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/insightly",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Insightly Spec",
+ "type": "object",
+ "required": [ "token", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "token": {
+ "type": [ "string", "null" ],
+ "title": "API Token",
+ "description": "Your Insightly API token.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": [ "string", "null" ],
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for Insightly in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated. Note that it will be used only for incremental streams.",
+ "examples": [ "2021-03-01T00:00:00Z" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "6acf6b55-4f1e-4fca-944e-1a3caef8aba8",
+ "name": "Instagram",
+ "dockerRepository": "airbyte/source-instagram",
+ "dockerImageTag": "1.0.5",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/instagram",
+ "icon": "instagram.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/instagram",
+ "changelogUrl": "https://docs.airbyte.com/integrations/sources/instagram",
+ "connectionSpecification": {
+ "title": "Source Instagram",
+ "type": "object",
+ "properties": {
+ "start_date": {
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for User Insights, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2017-01-25T00:00:00Z" ],
+ "type": "string",
+ "format": "date-time"
+ },
+ "access_token": {
+ "title": "Access Token",
+ "description": "The value of the access token generated with instagram_basic, instagram_manage_insights, pages_show_list, pages_read_engagement, Instagram Public Content Access permissions. See the docs for more information",
+ "airbyte_secret": true,
+ "type": "string"
+ }
+ },
+ "required": [ "start_date", "access_token" ]
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "append" ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ ],
+ "oauthFlowInitParameters": [ ],
+ "oauthFlowOutputParameters": [ [ "access_token" ] ]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "graph.facebook.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "1901024c-0249-45d0-bcac-31a954652927",
+ "name": "Instatus",
+ "dockerRepository": "airbyte/source-instatus",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/instatus",
+ "icon": "instatus.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/instatus",
+ "connectionSpecification": {
+ "title": "Instatus Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "required": [ "api_key" ],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "Rest API Key",
+ "airbyte_secret": true,
+ "description": "Instatus REST API key"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "d8313939-3782-41b0-be29-b3ca20d8dd3a",
+ "name": "Intercom",
+ "dockerRepository": "airbyte/source-intercom",
+ "dockerImageTag": "0.2.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/intercom",
+ "icon": "intercom.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/intercom",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Intercom Spec",
+ "type": "object",
+ "required": [ "start_date", "access_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": [ "2020-11-16T00:00:00Z" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "format": "date-time"
+ },
+ "access_token": {
+ "title": "Access token",
+ "type": "string",
+ "description": "Access token for making authenticated requests. See the Intercom docs for more information.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ ],
+ "oauthFlowInitParameters": [ ],
+ "oauthFlowOutputParameters": [ [ "access_token" ] ]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "api.intercom.io" ]
+ }
+ }, {
+ "sourceDefinitionId": "3d15163b-11d8-412f-b808-795c9b2c3a3a",
+ "name": "Intruder",
+ "dockerRepository": "airbyte/source-intruder",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/intruder",
+ "icon": "intruder.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/intruder",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Intruder Spec",
+ "type": "object",
+ "required": [ "access_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "access_token": {
+ "title": "API Access token",
+ "type": "string",
+ "description": "Your API Access token. See here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "2e875208-0c0b-4ee4-9e92-1cb3156ea799",
+ "name": "Iterable",
+ "dockerRepository": "airbyte/source-iterable",
+ "dockerImageTag": "0.1.27",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/iterable",
+ "icon": "iterable.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/iterable",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Iterable Spec",
+ "type": "object",
+ "required": [ "start_date", "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Iterable API Key. See the docs for more information on how to obtain this key.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for Iterable, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "examples": [ "2021-04-01T00:00:00Z" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "order": 1,
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "api.iterable.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "d6f73702-d7a0-4e95-9758-b0fb1af0bfba",
+ "name": "Jenkins",
+ "dockerRepository": "farosai/airbyte-jenkins-source",
+ "dockerImageTag": "0.1.23",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/jenkins",
+ "icon": "jenkins.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.faros.ai",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Jenkins Spec",
+ "type": "object",
+ "required": [ "server_url", "user", "token" ],
+ "additionalProperties": false,
+ "properties": {
+ "server_url": {
+ "type": "string",
+ "title": "Jenkins Server URL",
+ "examples": [ "https://my-jenkins-server.example.com" ]
+ },
+ "user": {
+ "type": "string",
+ "description": "Jenkins User"
+ },
+ "token": {
+ "type": "string",
+ "title": "Jenkins Token",
+ "airbyte_secret": true
+ },
+ "depth": {
+ "type": "number",
+ "title": "Depth",
+ "description": "Jenkins JSON API does not support deep scan, it is required to generate a suitable tree for the corresponding depth. Job in some cases have many sub jobs, depth needs to quantify how many sub jobs are showed. If depth is not provided we will try to compute it automatically"
+ },
+ "pageSize": {
+ "type": "integer",
+ "minimum": 1,
+ "default": 10,
+ "title": "Page Size",
+ "description": "Quantity of jobs on a single page fetched from Jenkins"
+ },
+ "last100Builds": {
+ "type": "boolean",
+ "default": false,
+ "title": "Last 100 Builds Only",
+ "description": "Fetch only 100 last builds from Jenkins server"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "68e63de2-bb83-4c7e-93fa-a8a9051e3993",
+ "name": "Jira",
+ "dockerRepository": "airbyte/source-jira",
+ "dockerImageTag": "0.3.7",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/jira",
+ "icon": "jira.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/jira",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Jira Spec",
+ "type": "object",
+ "required": [ "api_token", "domain", "email" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "title": "API Token",
+ "description": "Jira API Token. See the docs for more information on how to generate this key.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "domain": {
+ "type": "string",
+ "title": "Domain",
+ "examples": [ ".atlassian.net", ".jira.com", "jira..com" ],
+ "description": "The Domain for your Jira account, e.g. airbyteio.atlassian.net, airbyteio.jira.com, jira.your-domain.com",
+ "order": 1
+ },
+ "email": {
+ "type": "string",
+ "title": "Email",
+ "description": "The user email for your Jira account.",
+ "order": 2
+ },
+ "projects": {
+ "type": "array",
+ "title": "Projects",
+ "items": {
+ "type": "string"
+ },
+ "examples": [ "PROJ1", "PROJ2" ],
+ "description": "List of Jira project keys to replicate data for.",
+ "order": 3
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date from which you want to replicate data from Jira, use the format YYYY-MM-DDT00:00:00Z. Note that this field only applies to certain streams, and only data generated on or after the start date will be replicated. For more information, refer to the documentation.",
+ "examples": [ "2021-03-01T00:00:00Z" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "format": "date-time",
+ "order": 4
+ },
+ "expand_issue_changelog": {
+ "type": "boolean",
+ "title": "Expand Issue Changelog",
+ "description": "Expand the changelog when replicating issues.",
+ "default": false,
+ "order": 5
+ },
+ "render_fields": {
+ "type": "boolean",
+ "title": "Render Issue Fields",
+ "description": "Render issue fields in HTML format in addition to Jira JSON-like format.",
+ "default": false,
+ "order": 6
+ },
+ "enable_experimental_streams": {
+ "type": "boolean",
+ "title": "Enable Experimental Streams",
+ "description": "Allow the use of experimental streams which rely on undocumented Jira API endpoints. See https://docs.airbyte.com/integrations/sources/jira#experimental-tables for more info.",
+ "default": false,
+ "order": 7
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "${domain}" ]
+ },
+ "maxSecondsBetweenMessages": 21600
+ }, {
+ "sourceDefinitionId": "e300ece7-b073-43a3-852e-8aff36a57f13",
+ "name": "K6 Cloud",
+ "dockerRepository": "airbyte/source-k6-cloud",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/k6-cloud",
+ "icon": "k6cloud.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/k6-cloud",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "K6 Cloud Spec",
+ "type": "object",
+ "required": [ "api_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "title": "Api Token",
+ "type": "string",
+ "description": "Your API Token. See here. The key is case sensitive.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "d917a47b-8537-4d0d-8c10-36a9928d4265",
+ "name": "Kafka",
+ "dockerRepository": "airbyte/source-kafka",
+ "dockerImageTag": "0.2.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/kafka",
+ "icon": "kafka.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/kafka",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Kafka Source Spec",
+ "type": "object",
+ "required": [ "bootstrap_servers", "subscription", "protocol" ],
+ "additionalProperties": true,
+ "properties": {
+ "MessageFormat": {
+ "title": "MessageFormat",
+ "type": "object",
+ "description": "The serialization used based on this ",
+ "oneOf": [ {
+ "title": "JSON",
+ "properties": {
+ "deserialization_type": {
+ "type": "string",
+ "const": "JSON"
+ }
+ }
+ }, {
+ "title": "AVRO",
+ "properties": {
+ "deserialization_type": {
+ "const": "AVRO"
+ },
+ "deserialization_strategy": {
+ "type": "string",
+ "enum": [ "TopicNameStrategy", "RecordNameStrategy", "TopicRecordNameStrategy" ],
+ "default": "TopicNameStrategy"
+ },
+ "schema_registry_url": {
+ "type": "string",
+ "examples": [ "http://localhost:8081" ]
+ },
+ "schema_registry_username": {
+ "type": "string",
+ "default": ""
+ },
+ "schema_registry_password": {
+ "type": "string",
+ "default": ""
+ }
+ }
+ } ]
+ },
+ "bootstrap_servers": {
+ "title": "Bootstrap Servers",
+ "description": "A list of host/port pairs to use for establishing the initial connection to the Kafka cluster. The client will make use of all servers irrespective of which servers are specified here for bootstrapping—this list only impacts the initial hosts used to discover the full set of servers. This list should be in the form host1:port1,host2:port2,...
. Since these servers are just used for the initial connection to discover the full cluster membership (which may change dynamically), this list need not contain the full set of servers (you may want more than one, though, in case a server is down).",
+ "type": "string",
+ "examples": [ "kafka-broker1:9092,kafka-broker2:9092" ]
+ },
+ "subscription": {
+ "title": "Subscription Method",
+ "type": "object",
+ "description": "You can choose to manually assign a list of partitions, or subscribe to all topics matching specified pattern to get dynamically assigned partitions.",
+ "oneOf": [ {
+ "title": "Manually assign a list of partitions",
+ "required": [ "subscription_type", "topic_partitions" ],
+ "properties": {
+ "subscription_type": {
+ "description": "Manually assign a list of partitions to this consumer. This interface does not allow for incremental assignment and will replace the previous assignment (if there is one).\nIf the given list of topic partitions is empty, it is treated the same as unsubscribe().",
+ "type": "string",
+ "const": "assign"
+ },
+ "topic_partitions": {
+ "title": "List of topic:partition Pairs",
+ "type": "string",
+ "examples": [ "sample.topic:0, sample.topic:1" ]
+ }
+ }
+ }, {
+ "title": "Subscribe to all topics matching specified pattern",
+ "required": [ "subscription_type", "topic_pattern" ],
+ "properties": {
+ "subscription_type": {
+ "description": "The Topic pattern from which the records will be read.",
+ "type": "string",
+ "const": "subscribe"
+ },
+ "topic_pattern": {
+ "title": "Topic Pattern",
+ "type": "string",
+ "examples": [ "sample.topic" ]
+ }
+ }
+ } ]
+ },
+ "test_topic": {
+ "title": "Test Topic",
+ "description": "The Topic to test in case the Airbyte can consume messages.",
+ "type": "string",
+ "examples": [ "test.topic" ]
+ },
+ "group_id": {
+ "title": "Group ID",
+ "description": "The Group ID is how you distinguish different consumer groups.",
+ "type": "string",
+ "examples": [ "group.id" ]
+ },
+ "max_poll_records": {
+ "title": "Max Poll Records",
+ "description": "The maximum number of records returned in a single call to poll(). Note, that max_poll_records does not impact the underlying fetching behavior. The consumer will cache the records from each fetch request and returns them incrementally from each poll.",
+ "type": "integer",
+ "default": 500
+ },
+ "polling_time": {
+ "title": "Polling Time",
+ "description": "Amount of time Kafka connector should try to poll for messages.",
+ "type": "integer",
+ "default": 100
+ },
+ "protocol": {
+ "title": "Protocol",
+ "type": "object",
+ "description": "The Protocol used to communicate with brokers.",
+ "oneOf": [ {
+ "title": "PLAINTEXT",
+ "required": [ "security_protocol" ],
+ "properties": {
+ "security_protocol": {
+ "type": "string",
+ "const": "PLAINTEXT"
+ }
+ }
+ }, {
+ "title": "SASL PLAINTEXT",
+ "required": [ "security_protocol", "sasl_mechanism", "sasl_jaas_config" ],
+ "properties": {
+ "security_protocol": {
+ "type": "string",
+ "const": "SASL_PLAINTEXT"
+ },
+ "sasl_mechanism": {
+ "title": "SASL Mechanism",
+ "description": "The SASL mechanism used for client connections. This may be any mechanism for which a security provider is available.",
+ "type": "string",
+ "const": "PLAIN"
+ },
+ "sasl_jaas_config": {
+ "title": "SASL JAAS Config",
+ "description": "The JAAS login context parameters for SASL connections in the format used by JAAS configuration files.",
+ "type": "string",
+ "default": "",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "SASL SSL",
+ "required": [ "security_protocol", "sasl_mechanism", "sasl_jaas_config" ],
+ "properties": {
+ "security_protocol": {
+ "type": "string",
+ "const": "SASL_SSL"
+ },
+ "sasl_mechanism": {
+ "title": "SASL Mechanism",
+ "description": "The SASL mechanism used for client connections. This may be any mechanism for which a security provider is available.",
+ "type": "string",
+ "default": "GSSAPI",
+ "enum": [ "GSSAPI", "OAUTHBEARER", "SCRAM-SHA-256", "SCRAM-SHA-512", "PLAIN" ]
+ },
+ "sasl_jaas_config": {
+ "title": "SASL JAAS Config",
+ "description": "The JAAS login context parameters for SASL connections in the format used by JAAS configuration files.",
+ "type": "string",
+ "default": "",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ },
+ "client_id": {
+ "title": "Client ID",
+ "description": "An ID string to pass to the server when making requests. The purpose of this is to be able to track the source of requests beyond just ip/port by allowing a logical application name to be included in server-side request logging.",
+ "type": "string",
+ "examples": [ "airbyte-consumer" ]
+ },
+ "enable_auto_commit": {
+ "title": "Enable Auto Commit",
+ "description": "If true, the consumer's offset will be periodically committed in the background.",
+ "type": "boolean",
+ "default": true
+ },
+ "auto_commit_interval_ms": {
+ "title": "Auto Commit Interval, ms",
+ "description": "The frequency in milliseconds that the consumer offsets are auto-committed to Kafka if enable.auto.commit is set to true.",
+ "type": "integer",
+ "default": 5000
+ },
+ "client_dns_lookup": {
+ "title": "Client DNS Lookup",
+ "description": "Controls how the client uses DNS lookups. If set to use_all_dns_ips, connect to each returned IP address in sequence until a successful connection is established. After a disconnection, the next IP is used. Once all IPs have been used once, the client resolves the IP(s) from the hostname again. If set to resolve_canonical_bootstrap_servers_only, resolve each bootstrap address into a list of canonical names. After the bootstrap phase, this behaves the same as use_all_dns_ips. If set to default (deprecated), attempt to connect to the first IP address returned by the lookup, even if the lookup returns multiple IP addresses.",
+ "type": "string",
+ "default": "use_all_dns_ips",
+ "enum": [ "default", "use_all_dns_ips", "resolve_canonical_bootstrap_servers_only" ]
+ },
+ "retry_backoff_ms": {
+ "title": "Retry Backoff, ms",
+ "description": "The amount of time to wait before attempting to retry a failed request to a given topic partition. This avoids repeatedly sending requests in a tight loop under some failure scenarios.",
+ "type": "integer",
+ "default": 100
+ },
+ "request_timeout_ms": {
+ "title": "Request Timeout, ms",
+ "description": "The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted.",
+ "type": "integer",
+ "default": 30000
+ },
+ "receive_buffer_bytes": {
+ "title": "Receive Buffer, bytes",
+ "description": "The size of the TCP receive buffer (SO_RCVBUF) to use when reading data. If the value is -1, the OS default will be used.",
+ "type": "integer",
+ "default": 32768
+ },
+ "auto_offset_reset": {
+ "title": "Auto Offset Reset",
+ "description": "What to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server - earliest: automatically reset the offset to the earliest offset, latest: automatically reset the offset to the latest offset, none: throw exception to the consumer if no previous offset is found for the consumer's group, anything else: throw exception to the consumer.",
+ "type": "string",
+ "default": "latest",
+ "enum": [ "latest", "earliest", "none" ]
+ },
+ "repeated_calls": {
+ "title": "Repeated Calls",
+ "description": "The number of repeated calls to poll() if no messages were received.",
+ "type": "integer",
+ "default": 3
+ },
+ "max_records_process": {
+ "title": "Maximum Records",
+ "description": "The Maximum to be processed per execution",
+ "type": "integer",
+ "default": 100000
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "supported_source_sync_modes": [ "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "60c24725-00ae-490c-991d-55b78c3197e0",
+ "name": "Klarna",
+ "dockerRepository": "airbyte/source-klarna",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/klarna",
+ "icon": "klarna.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/klarna",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Klarna Spec",
+ "type": "object",
+ "required": [ "region", "playground", "username", "password" ],
+ "additionalProperties": true,
+ "properties": {
+ "region": {
+ "title": "Region",
+ "type": "string",
+ "enum": [ "eu", "us", "oc" ],
+ "description": "Base url region (For playground eu https://docs.klarna.com/klarna-payments/api/payments-api/#tag/API-URLs). Supported 'eu', 'us', 'oc'"
+ },
+ "playground": {
+ "title": "Playground",
+ "type": "boolean",
+ "description": "Propertie defining if connector is used against playground or production environment",
+ "default": false
+ },
+ "username": {
+ "title": "Username",
+ "type": "string",
+ "description": "Consists of your Merchant ID (eid) - a unique number that identifies your e-store, combined with a random string (https://developers.klarna.com/api/#authentication)"
+ },
+ "password": {
+ "title": "Password",
+ "type": "string",
+ "description": "A string which is associated with your Merchant ID and is used to authorize use of Klarna's APIs (https://developers.klarna.com/api/#authentication)",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "95e8cffd-b8c4-4039-968e-d32fb4a69bde",
+ "name": "Klaviyo",
+ "dockerRepository": "airbyte/source-klaviyo",
+ "dockerImageTag": "0.3.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/klaviyo",
+ "icon": "klaviyo.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/klaviyo",
+ "changelogUrl": "https://docs.airbyte.com/integrations/sources/klaviyo",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Klaviyo Spec",
+ "type": "object",
+ "properties": {
+ "api_key": {
+ "title": "Api Key",
+ "description": "Klaviyo API Key. See our docs if you need help finding this key.",
+ "airbyte_secret": true,
+ "type": "string"
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2017-01-25T00:00:00Z" ],
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [ "api_key", "start_date" ]
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "a.klaviyo.com", "klaviyo.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "547dc08e-ab51-421d-953b-8f3745201a8c",
+ "name": "Kyriba",
+ "dockerRepository": "airbyte/source-kyriba",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/kyriba",
+ "icon": "kyriba.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Kyriba Spec",
+ "type": "object",
+ "required": [ "domain", "username", "password", "start_date" ],
+ "additionalProperties": false,
+ "properties": {
+ "domain": {
+ "type": "string",
+ "description": "Kyriba domain",
+ "title": "Domain",
+ "examples": [ "demo.kyriba.com" ],
+ "pattern": "^[a-zA-Z0-9._-]*\\.[a-zA-Z0-9._-]*\\.[a-z]*"
+ },
+ "username": {
+ "type": "string",
+ "description": "Username to be used in basic auth",
+ "title": "Username"
+ },
+ "password": {
+ "type": "string",
+ "description": "Password to be used in basic auth",
+ "title": "Password",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "description": "The date the sync should start from.",
+ "title": "Start Date",
+ "examples": [ "2021-01-10" ],
+ "pattern": "^\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12][0-9]|3[01])$"
+ },
+ "end_date": {
+ "type": "string",
+ "description": "The date the sync should end. If let empty the sync will run to the current date.",
+ "title": "End Date",
+ "examples": [ "2022-03-01" ],
+ "pattern": "^(?:(\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12][0-9]|3[01]))|)$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "f96bb511-5e3c-48fc-b408-547953cd81a4",
+ "name": "LaunchDarkly",
+ "dockerRepository": "airbyte/source-launchdarkly",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/launchdarkly",
+ "icon": "launchdarkly.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/launchdarkly",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Launchdarkly Spec",
+ "type": "object",
+ "required": [ "access_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "access_token": {
+ "title": "Access token",
+ "type": "string",
+ "description": "Your Access token. See here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "789f8e7a-2d28-11ec-8d3d-0242ac130003",
+ "name": "Lemlist",
+ "dockerRepository": "airbyte/source-lemlist",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/lemlist",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/lemlist",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Lemlist Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": false,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API key",
+ "description": "Lemlist API key.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "3981c999-bd7d-4afc-849b-e53dea90c948",
+ "name": "Lever Hiring",
+ "dockerRepository": "airbyte/source-lever-hiring",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/lever-hiring",
+ "icon": "leverhiring.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/lever-hiring",
+ "changelogUrl": "https://docs.airbyte.com/integrations/sources/lever-hiring#changelog",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Lever Hiring Source Spec",
+ "type": "object",
+ "required": [ "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "order": 3,
+ "title": "Authentication Mechanism",
+ "description": "Choose how to authenticate to Lever Hiring.",
+ "type": "object",
+ "oneOf": [ {
+ "type": "object",
+ "title": "Authenticate via Lever (OAuth)",
+ "required": [ "refresh_token" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Lever Hiring developer application."
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Lever Hiring developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "The token for obtaining new access token.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "Authenticate via Lever (Api Key)",
+ "required": [ "api_key" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Api Key",
+ "order": 0
+ },
+ "api_key": {
+ "title": "Api key",
+ "type": "string",
+ "description": "The Api Key of your Lever Hiring account.",
+ "airbyte_secret": true,
+ "order": 1
+ }
+ }
+ } ]
+ },
+ "start_date": {
+ "order": 0,
+ "type": "string",
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. Note that it will be used only in the following incremental streams: comments, commits, and issues.",
+ "examples": [ "2021-03-01T00:00:00Z" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
+ },
+ "environment": {
+ "order": 1,
+ "type": "string",
+ "title": "Environment",
+ "description": "The environment in which you'd like to replicate data for Lever. This is used to determine which Lever API endpoint to use.",
+ "default": "Sandbox",
+ "enum": [ "Production", "Sandbox" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ "credentials", "0" ],
+ "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
+ "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
+ }
+ },
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "auth_type" ],
+ "predicate_value": "Client",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "properties": {
+ "environment": {
+ "type": "string",
+ "path_in_connector_config": [ "environment" ]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "refresh_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "137ece28-5434-455c-8f34-69dc3782f451",
+ "name": "LinkedIn Ads",
+ "dockerRepository": "airbyte/source-linkedin-ads",
+ "dockerImageTag": "0.1.15",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/linkedin-ads",
+ "icon": "linkedin.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/linkedin-ads",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Linkedin Ads Spec",
+ "type": "object",
+ "required": [ "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authentication",
+ "type": "object",
+ "oneOf": [ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [ "client_id", "client_secret", "refresh_token" ],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "oAuth2.0"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The client ID of the LinkedIn Ads developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client secret",
+ "description": "The client secret the LinkedIn Ads developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh token",
+ "description": "The key to refresh the expired access token.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "Access token",
+ "type": "object",
+ "required": [ "access_token" ],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "access_token"
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access token",
+ "description": "The token value generated using the authentication code. See the docs to obtain yours.",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "description": "UTC date in the format 2020-09-17. Any data before this date will not be replicated.",
+ "examples": [ "2021-05-17" ],
+ "format": "date"
+ },
+ "account_ids": {
+ "title": "Account IDs",
+ "type": "array",
+ "description": "Specify the account IDs separated by a space, to pull the data from. Leave empty, if you want to pull the data from all associated accounts. See the LinkedIn Ads docs for more info.",
+ "items": {
+ "type": "integer"
+ },
+ "default": [ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ "credentials", "0" ],
+ "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
+ "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "api.linkedin.com" ]
+ },
+ "maxSecondsBetweenMessages": 21600
+ }, {
+ "sourceDefinitionId": "af54297c-e8f8-4d63-a00d-a94695acc9d3",
+ "name": "LinkedIn Pages",
+ "dockerRepository": "airbyte/source-linkedin-pages",
+ "dockerImageTag": "1.0.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/linkedin-pages",
+ "icon": "linkedin.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/linkedin-pages/",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Linkedin Pages Spec",
+ "type": "object",
+ "required": [ "org_id" ],
+ "additionalProperties": true,
+ "properties": {
+ "org_id": {
+ "title": "Organization ID",
+ "type": "string",
+ "airbyte_secret": true,
+ "description": "Specify the Organization ID",
+ "examples": [ "123456789" ]
+ },
+ "credentials": {
+ "title": "Authentication",
+ "type": "object",
+ "oneOf": [ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [ "client_id", "client_secret", "refresh_token" ],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "oAuth2.0"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The client ID of the LinkedIn developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client secret",
+ "description": "The client secret of the LinkedIn developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh token",
+ "description": "The token value generated using the LinkedIn Developers OAuth Token Tools. See the docs to obtain yours.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "Access token",
+ "type": "object",
+ "required": [ "access_token" ],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "access_token"
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access token",
+ "description": "The token value generated using the LinkedIn Developers OAuth Token Tools. See the docs to obtain yours.",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "7b86879e-26c5-4ef6-a5ce-2be5c7b46d1e",
+ "name": "Linnworks",
+ "dockerRepository": "airbyte/source-linnworks",
+ "dockerImageTag": "0.1.5",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/linnworks",
+ "icon": "linnworks.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/linnworks",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Linnworks Spec",
+ "type": "object",
+ "required": [ "application_id", "application_secret", "token", "start_date" ],
+ "additionalProperties": false,
+ "properties": {
+ "application_id": {
+ "title": "Application ID.",
+ "description": "Linnworks Application ID",
+ "type": "string"
+ },
+ "application_secret": {
+ "title": "Application Secret",
+ "description": "Linnworks Application Secret",
+ "type": "string",
+ "airbyte_secret": true
+ },
+ "token": {
+ "title": "API Token",
+ "type": "string"
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "45e0b135-615c-40ac-b38e-e65b0944197f",
+ "name": "Lokalise",
+ "dockerRepository": "airbyte/source-lokalise",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/lokalise",
+ "icon": "lokalise.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/lokalise",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Lokalise Spec",
+ "type": "object",
+ "required": [ "api_key", "project_id" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Lokalise API Key with read-access. Available at Profile settings > API tokens. See here.",
+ "airbyte_secret": true
+ },
+ "project_id": {
+ "title": "Project Id",
+ "type": "string",
+ "description": "Lokalise project ID. Available at Project Settings > General."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "00405b19-9768-4e0c-b1ae-9fc2ee2b2a8c",
+ "name": "Looker",
+ "dockerRepository": "airbyte/source-looker",
+ "dockerImageTag": "0.2.8",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/looker",
+ "icon": "looker.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/looker",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Looker Spec",
+ "type": "object",
+ "required": [ "domain", "client_id", "client_secret" ],
+ "additionalProperties": true,
+ "properties": {
+ "domain": {
+ "type": "string",
+ "title": "Domain",
+ "examples": [ "domainname.looker.com", "looker.clientname.com", "123.123.124.123:8000" ],
+ "description": "Domain for your Looker account, e.g. airbyte.cloud.looker.com,looker.[clientname].com,IP address"
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID is first part of an API3 key that is specific to each Looker user. See the docs for more information on how to generate this key."
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret is second part of an API3 key.",
+ "airbyte_secret": true
+ },
+ "run_look_ids": {
+ "title": "Look IDs to Run",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "^[0-9]*$"
+ },
+ "description": "The IDs of any Looks to run"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "b03a9f3e-22a5-11eb-adc1-0242ac120002",
+ "name": "Mailchimp",
+ "dockerRepository": "airbyte/source-mailchimp",
+ "dockerImageTag": "0.3.5",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailchimp",
+ "icon": "mailchimp.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailchimp",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Mailchimp Spec",
+ "type": "object",
+ "required": [ ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "type": "object",
+ "title": "Authentication",
+ "oneOf": [ {
+ "title": "OAuth2.0",
+ "type": "object",
+ "required": [ "auth_type", "access_token" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "title": "Access Token",
+ "type": "string",
+ "description": "An access token generated using the above client ID and secret.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "API Key",
+ "required": [ "auth_type", "apikey" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "apikey",
+ "order": 1
+ },
+ "apikey": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Mailchimp API Key. See the docs for information on how to generate this key.",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ },
+ "campaign_id": {
+ "type": "string",
+ "title": "ID of a campaign to sync email activities",
+ "airbyte_hidden": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "auth_type" ],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "access_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "*.api.mailchimp.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "56582331-5de2-476b-b913-5798de77bbdf",
+ "name": "Mailjet Mail",
+ "dockerRepository": "airbyte/source-mailjet-mail",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailjet-mail",
+ "icon": "mailjetmail.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailjet-mail",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Mailjet Mail Spec",
+ "type": "object",
+ "required": [ "api_key", "api_key_secret" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Your API Key. See here."
+ },
+ "api_key_secret": {
+ "title": "API Secret Key",
+ "type": "string",
+ "description": "Your API Secret Key. See here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "6ec2acea-7fd1-4378-b403-41a666e0c028",
+ "name": "Mailjet SMS",
+ "dockerRepository": "airbyte/source-mailjet-sms",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailjet-sms",
+ "icon": "mailjetsms.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailjet-sms",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Mailjet Sms Spec",
+ "type": "object",
+ "required": [ "token" ],
+ "additionalProperties": true,
+ "properties": {
+ "token": {
+ "title": "Access Token",
+ "type": "string",
+ "description": "Your access token. See here.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "title": "Start date",
+ "type": "integer",
+ "description": "Retrieve SMS messages created after the specified timestamp. Required format - Unix timestamp.",
+ "pattern": "^[0-9]*$",
+ "examples": [ 1666261656 ]
+ },
+ "end_date": {
+ "title": "End date",
+ "type": "integer",
+ "description": "Retrieve SMS messages created before the specified timestamp. Required format - Unix timestamp.",
+ "pattern": "^[0-9]*$",
+ "examples": [ 1666281656 ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "dc3b9003-2432-4e93-a7f4-4620b0f14674",
+ "name": "MailerLite",
+ "dockerRepository": "airbyte/source-mailerlite",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailerlite",
+ "icon": "mailerlite.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailerlite",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Mailerlite Spec",
+ "type": "object",
+ "required": [ "api_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "description": "Your API Token. See here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "2707d529-3c04-46eb-9c7e-40d4038df6f7",
+ "name": "MailerSend",
+ "dockerRepository": "airbyte/source-mailersend",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailersend",
+ "icon": "mailersend.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailersend",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Mailersend Spec",
+ "type": "object",
+ "required": [ "api_token", "domain_id" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "description": "Your API Token. See here.",
+ "airbyte_secret": true
+ },
+ "domain_id": {
+ "type": "string",
+ "description": "The domain entity in mailersend",
+ "examples": [ "airbyte.com", "linkana.com" ]
+ },
+ "start_date": {
+ "type": "number",
+ "description": "Timestamp is assumed to be UTC.",
+ "examples": [ 123131321 ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "5b9cb09e-1003-4f9c-983d-5779d1b2cd51",
+ "name": "Mailgun",
+ "dockerRepository": "airbyte/source-mailgun",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailgun",
+ "icon": "mailgun.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailgun",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Mailgun Spec",
+ "type": "object",
+ "required": [ "private_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "private_key": {
+ "type": "string",
+ "airbyte_secret": true,
+ "description": "Primary account API key to access your Mailgun data.",
+ "title": "Private API Key"
+ },
+ "domain_region": {
+ "type": "string",
+ "description": "Domain region code. 'EU' or 'US' are possible values. The default is 'US'.",
+ "title": "Domain Region Code"
+ },
+ "start_date": {
+ "title": "Replication Start Date",
+ "description": "UTC date and time in the format 2020-10-01 00:00:00. Any data before this date will not be replicated. If omitted, defaults to 3 days ago.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$",
+ "examples": [ "2020-10-01 00:00:00" ],
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "9e0556f4-69df-4522-a3fb-03264d36b348",
+ "name": "Marketo",
+ "dockerRepository": "airbyte/source-marketo",
+ "dockerImageTag": "1.0.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/marketo",
+ "icon": "marketo.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/marketo",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Marketo Spec",
+ "type": "object",
+ "required": [ "domain_url", "client_id", "client_secret", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "domain_url": {
+ "title": "Domain URL",
+ "type": "string",
+ "order": 3,
+ "description": "Your Marketo Base URL. See the docs for info on how to obtain this.",
+ "examples": [ "https://000-AAA-000.mktorest.com" ],
+ "airbyte_secret": true
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Marketo developer application. See the docs for info on how to obtain this.",
+ "order": 0,
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Marketo developer application. See the docs for info on how to obtain this.",
+ "order": 1,
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "order": 2,
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": [ "2020-09-25T00:00:00Z" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "*.mktorest.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "c7cb421b-942e-4468-99ee-e369bcabaec5",
+ "name": "Metabase",
+ "dockerRepository": "airbyte/source-metabase",
+ "dockerImageTag": "0.3.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/metabase",
+ "icon": "metabase.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/metabase",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Metabase Source Spec",
+ "type": "object",
+ "required": [ "instance_api_url" ],
+ "additionalProperties": true,
+ "properties": {
+ "instance_api_url": {
+ "type": "string",
+ "title": "Metabase Instance API URL",
+ "description": "URL to your metabase instance API",
+ "examples": [ "https://localhost:3000/api/" ],
+ "pattern": "^https://",
+ "order": 0
+ },
+ "username": {
+ "type": "string",
+ "order": 1
+ },
+ "password": {
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "session_token": {
+ "type": "string",
+ "description": "To generate your session token, you need to run the following command: ``` curl -X POST \\\n -H \"Content-Type: application/json\" \\\n -d '{\"username\": \"person@metabase.com\", \"password\": \"fakepassword\"}' \\\n http://localhost:3000/api/session\n``` Then copy the value of the `id` field returned by a successful call to that API.\nNote that by default, sessions are good for 14 days and needs to be regenerated.",
+ "airbyte_secret": true,
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta"
+ }, {
+ "sourceDefinitionId": "b5ea17b1-f170-46dc-bc31-cc744ca984c1",
+ "name": "Microsoft SQL Server (MSSQL)",
+ "dockerRepository": "airbyte/source-mssql",
+ "dockerImageTag": "1.0.14",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mssql",
+ "icon": "mssql.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mssql",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "MSSQL Source Spec",
+ "type": "object",
+ "required": [ "host", "port", "database", "username" ],
+ "properties": {
+ "host": {
+ "description": "The hostname of the database.",
+ "title": "Host",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "description": "The port of the database.",
+ "title": "Port",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "examples": [ "1433" ],
+ "order": 1
+ },
+ "database": {
+ "description": "The name of the database.",
+ "title": "Database",
+ "type": "string",
+ "examples": [ "master" ],
+ "order": 2
+ },
+ "schemas": {
+ "title": "Schemas",
+ "description": "The list of schemas to sync from. Defaults to user. Case sensitive.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 0,
+ "uniqueItems": true,
+ "default": [ "dbo" ],
+ "order": 3
+ },
+ "username": {
+ "description": "The username which is used to access the database.",
+ "title": "Username",
+ "type": "string",
+ "order": 4
+ },
+ "password": {
+ "description": "The password associated with the username.",
+ "title": "Password",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 5
+ },
+ "jdbc_url_params": {
+ "title": "JDBC URL Params",
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "type": "string",
+ "order": 6
+ },
+ "ssl_method": {
+ "title": "SSL Method",
+ "type": "object",
+ "description": "The encryption method which is used when communicating with the database.",
+ "order": 7,
+ "oneOf": [ {
+ "title": "Unencrypted",
+ "description": "Data transfer will not be encrypted.",
+ "required": [ "ssl_method" ],
+ "properties": {
+ "ssl_method": {
+ "type": "string",
+ "const": "unencrypted"
+ }
+ }
+ }, {
+ "title": "Encrypted (trust server certificate)",
+ "description": "Use the certificate provided by the server without verification. (For testing purposes only!)",
+ "required": [ "ssl_method" ],
+ "properties": {
+ "ssl_method": {
+ "type": "string",
+ "const": "encrypted_trust_server_certificate"
+ }
+ }
+ }, {
+ "title": "Encrypted (verify certificate)",
+ "description": "Verify and use the certificate provided by the server.",
+ "required": [ "ssl_method", "trustStoreName", "trustStorePassword" ],
+ "properties": {
+ "ssl_method": {
+ "type": "string",
+ "const": "encrypted_verify_certificate"
+ },
+ "hostNameInCertificate": {
+ "title": "Host Name In Certificate",
+ "type": "string",
+ "description": "Specifies the host name of the server. The value of this property must match the subject property of the certificate.",
+ "order": 7
+ }
+ }
+ } ]
+ },
+ "replication_method": {
+ "type": "object",
+ "title": "Replication Method",
+ "description": "The replication method used for extracting data from the database. STANDARD replication requires no setup on the DB side but will not be able to represent deletions incrementally. CDC uses {TBC} to detect inserts, updates, and deletes. This needs to be configured on the source database itself.",
+ "default": "STANDARD",
+ "order": 8,
+ "oneOf": [ {
+ "title": "Standard",
+ "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.",
+ "required": [ "method" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "STANDARD",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "Logical Replication (CDC)",
+ "description": "CDC uses {TBC} to detect inserts, updates, and deletes. This needs to be configured on the source database itself.",
+ "required": [ "method" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "CDC",
+ "order": 0
+ },
+ "data_to_sync": {
+ "title": "Data to Sync",
+ "type": "string",
+ "default": "Existing and New",
+ "enum": [ "Existing and New", "New Changes Only" ],
+ "description": "What data should be synced under the CDC. \"Existing and New\" will read existing data as a snapshot, and sync new changes through CDC. \"New Changes Only\" will skip the initial snapshot, and only sync new changes through CDC.",
+ "order": 1
+ },
+ "snapshot_isolation": {
+ "title": "Initial Snapshot Isolation Level",
+ "type": "string",
+ "default": "Snapshot",
+ "enum": [ "Snapshot", "Read Committed" ],
+ "description": "Existing data in the database are synced through an initial snapshot. This parameter controls the isolation level that will be used during the initial snapshotting. If you choose the \"Snapshot\" level, you must enable the snapshot isolation mode on the database.",
+ "order": 2
+ },
+ "initial_waiting_seconds": {
+ "type": "integer",
+ "title": "Initial Waiting Time in Seconds (Advanced)",
+ "description": "The amount of time the connector will wait when it launches to determine if there is new data to sync or not. Defaults to 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about initial waiting time.",
+ "default": 300,
+ "min": 120,
+ "max": 1200,
+ "order": 3
+ }
+ }
+ } ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [ {
+ "title": "No Tunnel",
+ "required": [ "tunnel_method" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "SSH Key Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Password Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
+ }
+ }, {
+ "sourceDefinitionId": "eaf50f04-21dd-4620-913b-2a83f5635227",
+ "name": "Microsoft teams",
+ "dockerRepository": "airbyte/source-microsoft-teams",
+ "dockerImageTag": "0.2.5",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/microsoft-teams",
+ "icon": "microsoft-teams.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/microsoft-teams",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Microsoft Teams Spec",
+ "type": "object",
+ "required": [ "period" ],
+ "additionalProperties": true,
+ "properties": {
+ "period": {
+ "type": "string",
+ "title": "Period",
+ "description": "Specifies the length of time over which the Team Device Report stream is aggregated. The supported values are: D7, D30, D90, and D180.",
+ "examples": [ "D7" ]
+ },
+ "credentials": {
+ "title": "Authentication mechanism",
+ "description": "Choose how to authenticate to Microsoft",
+ "type": "object",
+ "oneOf": [ {
+ "type": "object",
+ "title": "Authenticate via Microsoft (OAuth 2.0)",
+ "required": [ "tenant_id", "client_id", "client_secret", "refresh_token" ],
+ "additionalProperties": false,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client",
+ "enum": [ "Client" ],
+ "default": "Client",
+ "order": 0
+ },
+ "tenant_id": {
+ "title": "Directory (tenant) ID",
+ "type": "string",
+ "description": "A globally unique identifier (GUID) that is different than your organization name or domain. Follow these steps to obtain: open one of the Teams where you belong inside the Teams Application -> Click on the … next to the Team title -> Click on Get link to team -> Copy the link to the team and grab the tenant ID form the URL"
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Microsoft Teams developer application."
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Microsoft Teams developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "A Refresh Token to renew the expired Access Token.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "Authenticate via Microsoft",
+ "required": [ "tenant_id", "client_id", "client_secret" ],
+ "additionalProperties": false,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Token",
+ "enum": [ "Token" ],
+ "default": "Token",
+ "order": 0
+ },
+ "tenant_id": {
+ "title": "Directory (tenant) ID",
+ "type": "string",
+ "description": "A globally unique identifier (GUID) that is different than your organization name or domain. Follow these steps to obtain: open one of the Teams where you belong inside the Teams Application -> Click on the … next to the Team title -> Click on Get link to team -> Copy the link to the team and grab the tenant ID form the URL"
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Microsoft Teams developer application."
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Microsoft Teams developer application.",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "auth_type" ],
+ "predicate_value": "Client",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "tenant_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "tenant_id" ]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "refresh_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "9220e3de-3b60-4bb2-a46f-046d59ea235a",
+ "name": "Microsoft Dataverse",
+ "dockerRepository": "airbyte/source-microsoft-dataverse",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/microsoft-dataverse",
+ "icon": "microsoftdataverse.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/microsoft-dataverse",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Microsoft Dataverse Spec",
+ "type": "object",
+ "required": [ "url", "tenant_id", "client_id", "client_secret_value" ],
+ "additionalProperties": true,
+ "properties": {
+ "url": {
+ "type": "string",
+ "description": "URL to Microsoft Dataverse API",
+ "title": "URL",
+ "examples": [ "https://.crm.dynamics.com" ],
+ "order": 0
+ },
+ "tenant_id": {
+ "type": "string",
+ "description": "Tenant Id of your Microsoft Dataverse Instance",
+ "title": "Tenant Id",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "client_id": {
+ "type": "string",
+ "description": "App Registration Client Id",
+ "title": "Client Id",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "client_secret_value": {
+ "type": "string",
+ "description": "App Registration Client Secret",
+ "title": "Client Secret",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "odata_maxpagesize": {
+ "type": "integer",
+ "description": "Max number of results per page. Default=5000",
+ "title": "Max page size",
+ "default": 5000,
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "12928b32-bf0a-4f1e-964f-07e12e37153a",
+ "name": "Mixpanel",
+ "dockerRepository": "airbyte/source-mixpanel",
+ "dockerImageTag": "0.1.31",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mixpanel",
+ "icon": "mixpanel.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mixpanel",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Mixpanel Spec",
+ "type": "object",
+ "properties": {
+ "credentials": {
+ "title": "Authentication *",
+ "description": "Choose how to authenticate to Mixpanel",
+ "type": "object",
+ "order": 0,
+ "oneOf": [ {
+ "type": "object",
+ "title": "Service Account",
+ "required": [ "username", "secret" ],
+ "properties": {
+ "option_title": {
+ "type": "string",
+ "const": "Service Account",
+ "order": 0
+ },
+ "username": {
+ "order": 1,
+ "title": "Username",
+ "type": "string",
+ "description": "Mixpanel Service Account Username. See the docs for more information on how to obtain this."
+ },
+ "secret": {
+ "order": 2,
+ "title": "Secret",
+ "type": "string",
+ "description": "Mixpanel Service Account Secret. See the docs for more information on how to obtain this.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "Project Secret",
+ "required": [ "api_secret" ],
+ "properties": {
+ "option_title": {
+ "type": "string",
+ "const": "Project Secret",
+ "order": 0
+ },
+ "api_secret": {
+ "order": 1,
+ "title": "Project Secret",
+ "type": "string",
+ "description": "Mixpanel project secret. See the docs for more information on how to obtain this.",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ },
+ "project_id": {
+ "order": 1,
+ "title": "Project ID",
+ "description": "Your project ID number. See the docs for more information on how to obtain this.",
+ "type": "integer"
+ },
+ "attribution_window": {
+ "order": 2,
+ "title": "Attribution Window",
+ "type": "integer",
+ "description": " A period of time for attributing results to ads and the lookback period after those actions occur during which ad results are counted. Default attribution window is 5 days.",
+ "default": 5
+ },
+ "project_timezone": {
+ "order": 3,
+ "title": "Project Timezone",
+ "type": "string",
+ "description": "Time zone in which integer date times are stored. The project timezone may be found in the project settings in the Mixpanel console.",
+ "default": "US/Pacific",
+ "examples": [ "US/Pacific", "UTC" ]
+ },
+ "select_properties_by_default": {
+ "order": 4,
+ "title": "Select Properties By Default",
+ "type": "boolean",
+ "description": "Setting this config parameter to TRUE ensures that new properties on events and engage records are captured. Otherwise new properties will be ignored.",
+ "default": true
+ },
+ "start_date": {
+ "order": 5,
+ "title": "Start Date",
+ "type": "string",
+ "description": "The date in the format YYYY-MM-DD. Any data before this date will not be replicated. If this option is not set, the connector will replicate data from up to one year ago by default.",
+ "examples": [ "2021-11-16" ],
+ "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}Z)?$",
+ "format": "date-time"
+ },
+ "end_date": {
+ "order": 6,
+ "title": "End Date",
+ "type": "string",
+ "description": "The date in the format YYYY-MM-DD. Any data after this date will not be replicated. Left empty to always sync to most recent date",
+ "examples": [ "2021-11-16" ],
+ "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}Z)?$",
+ "format": "date-time"
+ },
+ "region": {
+ "order": 7,
+ "title": "Region",
+ "description": "The region of mixpanel domain instance either US or EU.",
+ "type": "string",
+ "enum": [ "US", "EU" ],
+ "default": "US"
+ },
+ "date_window_size": {
+ "order": 8,
+ "title": "Date slicing window",
+ "description": "Defines window size in days, that used to slice through data. You can reduce it, if amount of data in each window is too big for your environment.",
+ "type": "integer",
+ "minimum": 1,
+ "default": 30
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "mixpanel.com", "eu.mixpanel.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "80a54ea2-9959-4040-aac1-eee42423ec9b",
+ "name": "Monday",
+ "dockerRepository": "airbyte/source-monday",
+ "dockerImageTag": "0.2.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/monday",
+ "icon": "monday.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/monday",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Monday Spec",
+ "type": "object",
+ "required": [ ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "oneOf": [ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [ "auth_type", "client_id", "client_secret", "access_token" ],
+ "properties": {
+ "subdomain": {
+ "type": "string",
+ "title": "Subdomain/Slug",
+ "description": "Slug/subdomain of the account, or the first part of the URL that comes before .monday.com",
+ "default": "",
+ "order": 0
+ },
+ "auth_type": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 1
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "API Token",
+ "required": [ "auth_type", "api_token" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "api_token",
+ "order": 0
+ },
+ "api_token": {
+ "type": "string",
+ "title": "Personal API Token",
+ "description": "API Token for making authenticated requests.",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "auth_type" ],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "subdomain": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "subdomain" ]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "access_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "api.monday.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "b2e713cd-cc36-4c0a-b5bd-b47cb8a0561e",
+ "name": "MongoDb",
+ "dockerRepository": "airbyte/source-mongodb-v2",
+ "dockerImageTag": "0.1.19",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mongodb-v2",
+ "icon": "mongodb.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mongodb-v2",
+ "changelogUrl": "https://docs.airbyte.com/integrations/sources/mongodb-v2",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "MongoDb Source Spec",
+ "type": "object",
+ "required": [ "database" ],
+ "additionalProperties": true,
+ "properties": {
+ "instance_type": {
+ "type": "object",
+ "title": "MongoDb Instance Type",
+ "description": "The MongoDb instance to connect to. For MongoDB Atlas and Replica Set TLS connection is used by default.",
+ "order": 0,
+ "oneOf": [ {
+ "title": "Standalone MongoDb Instance",
+ "required": [ "instance", "host", "port" ],
+ "properties": {
+ "instance": {
+ "type": "string",
+ "enum": [ "standalone" ],
+ "default": "standalone"
+ },
+ "host": {
+ "title": "Host",
+ "type": "string",
+ "description": "The host name of the Mongo database.",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "type": "integer",
+ "description": "The port of the Mongo database.",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 27017,
+ "examples": [ "27017" ],
+ "order": 1
+ },
+ "tls": {
+ "title": "TLS Connection",
+ "type": "boolean",
+ "description": "Indicates whether TLS encryption protocol will be used to connect to MongoDB. It is recommended to use TLS connection if possible. For more information see documentation.",
+ "default": false,
+ "order": 2
+ }
+ }
+ }, {
+ "title": "Replica Set",
+ "required": [ "instance", "server_addresses" ],
+ "properties": {
+ "instance": {
+ "type": "string",
+ "enum": [ "replica" ],
+ "default": "replica"
+ },
+ "server_addresses": {
+ "title": "Server Addresses",
+ "type": "string",
+ "description": "The members of a replica set. Please specify `host`:`port` of each member separated by comma.",
+ "examples": [ "host1:27017,host2:27017,host3:27017" ],
+ "order": 0
+ },
+ "replica_set": {
+ "title": "Replica Set",
+ "type": "string",
+ "description": "A replica set in MongoDB is a group of mongod processes that maintain the same data set.",
+ "order": 1
+ }
+ }
+ }, {
+ "title": "MongoDB Atlas",
+ "additionalProperties": false,
+ "required": [ "instance", "cluster_url" ],
+ "properties": {
+ "instance": {
+ "type": "string",
+ "enum": [ "atlas" ],
+ "default": "atlas"
+ },
+ "cluster_url": {
+ "title": "Cluster URL",
+ "type": "string",
+ "description": "The URL of a cluster to connect to.",
+ "order": 0
+ }
+ }
+ } ]
+ },
+ "database": {
+ "title": "Database Name",
+ "type": "string",
+ "description": "The database you want to replicate.",
+ "order": 1
+ },
+ "user": {
+ "title": "User",
+ "type": "string",
+ "description": "The username which is used to access the database.",
+ "order": 2
+ },
+ "password": {
+ "title": "Password",
+ "type": "string",
+ "description": "The password associated with this username.",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "auth_source": {
+ "title": "Authentication Source",
+ "type": "string",
+ "description": "The authentication source where the user information is stored.",
+ "default": "admin",
+ "examples": [ "admin" ],
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "722ba4bf-06ec-45a4-8dd5-72e4a5cf3903",
+ "name": "My Hours",
+ "dockerRepository": "airbyte/source-my-hours",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/my-hours",
+ "icon": "my-hours.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/my-hours",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "My Hours Spec",
+ "type": "object",
+ "required": [ "email", "password", "start_date" ],
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "title": "Email",
+ "type": "string",
+ "description": "Your My Hours username",
+ "example": "john@doe.com"
+ },
+ "password": {
+ "title": "Password",
+ "type": "string",
+ "description": "The password associated to the username",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "Start date for collecting time logs",
+ "examples": [ "%Y-%m-%d", "2016-01-01" ],
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
+ },
+ "logs_batch_size": {
+ "title": "Time logs batch size",
+ "description": "Pagination size used for retrieving logs in days",
+ "examples": [ 30 ],
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 365,
+ "default": 30
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "435bb9a5-7887-4809-aa58-28c27df0d7ad",
+ "name": "MySQL",
+ "dockerRepository": "airbyte/source-mysql",
+ "dockerImageTag": "2.0.18",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mysql",
+ "icon": "mysql.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mysql",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "MySql Source Spec",
+ "type": "object",
+ "required": [ "host", "port", "database", "username", "replication_method" ],
+ "properties": {
+ "host": {
+ "description": "The host name of the database.",
+ "title": "Host",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "description": "The port to connect to.",
+ "title": "Port",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 3306,
+ "examples": [ "3306" ],
+ "order": 1
+ },
+ "database": {
+ "description": "The database name.",
+ "title": "Database",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "description": "The username which is used to access the database.",
+ "title": "Username",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "description": "The password associated with the username.",
+ "title": "Password",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
+ "title": "JDBC URL Parameters (Advanced)",
+ "type": "string",
+ "order": 5
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL.",
+ "type": "boolean",
+ "default": true,
+ "order": 6
+ },
+ "ssl_mode": {
+ "title": "SSL modes",
+ "description": "SSL connection modes. Read more in the docs.",
+ "type": "object",
+ "order": 7,
+ "oneOf": [ {
+ "title": "preferred",
+ "description": "Automatically attempt SSL connection. If the MySQL server does not support SSL, continue with a regular connection.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "preferred",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "required",
+ "description": "Always connect with SSL. If the MySQL server doesn’t support SSL, the connection will not be established. Certificate Authority (CA) and Hostname are not verified.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "required",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "Verify CA",
+ "description": "Always connect with SSL. Verifies CA, but allows connection even if Hostname does not match.",
+ "required": [ "mode", "ca_certificate" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify_ca",
+ "order": 0
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ },
+ "client_certificate": {
+ "type": "string",
+ "title": "Client certificate",
+ "description": "Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 2,
+ "always_show": true
+ },
+ "client_key": {
+ "type": "string",
+ "title": "Client key",
+ "description": "Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 3,
+ "always_show": true
+ },
+ "client_key_password": {
+ "type": "string",
+ "title": "Client key password",
+ "description": "Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Verify Identity",
+ "description": "Always connect with SSL. Verify both CA and Hostname.",
+ "required": [ "mode", "ca_certificate" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify_identity",
+ "order": 0
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ },
+ "client_certificate": {
+ "type": "string",
+ "title": "Client certificate",
+ "description": "Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 2,
+ "always_show": true
+ },
+ "client_key": {
+ "type": "string",
+ "title": "Client key",
+ "description": "Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 3,
+ "always_show": true
+ },
+ "client_key_password": {
+ "type": "string",
+ "title": "Client key password",
+ "description": "Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ },
+ "replication_method": {
+ "type": "object",
+ "title": "Replication Method",
+ "description": "Replication method to use for extracting data from the database.",
+ "order": 8,
+ "oneOf": [ {
+ "title": "Standard",
+ "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.",
+ "required": [ "method" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "STANDARD",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "Logical Replication (CDC)",
+ "description": "CDC uses the Binlog to detect inserts, updates, and deletes. This needs to be configured on the source database itself.",
+ "required": [ "method" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "CDC",
+ "order": 0
+ },
+ "initial_waiting_seconds": {
+ "type": "integer",
+ "title": "Initial Waiting Time in Seconds (Advanced)",
+ "description": "The amount of time the connector will wait when it launches to determine if there is new data to sync or not. Defaults to 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about initial waiting time.",
+ "default": 300,
+ "min": 120,
+ "max": 1200,
+ "order": 1
+ },
+ "server_time_zone": {
+ "type": "string",
+ "title": "Configured server timezone for the MySQL source (Advanced)",
+ "description": "Enter the configured MySQL server timezone. This should only be done if the configured timezone in your MySQL instance does not conform to IANNA standard.",
+ "order": 2
+ }
+ }
+ } ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [ {
+ "title": "No Tunnel",
+ "required": [ "tunnel_method" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "SSH Key Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Password Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
+ }
+ }, {
+ "sourceDefinitionId": "4a961f66-5e99-4430-8320-a73afe52f7a2",
+ "name": "n8n",
+ "dockerRepository": "airbyte/source-n8n",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/n8n",
+ "icon": "n8n.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/n8n",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "N8n Spec",
+ "type": "object",
+ "required": [ "host", "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "type": "string",
+ "description": "Hostname of the n8n instance"
+ },
+ "api_key": {
+ "type": "string",
+ "description": "Your API KEY. See here"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "1a8667d7-7978-43cd-ba4d-d32cbd478971",
+ "name": "NASA",
+ "dockerRepository": "airbyte/source-nasa",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/nasa",
+ "icon": "nasa.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/nasa-apod",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "NASA spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API access key used to retrieve data from the NASA APOD API.",
+ "airbyte_secret": true
+ },
+ "concept_tags": {
+ "type": "boolean",
+ "default": false,
+ "description": "Indicates whether concept tags should be returned with the rest of the response. The concept tags are not necessarily included in the explanation, but rather derived from common search tags that are associated with the description text. (Better than just pure text search.) Defaults to False."
+ },
+ "count": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 100,
+ "description": "A positive integer, no greater than 100. If this is specified then `count` randomly chosen images will be returned in a JSON array. Cannot be used in conjunction with `date` or `start_date` and `end_date`."
+ },
+ "start_date": {
+ "type": "string",
+ "description": "Indicates the start of a date range. All images in the range from `start_date` to `end_date` will be returned in a JSON array. Must be after 1995-06-16, the first day an APOD picture was posted. There are no images for tomorrow available through this API.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": [ "2022-10-20" ],
+ "format": "date"
+ },
+ "end_date": {
+ "type": "string",
+ "description": "Indicates that end of a date range. If `start_date` is specified without an `end_date` then `end_date` defaults to the current date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": [ "2022-10-20" ],
+ "format": "date"
+ },
+ "thumbs": {
+ "type": "boolean",
+ "default": false,
+ "description": "Indicates whether the API should return a thumbnail image URL for video files. If set to True, the API returns URL of video thumbnail. If an APOD is not a video, this parameter is ignored."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "api.nasa.gov" ]
+ }
+ }, {
+ "sourceDefinitionId": "4f2f093d-ce44-4121-8118-9d13b7bfccd0",
+ "name": "Netsuite",
+ "dockerRepository": "airbyte/source-netsuite",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/netsuite",
+ "icon": "netsuite.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Netsuite Spec",
+ "type": "object",
+ "required": [ "realm", "consumer_key", "consumer_secret", "token_key", "token_secret", "start_datetime" ],
+ "additionalProperties": true,
+ "properties": {
+ "realm": {
+ "type": "string",
+ "title": "Realm (Account Id)",
+ "description": "Netsuite realm e.g. 2344535, as for `production` or 2344535_SB1, as for the `sandbox`",
+ "order": 0,
+ "airbyte_secret": true
+ },
+ "consumer_key": {
+ "type": "string",
+ "title": "Consumer Key",
+ "description": "Consumer key associated with your integration",
+ "order": 1,
+ "airbyte_secret": true
+ },
+ "consumer_secret": {
+ "type": "string",
+ "title": "Consumer Secret",
+ "description": "Consumer secret associated with your integration",
+ "order": 2,
+ "airbyte_secret": true
+ },
+ "token_key": {
+ "type": "string",
+ "title": "Token Key (Token Id)",
+ "description": "Access token key",
+ "order": 3,
+ "airbyte_secret": true
+ },
+ "token_secret": {
+ "type": "string",
+ "title": "Token Secret",
+ "description": "Access token secret",
+ "order": 4,
+ "airbyte_secret": true
+ },
+ "object_types": {
+ "type": "array",
+ "title": "Object Types",
+ "items": {
+ "type": "string"
+ },
+ "description": "The API names of the Netsuite objects you want to sync. Setting this speeds up the connection setup process by limiting the number of schemas that need to be retrieved from Netsuite.",
+ "order": 5,
+ "examples": [ "customer", "salesorder", "etc" ],
+ "default": [ ]
+ },
+ "start_datetime": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "Starting point for your data replication, in format of \"YYYY-MM-DDTHH:mm:ssZ\"",
+ "order": 6,
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2017-01-25T00:00:00Z" ]
+ },
+ "window_in_days": {
+ "type": "integer",
+ "title": "Window in Days",
+ "description": "The amount of days used to query the data with date chunks. Set smaller value, if you have lots of data.",
+ "order": 7,
+ "default": 30
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "df38991e-f35b-4af2-996d-36817f614587",
+ "name": "News API",
+ "dockerRepository": "airbyte/source-news-api",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/news-api",
+ "icon": "newsapi.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/news-api",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "News Api Spec",
+ "type": "object",
+ "required": [ "api_key", "country", "category", "sort_by" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "search_query": {
+ "type": "string",
+ "description": "Search query. See https://newsapi.org/docs/endpoints/everything for \ninformation.\n",
+ "examples": [ "+bitcoin OR +crypto", "sunak AND (truss OR johnson)" ],
+ "order": 1
+ },
+ "search_in": {
+ "type": "array",
+ "description": "Where to apply search query. Possible values are: title, description,\ncontent.\n",
+ "items": {
+ "type": "string",
+ "enum": [ "title", "description", "content" ]
+ },
+ "order": 2
+ },
+ "sources": {
+ "type": "array",
+ "description": "Identifiers (maximum 20) for the news sources or blogs you want\nheadlines from. Use the `/sources` endpoint to locate these\nprogrammatically or look at the sources index:\nhttps://newsapi.com/sources. Will override both country and category.\n",
+ "items": {
+ "type": "string"
+ },
+ "order": 3
+ },
+ "domains": {
+ "type": "array",
+ "description": "A comma-seperated string of domains (eg bbc.co.uk, techcrunch.com,\nengadget.com) to restrict the search to.\n",
+ "items": {
+ "type": "string"
+ },
+ "order": 4
+ },
+ "exclude_domains": {
+ "type": "array",
+ "description": "A comma-seperated string of domains (eg bbc.co.uk, techcrunch.com,\nengadget.com) to remove from the results.\n",
+ "items": {
+ "type": "string"
+ },
+ "order": 5
+ },
+ "start_date": {
+ "type": "string",
+ "description": "A date and optional time for the oldest article allowed. This should\nbe in ISO 8601 format (e.g. 2021-01-01 or 2021-01-01T12:00:00).\n",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2})?$",
+ "order": 6
+ },
+ "end_date": {
+ "type": "string",
+ "description": "A date and optional time for the newest article allowed. This should\nbe in ISO 8601 format (e.g. 2021-01-01 or 2021-01-01T12:00:00).\n",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2})?$",
+ "order": 7
+ },
+ "language": {
+ "type": "string",
+ "description": "The 2-letter ISO-639-1 code of the language you want to get headlines\nfor. Possible options: ar de en es fr he it nl no pt ru se ud zh.\n",
+ "enum": [ "ar", "de", "en", "es", "fr", "he", "it", "nl", false, "pt", "ru", "se", "ud", "zh" ],
+ "order": 8
+ },
+ "country": {
+ "type": "string",
+ "description": "The 2-letter ISO 3166-1 code of the country you want to get headlines\nfor. You can't mix this with the sources parameter.\n",
+ "enum": [ "ae", "ar", "at", "au", "be", "bg", "br", "ca", "ch", "cn", "co", "cu", "cz", "de", "eg", "fr", "gb", "gr", "hk", "hu", "id", "ie", "il", "in", "it", "jp", "kr", "lt", "lv", "ma", "mx", "my", "ng", "nl", false, "nz", "ph", "pl", "pt", "ro", "rs", "ru", "sa", "se", "sg", "si", "sk", "th", "tr", "tw", "ua", "us", "ve", "za" ],
+ "default": "us",
+ "order": 9
+ },
+ "category": {
+ "type": "string",
+ "description": "The category you want to get top headlines for.",
+ "enum": [ "business", "entertainment", "general", "health", "science", "sports", "technology" ],
+ "default": "business",
+ "order": 10
+ },
+ "sort_by": {
+ "type": "string",
+ "description": "The order to sort the articles in. Possible options: relevancy,\npopularity, publishedAt.\n",
+ "enum": [ "relevancy", "popularity", "publishedAt" ],
+ "default": "publishedAt",
+ "order": 11
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "60bd11d8-2632-4daa-a688-b47336d32093",
+ "name": "Newsdata",
+ "dockerRepository": "airbyte/source-newsdata",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/newsdata",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/newsdata",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Newsdata Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "OneOf": {
+ "query": {
+ "type": "string",
+ "description": "Keywords or phrases to search for in the news title and content. Advanced Search options:\n - Search `Social`: query = \"social\"\n - Search `Social Pizza`: query = \"social pizza\"\n - Search `Social` but not with `pizza`: query = \"social -pizza\"\n - Search `Social` but not with `pizza` and `wildfire`: query = \"social -pizza -wildfire\"\n - Search `Social` and `pizza`: query = \"social AND pizza\"\n - Search `Social` and `pizza` and `pasta`: query = \"social AND pizza AND pasta\"\n - Search `Social` or `pizza`: query = \"social OR pizza\"\n - Search `Social` or `pizza` but not `pasta`: query = \"social OR pizza -pasta\"\n - Search `Social` or `pizza` or `pasta`: query = \"social OR pizza OR pasta\"\nNote: You can't use AND and OR in the same query.",
+ "order": 1
+ },
+ "query_in_title": {
+ "type": "string",
+ "description": "Same as `query`, but restricting the search to only the news title. It cannot be used along with `query`.",
+ "order": 1
+ }
+ },
+ "domain": {
+ "type": "array",
+ "description": "Domains (maximum 5) to restrict the search to. Use the sources stream to find top sources id.",
+ "maxitems": 5,
+ "items": {
+ "type": "string"
+ },
+ "order": 2
+ },
+ "country": {
+ "type": "array",
+ "description": "2-letter ISO 3166-1 countries (maximum 5) to restrict the search to.",
+ "maxitems": 5,
+ "order": 3,
+ "items": {
+ "type": "string",
+ "enum": [ "ar", "au", "at", "bd", "by", "be", "br", "bg", "ca", "cl", "cn", "co", "cr", "cu", "cz", "dk", "do", "ec", "eg", "ee", "et", "fi", "fr", "de", "gr", "hk", "hu", "in", "id", "iq", "ie", "il", "it", "jp", "kz", "kw", "lv", "lb", "lt", "my", "mx", "ma", "mm", "nl", "nz", "ng", "kp", "no", "pk", "pe", "ph", "pl", "pt", "pr", "ro", "ru", "sa", "rs", "sg", "sk", "si", "za", "kr", "es", "se", "ch", "tw", "tz", "th", "tr", "ua", "ae", "gb", "us", "ve", "vi" ]
+ }
+ },
+ "category": {
+ "type": "array",
+ "description": "Categories (maximum 5) to restrict the search to.",
+ "maxitems": 5,
+ "order": 4,
+ "items": {
+ "type": "string",
+ "enum": [ "business", "entertainment", "environment", "food", "health", "politics", "science", "sports", "technology", "top", "world" ]
+ }
+ },
+ "language": {
+ "type": "array",
+ "description": "Languages (maximum 5) to restrict the search to.",
+ "maxitems": 5,
+ "order": 5,
+ "items": {
+ "type": "string",
+ "enum": [ "be", "am", "ar", "bn", "bs", "bg", "my", "ckb", "zh", "hr", "cs", "da", "nl", "en", "et", "fi", "fr", "de", "el", "he", "hi", "hu", "in", "it", "jp", "ko", "lv", "lt", "ms", "no", "pl", "pt", "ro", "ru", "sr", "sk", "sl", "es", "sw", "sv", "th", "tr", "uk", "ur", "vi" ]
+ }
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "6e00b415-b02e-4160-bf02-58176a0ae687",
+ "name": "Notion",
+ "dockerRepository": "airbyte/source-notion",
+ "dockerImageTag": "1.0.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/notion",
+ "icon": "notion.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/notion",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Notion Source Spec",
+ "type": "object",
+ "required": [ "start_date" ],
+ "properties": {
+ "start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00.000Z. Any data before this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
+ "examples": [ "2020-11-16T00:00:00.000Z" ],
+ "type": "string",
+ "format": "date-time"
+ },
+ "credentials": {
+ "title": "Authenticate using",
+ "description": "Pick an authentication method.",
+ "type": "object",
+ "order": 1,
+ "oneOf": [ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [ "auth_type", "client_id", "client_secret", "access_token" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "OAuth2.0"
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The ClientID of your Notion integration.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The ClientSecret of your Notion integration.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "title": "Access Token",
+ "type": "string",
+ "description": "Access Token is a token you received by complete the OauthWebFlow of Notion.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "Access Token",
+ "required": [ "auth_type", "token" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "token"
+ },
+ "token": {
+ "title": "Access Token",
+ "description": "Notion API access token, see the docs for more information on how to obtain this token.",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ "credentials", "0" ],
+ "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
+ "oauthFlowOutputParameters": [ [ "access_token" ] ]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "api.notion.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "0fae6a9a-04eb-44d4-96e1-e02d3dbc1d83",
+ "name": "New York Times",
+ "dockerRepository": "airbyte/source-nytimes",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/nytimes",
+ "icon": "nytimes.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/nytimes",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Nytimes Spec",
+ "type": "object",
+ "required": [ "api_key", "start_date", "period" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "API Key",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "Start date to begin the article retrieval (format YYYY-MM)",
+ "pattern": "^[0-9]{4}-[0-9]{2}$",
+ "examples": [ "2022-08", "1851-01" ],
+ "format": "date",
+ "order": 1
+ },
+ "end_date": {
+ "type": "string",
+ "title": "End Date",
+ "description": "End date to stop the article retrieval (format YYYY-MM)",
+ "pattern": "^[0-9]{4}-[0-9]{2}$",
+ "examples": [ "2022-08", "1851-01" ],
+ "format": "date",
+ "order": 2
+ },
+ "period": {
+ "type": "integer",
+ "title": "Period (used for Most Popular streams)",
+ "description": "Period of time (in days)",
+ "order": 3,
+ "enum": [ 1, 7, 30 ]
+ },
+ "share_type": {
+ "type": "string",
+ "title": "Share Type (used for Most Popular Shared stream)",
+ "description": "Share Type",
+ "order": 4,
+ "enum": [ "facebook" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "1d4fdb25-64fc-4569-92da-fcdca79a8372",
+ "name": "Okta",
+ "dockerRepository": "airbyte/source-okta",
+ "dockerImageTag": "0.1.14",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/okta",
+ "icon": "okta.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/okta",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Okta Spec",
+ "type": "object",
+ "required": [ ],
+ "additionalProperties": true,
+ "properties": {
+ "domain": {
+ "type": "string",
+ "title": "Okta domain",
+ "description": "The Okta domain. See the docs for instructions on how to find it.",
+ "airbyte_secret": false
+ },
+ "start_date": {
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format YYYY-MM-DDTHH:MM:SSZ. Any data before this date will not be replicated.",
+ "examples": [ "2022-07-22T00:00:00Z" ],
+ "title": "Start Date"
+ },
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "oneOf": [ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [ "auth_type", "client_id", "client_secret", "refresh_token" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "Refresh Token to obtain new Access Token, when it's expired.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "API Token",
+ "required": [ "auth_type", "api_token" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "api_token",
+ "order": 0
+ },
+ "api_token": {
+ "type": "string",
+ "title": "Personal API Token",
+ "description": "An Okta token. See the docs for instructions on how to generate it.",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "e7f0c5e2-4815-48c4-90cf-f47124209835",
+ "name": "Omnisend",
+ "dockerRepository": "airbyte/source-omnisend",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/omnisend",
+ "icon": "omnisend.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/omnisend",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Omnisend Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "bb6afd81-87d5-47e3-97c4-e2c2901b1cf8",
+ "name": "OneSignal",
+ "dockerRepository": "airbyte/source-onesignal",
+ "dockerImageTag": "1.0.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/onesignal",
+ "icon": "onesignal.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/onesignal",
+ "connectionSpecification": {
+ "$schema": "https://json-schema.org/draft-07/schema#",
+ "title": "OneSignal Source Spec",
+ "type": "object",
+ "required": [ "user_auth_key", "start_date", "outcome_names", "applications" ],
+ "additionalProperties": true,
+ "properties": {
+ "user_auth_key": {
+ "type": "string",
+ "title": "User Auth Key",
+ "description": "OneSignal User Auth Key, see the docs for more information on how to obtain this key.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "applications": {
+ "type": "array",
+ "title": "Applications",
+ "description": "Applications keys, see the docs for more information on how to obtain this data",
+ "items": {
+ "type": "object",
+ "properties": {
+ "app_name": {
+ "type": "string",
+ "title": "OneSignal App Name",
+ "order": 0
+ },
+ "app_id": {
+ "type": "string",
+ "title": "OneSignal App ID",
+ "order": 1,
+ "airbyte_secret": true
+ },
+ "app_api_key": {
+ "type": "string",
+ "title": "REST API Key",
+ "order": 2,
+ "airbyte_secret": true
+ }
+ },
+ "required": [ "app_id", "app_api_key" ]
+ },
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for OneSignal API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "examples": [ "2020-11-16T00:00:00Z" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "format": "date-time",
+ "order": 2
+ },
+ "outcome_names": {
+ "type": "string",
+ "title": "Outcome Names",
+ "description": "Comma-separated list of names and the value (sum/count) for the returned outcome data. See the docs for more details",
+ "examples": [ "os__session_duration.count,os__click.count,CustomOutcomeName.sum" ],
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "77d5ca6b-d345-4dce-ba1e-1935a75778b8",
+ "name": "Open Exchange Rates",
+ "dockerRepository": "airbyte/source-open-exchange-rates",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/open-exchange-rates",
+ "icon": "airbyte.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/openexchangesrates",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Open Exchange Rates Spec",
+ "type": "object",
+ "required": [ "app_id", "start_date" ],
+ "properties": {
+ "app_id": {
+ "type": "string",
+ "description": "App ID provided by Open Exchange Rates",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "description": "Start getting data from that date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": [ "YYYY-MM-DD" ]
+ },
+ "base": {
+ "type": "string",
+ "description": "Change base currency (3-letter code, default is USD - only modifiable in paid plans)",
+ "examples": [ "EUR", "USD" ],
+ "default": "USD"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "d8540a80-6120-485d-b7d6-272bca477d9b",
+ "name": "OpenWeather",
+ "dockerRepository": "airbyte/source-openweather",
+ "dockerImageTag": "0.1.6",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/openweather",
+ "icon": "openweather.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Open Weather Spec",
+ "type": "object",
+ "required": [ "appid", "lat", "lon" ],
+ "additionalProperties": true,
+ "properties": {
+ "lat": {
+ "title": "Latitude",
+ "type": "string",
+ "pattern": "^[-]?\\d{1,2}(\\.\\d+)?$",
+ "examples": [ "45.7603", "-21.249107858038816" ],
+ "description": "Latitude for which you want to get weather condition from. (min -90, max 90)"
+ },
+ "lon": {
+ "title": "Longitude",
+ "type": "string",
+ "pattern": "^[-]?\\d{1,3}(\\.\\d+)?$",
+ "examples": [ "4.835659", "-70.39482074115321" ],
+ "description": "Longitude for which you want to get weather condition from. (min -180, max 180)"
+ },
+ "appid": {
+ "title": "App ID",
+ "type": "string",
+ "description": "Your OpenWeather API Key. See here. The key is case sensitive.",
+ "airbyte_secret": true
+ },
+ "units": {
+ "title": "Units",
+ "type": "string",
+ "description": "Units of measurement. standard, metric and imperial units are available. If you do not use the units parameter, standard units will be applied by default.",
+ "enum": [ "standard", "metric", "imperial" ],
+ "examples": [ "standard", "metric", "imperial" ]
+ },
+ "lang": {
+ "title": "Language",
+ "type": "string",
+ "description": "You can use lang parameter to get the output in your language. The contents of the description field will be translated. See here for the list of supported languages.",
+ "enum": [ "af", "al", "ar", "az", "bg", "ca", "cz", "da", "de", "el", "en", "eu", "fa", "fi", "fr", "gl", "he", "hi", "hr", "hu", "id", "it", "ja", "kr", "la", "lt", "mk", "no", "nl", "pl", "pt", "pt_br", "ro", "ru", "sv", "se", "sk", "sl", "sp", "es", "sr", "th", "tr", "ua", "uk", "vi", "zh_cn", "zh_tw", "zu" ],
+ "examples": [ "en", "fr", "pt_br", "uk", "zh_cn", "zh_tw" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "06bdb480-2598-40b8-8b0f-fc2e2d2abdda",
+ "name": "Opsgenie",
+ "dockerRepository": "airbyte/source-opsgenie",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/opsgenie",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Opsgenie Spec",
+ "type": "object",
+ "required": [ "api_token", "endpoint" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "description": "API token used to access the Opsgenie platform",
+ "airbyte_secret": true
+ },
+ "endpoint": {
+ "type": "string",
+ "description": "Service endpoint to use for API calls.",
+ "examples": [ "api.opsgenie.com", "api.eu.opsgenie.com" ],
+ "default": "api.opsgenie.com"
+ },
+ "start_date": {
+ "type": "string",
+ "description": "The date from which you'd like to replicate data from Opsgenie in the format of YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated. Note that it will be used only in the following incremental streams: issues.",
+ "examples": [ "2022-07-01T00:00:00Z" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "b39a7370-74c3-45a6-ac3a-380d48520a83",
+ "name": "Oracle DB",
+ "dockerRepository": "airbyte/source-oracle",
+ "dockerImageTag": "0.3.24",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/oracle",
+ "icon": "oracle.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/oracle",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Oracle Source Spec",
+ "type": "object",
+ "required": [ "host", "port", "username" ],
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 1
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.\nOracle Corporations recommends the following port numbers:\n1521 - Default listening port for client connections to the listener. \n2484 - Recommended and officially registered listening port for client connections to the listener using TCP/IP with SSL",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 1521,
+ "order": 2
+ },
+ "connection_data": {
+ "title": "Connect by",
+ "type": "object",
+ "description": "Connect data that will be used for DB connection",
+ "order": 3,
+ "oneOf": [ {
+ "title": "Service name",
+ "description": "Use service name",
+ "required": [ "service_name" ],
+ "properties": {
+ "connection_type": {
+ "type": "string",
+ "const": "service_name",
+ "order": 0
+ },
+ "service_name": {
+ "title": "Service name",
+ "type": "string",
+ "order": 1
+ }
+ }
+ }, {
+ "title": "System ID (SID)",
+ "description": "Use SID (Oracle System Identifier)",
+ "required": [ "sid" ],
+ "properties": {
+ "connection_type": {
+ "type": "string",
+ "const": "sid",
+ "order": 0
+ },
+ "sid": {
+ "title": "System ID (SID)",
+ "type": "string",
+ "order": 1
+ }
+ }
+ } ]
+ },
+ "username": {
+ "title": "User",
+ "description": "The username which is used to access the database.",
+ "type": "string",
+ "order": 4
+ },
+ "password": {
+ "title": "Password",
+ "description": "The password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 5
+ },
+ "schemas": {
+ "title": "Schemas",
+ "description": "The list of schemas to sync from. Defaults to user. Case sensitive.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1,
+ "uniqueItems": true,
+ "order": 6
+ },
+ "jdbc_url_params": {
+ "title": "JDBC URL Params",
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "type": "string",
+ "order": 7
+ },
+ "encryption": {
+ "title": "Encryption",
+ "type": "object",
+ "description": "The encryption method with is used when communicating with the database.",
+ "order": 8,
+ "oneOf": [ {
+ "title": "Unencrypted",
+ "description": "Data transfer will not be encrypted.",
+ "required": [ "encryption_method" ],
+ "properties": {
+ "encryption_method": {
+ "type": "string",
+ "const": "unencrypted"
+ }
+ }
+ }, {
+ "title": "Native Network Encryption (NNE)",
+ "description": "The native network encryption gives you the ability to encrypt database connections, without the configuration overhead of TCP/IP and SSL/TLS and without the need to open and listen on different ports.",
+ "required": [ "encryption_method" ],
+ "properties": {
+ "encryption_method": {
+ "type": "string",
+ "const": "client_nne"
+ },
+ "encryption_algorithm": {
+ "type": "string",
+ "description": "This parameter defines what encryption algorithm is used.",
+ "title": "Encryption Algorithm",
+ "default": "AES256",
+ "enum": [ "AES256", "RC4_56", "3DES168" ]
+ }
+ }
+ }, {
+ "title": "TLS Encrypted (verify certificate)",
+ "description": "Verify and use the certificate provided by the server.",
+ "required": [ "encryption_method", "ssl_certificate" ],
+ "properties": {
+ "encryption_method": {
+ "type": "string",
+ "const": "encrypted_verify_certificate"
+ },
+ "ssl_certificate": {
+ "title": "SSL PEM File",
+ "description": "Privacy Enhanced Mail (PEM) files are concatenated certificate containers frequently used in certificate installations.",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ } ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [ {
+ "title": "No Tunnel",
+ "required": [ "tunnel_method" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "SSH Key Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Password Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
+ }
+ }, {
+ "sourceDefinitionId": "7f0455fb-4518-4ec0-b7a3-d808bf8081cc",
+ "name": "Orb",
+ "dockerRepository": "airbyte/source-orb",
+ "dockerImageTag": "1.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/orb",
+ "icon": "orb.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.withorb.com/",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Orb Spec",
+ "type": "object",
+ "required": [ "api_key", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "Orb API Key",
+ "description": "Orb API Key, issued from the Orb admin console.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2022-03-01T00:00:00Z. Any data with created_at before this data will not be synced. For Subscription Usage, this becomes the `timeframe_start` API parameter.",
+ "examples": [ "2022-03-01T00:00:00Z" ],
+ "order": 2
+ },
+ "lookback_window_days": {
+ "type": "integer",
+ "title": "Lookback Window (in days)",
+ "default": 0,
+ "minimum": 0,
+ "description": "When set to N, the connector will always refresh resources created within the past N days. By default, updated objects that are not newly created are not incrementally synced.",
+ "order": 3
+ },
+ "string_event_properties_keys": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "Event properties keys (string values)",
+ "description": "Property key names to extract from all events, in order to enrich ledger entries corresponding to an event deduction.",
+ "order": 4
+ },
+ "numeric_event_properties_keys": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "Event properties keys (numeric values)",
+ "description": "Property key names to extract from all events, in order to enrich ledger entries corresponding to an event deduction.",
+ "order": 5
+ },
+ "subscription_usage_grouping_key": {
+ "type": "string",
+ "title": "Subscription usage grouping key (string value)",
+ "description": "Property key name to group subscription usage by."
+ },
+ "plan_id": {
+ "type": "string",
+ "title": "Orb Plan ID for Subscription Usage (string value)",
+ "description": "Orb Plan ID to filter subscriptions that should have usage fetched."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "95bcc041-1d1a-4c2e-8802-0ca5b1bfa36a",
+ "name": "Orbit",
+ "dockerRepository": "airbyte/source-orbit",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/orbit",
+ "icon": "orbit.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/orbit",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Orbit Source Spec",
+ "type": "object",
+ "required": [ "api_token", "workspace" ],
+ "additionalProperties": false,
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "airbyte_secret": true,
+ "title": "API Token",
+ "description": "Authorizes you to work with Orbit workspaces associated with the token.",
+ "order": 0
+ },
+ "workspace": {
+ "type": "string",
+ "title": "Workspace",
+ "description": "The unique name of the workspace that your API token is associated with.",
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "Date in the format 2022-06-26. Only load members whose last activities are after this date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 2
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "2bf6c581-bec5-4e32-891d-de33036bd631",
+ "name": "Oura",
+ "dockerRepository": "airbyte/source-oura",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/oura",
+ "icon": "oura.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Oura Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "start_datetime": {
+ "type": "string",
+ "description": "Start datetime to sync from. Default is current UTC datetime minus 1\nday.\n",
+ "pattern": "^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$",
+ "order": 1
+ },
+ "end_datetime": {
+ "type": "string",
+ "description": "End datetime to sync until. Default is current UTC datetime.",
+ "pattern": "^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$",
+ "order": 2
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "3490c201-5d95-4783-b600-eaf07a4c7787",
+ "name": "Outreach",
+ "dockerRepository": "airbyte/source-outreach",
+ "dockerImageTag": "0.2.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/outreach",
+ "icon": "outreach.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/outreach",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Outreach Spec",
+ "type": "object",
+ "required": [ "client_id", "client_secret", "refresh_token", "redirect_uri", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your Outreach developer application."
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your Outreach developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "The token for obtaining the new access token.",
+ "airbyte_secret": true
+ },
+ "redirect_uri": {
+ "type": "string",
+ "title": "Redirect URI",
+ "description": "A Redirect URI is the location where the authorization server sends the user once the app has been successfully authorized and granted an authorization code or access token."
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for Outreach API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "examples": [ "2020-11-16T00:00:00Z" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "ad15c7ba-72a7-440b-af15-b9a963dc1a8a",
+ "name": "Pardot",
+ "dockerRepository": "airbyte/source-pardot",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pardot",
+ "icon": "salesforcepardot.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pardot",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Pardot Spec",
+ "type": "object",
+ "required": [ "pardot_business_unit_id", "client_id", "client_secret", "refresh_token" ],
+ "additionalProperties": false,
+ "properties": {
+ "pardot_business_unit_id": {
+ "description": "Pardot Business ID, can be found at Setup > Pardot > Pardot Account Setup",
+ "type": "string"
+ },
+ "client_id": {
+ "description": "The Consumer Key that can be found when viewing your app in Salesforce",
+ "type": "string",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "description": "The Consumer Secret that can be found when viewing your app in Salesforce",
+ "type": "string",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "description": "Salesforce Refresh Token used for Airbyte to access your Salesforce account. If you don't know what this is, follow this guide to retrieve it.",
+ "type": "string",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. Leave blank to skip this filter",
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "default": null,
+ "examples": [ "2021-07-25T00:00:00Z" ]
+ },
+ "is_sandbox": {
+ "description": "Whether or not the the app is in a Salesforce sandbox. If you do not know what this, assume it is false.",
+ "type": "boolean",
+ "default": false
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "2817b3f0-04e4-4c7a-9f32-7a5e8a83db95",
+ "name": "PagerDuty",
+ "dockerRepository": "farosai/airbyte-pagerduty-source",
+ "dockerImageTag": "0.1.23",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pagerduty",
+ "icon": "pagerduty.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.faros.ai",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "PagerDuty Spec",
+ "type": "object",
+ "required": [ "token" ],
+ "additionalProperties": false,
+ "properties": {
+ "token": {
+ "type": "string",
+ "title": "PagerDuty API key",
+ "airbyte_secret": true
+ },
+ "pageSize": {
+ "type": "number",
+ "minimum": 1,
+ "maximum": 25,
+ "default": 25,
+ "title": "Page Size",
+ "description": "page size to use when querying PagerDuty API"
+ },
+ "cutoffDays": {
+ "type": "number",
+ "minimum": 1,
+ "default": 90,
+ "title": "Cutoff Days",
+ "description": "fetch pipelines updated in the last number of days"
+ },
+ "incidentLogEntriesOverview": {
+ "type": "boolean",
+ "title": "Incident Log Entries Overview",
+ "description": "If true, will return a subset of log entries that show only the most important changes to the incident.",
+ "default": true
+ },
+ "defaultSeverity": {
+ "type": "string",
+ "title": "Severity category",
+ "description": "A default severity category if not present",
+ "examples": [ "Sev1", "Sev2", "Sev3", "Sev4", "Sev5", "Custom" ],
+ "pattern": "^(Sev[0-5])?(Custom)?$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "d30fb809-6456-484d-8e2c-ee12e0f6888d",
+ "name": "PartnerStack",
+ "dockerRepository": "airbyte/source-partnerstack",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/partnerstack",
+ "icon": "partnerstack.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/partnerstack",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Partnerstack Spec",
+ "type": "object",
+ "required": [ "public_key", "private_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "public_key": {
+ "type": "string",
+ "title": "Partnerstack Public key",
+ "description": "The Live Public Key for a Partnerstack account.",
+ "airbyte_secret": true
+ },
+ "private_key": {
+ "type": "string",
+ "title": "Partnerstack Private key",
+ "description": "The Live Private Key for a Partnerstack account.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": [ "2017-01-25T00:00:00Z" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "d913b0f2-cc51-4e55-a44c-8ba1697b9239",
+ "name": "Paypal Transaction",
+ "dockerRepository": "airbyte/source-paypal-transaction",
+ "dockerImageTag": "0.1.12",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/paypal-transaction",
+ "icon": "paypal.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/paypal-transactions",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Paypal Transaction Search",
+ "type": "object",
+ "required": [ "start_date", "is_sandbox" ],
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your Paypal developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client secret",
+ "description": "The Client Secret of your Paypal developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh token",
+ "description": "The key to refresh the expired access token.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "Start Date for data extraction in ISO format. Date must be in range from 3 years till 12 hrs before present time.",
+ "examples": [ "2021-06-11T23:59:59-00:00" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}[+-][0-9]{2}:[0-9]{2}$"
+ },
+ "is_sandbox": {
+ "title": "Sandbox",
+ "description": "Determines whether to use the sandbox or production environment.",
+ "type": "boolean",
+ "default": false
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "api-m.paypal.com", "api-m.sandbox.paypal.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "193bdcb8-1dd9-48d1-aade-91cadfd74f9b",
+ "name": "Paystack",
+ "dockerRepository": "airbyte/source-paystack",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/paystack",
+ "icon": "paystack.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/paystack",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Paystack Source Spec",
+ "type": "object",
+ "required": [ "secret_key", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "secret_key": {
+ "type": "string",
+ "title": "Secret Key",
+ "pattern": "^(s|r)k_(live|test)_[a-zA-Z0-9]+$",
+ "description": "The Paystack API key (usually starts with 'sk_live_'; find yours here).",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": [ "2017-01-25T00:00:00Z" ],
+ "format": "date-time"
+ },
+ "lookback_window_days": {
+ "type": "integer",
+ "title": "Lookback Window (in days)",
+ "default": 0,
+ "minimum": 0,
+ "description": "When set, the connector will always reload data from the past N days, where N is the value set here. This is useful if your data is updated after creation."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "api.paystack.co" ]
+ }
+ }, {
+ "sourceDefinitionId": "b1ccb590-e84f-46c0-83a0-2048ccfffdae",
+ "name": "Pendo",
+ "dockerRepository": "airbyte/source-pendo",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pendo",
+ "icon": "pendo.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pendo",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": [ "api_key" ],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "airbyte_secret": true
+ }
+ },
+ "additionalProperties": true
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "3052c77e-8b91-47e2-97a0-a29a22794b4b",
+ "name": "PersistIq",
+ "dockerRepository": "airbyte/source-persistiq",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/persistiq",
+ "icon": "persistiq.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/persistiq",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Persistiq Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": false,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "PersistIq API Key. See the docs for more information on where to find that key.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "69d9eb65-8026-47dc-baf1-e4bf67901fd6",
+ "name": "Pexels API",
+ "dockerRepository": "airbyte/source-pexels-api",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pexels-api",
+ "icon": "pexels.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pexels-api",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Pexel API Spec",
+ "type": "object",
+ "required": [ "api_key", "query" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key from the pexels website",
+ "type": "string",
+ "description": "API key is required to access pexels api, For getting your's goto https://www.pexels.com/api/documentation and create account for free.",
+ "airbyte_secret": true
+ },
+ "query": {
+ "title": "Specific query for the search",
+ "type": "string",
+ "description": "Optional, the search query, Example Ocean, Tigers, Pears, etc.",
+ "examples": [ "people", "oceans" ]
+ },
+ "orientation": {
+ "title": "Specific orientation for the search",
+ "type": "string",
+ "description": "Optional, Desired photo orientation. The current supported orientations are landscape, portrait or square",
+ "examples": [ "square", "landscape" ]
+ },
+ "size": {
+ "title": "Specific size for the search",
+ "type": "string",
+ "description": "Optional, Minimum photo size. The current supported sizes are large(24MP), medium(12MP) or small(4MP).",
+ "examples": [ "large", "small" ]
+ },
+ "color": {
+ "title": "Specific color for the search",
+ "type": "string",
+ "description": "Optional, Desired photo color. Supported colors red, orange, yellow, green, turquoise, blue, violet, pink, brown, black, gray, white or any hexidecimal color code.",
+ "examples": [ "red", "orange" ]
+ },
+ "locale": {
+ "title": "Specific locale for the search",
+ "type": "string",
+ "description": "Optional, The locale of the search you are performing. The current supported locales are 'en-US' 'pt-BR' 'es-ES' 'ca-ES' 'de-DE' 'it-IT' 'fr-FR' 'sv-SE' 'id-ID' 'pl-PL' 'ja-JP' 'zh-TW' 'zh-CN' 'ko-KR' 'th-TH' 'nl-NL' 'hu-HU' 'vi-VN' 'cs-CZ' 'da-DK' 'fi-FI' 'uk-UA' 'el-GR' 'ro-RO' 'nb-NO' 'sk-SK' 'tr-TR' 'ru-RU'.",
+ "examples": [ "en-US", "pt-BR" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "5cb7e5fe-38c2-11ec-8d3d-0242ac130003",
+ "name": "Pinterest",
+ "dockerRepository": "airbyte/source-pinterest",
+ "dockerImageTag": "0.2.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pinterest",
+ "icon": "pinterest.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pinterest",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Pinterest Spec",
+ "type": "object",
+ "required": [ "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "A date in the format YYYY-MM-DD. If you have not set a date, it would be defaulted to latest allowed date by api (914 days from today).",
+ "examples": [ "2022-07-28" ]
+ },
+ "status": {
+ "title": "Status",
+ "description": "Entity statuses based off of campaigns, ad_groups, and ads. If you do not have a status set, it will be ignored completely.",
+ "type": [ "array", "null" ],
+ "items": {
+ "type": "string",
+ "enum": [ "ACTIVE", "PAUSED", "ARCHIVED" ]
+ },
+ "uniqueItems": true
+ },
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "oneOf": [ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [ "auth_method", "refresh_token" ],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your OAuth application",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "Refresh Token to obtain new Access Token, when it's expired.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "Access Token",
+ "required": [ "auth_method", "access_token" ],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "access_token",
+ "order": 0
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The Access Token to make authenticated requests.",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "auth_method" ],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "refresh_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "api.pinterest.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "d8286229-c680-4063-8c59-23b9b391c700",
+ "name": "Pipedrive",
+ "dockerRepository": "airbyte/source-pipedrive",
+ "dockerImageTag": "0.1.17",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pipedrive",
+ "icon": "pipedrive.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pipedrive",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Pipedrive Spec",
+ "type": "object",
+ "required": [ "replication_start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "authorization": {
+ "type": "object",
+ "title": "API Key Authentication",
+ "required": [ "auth_type", "api_token" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Token",
+ "order": 0
+ },
+ "api_token": {
+ "title": "API Token",
+ "type": "string",
+ "description": "The Pipedrive API Token.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "replication_start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. When specified and not None, then stream will behave as incremental",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2017-01-25T00:00:00Z" ],
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "api.pipedrive.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "d60f5393-f99e-4310-8d05-b1876820f40e",
+ "name": "Pivotal Tracker",
+ "dockerRepository": "airbyte/source-pivotal-tracker",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pivotal-tracker",
+ "icon": "pivotal-tracker.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Pivotal Tracker Spec",
+ "type": "object",
+ "required": [ "api_token" ],
+ "additionalProperties": false,
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "description": "Pivotal Tracker API token",
+ "examples": [ "5c054d0de3440452190fdc5d5a04d871" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "ed799e2b-2158-4c66-8da4-b40fe63bc72a",
+ "name": "Plaid",
+ "dockerRepository": "airbyte/source-plaid",
+ "dockerImageTag": "0.3.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/plaid",
+ "icon": "plaid.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://plaid.com/docs/api/",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": [ "access_token", "api_key", "client_id", "plaid_env" ],
+ "additionalProperties": true,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The end-user's Link access token."
+ },
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "The Plaid API key to use to hit the API.",
+ "airbyte_secret": true
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Plaid client id"
+ },
+ "plaid_env": {
+ "title": "Plaid Environment",
+ "type": "string",
+ "enum": [ "sandbox", "development", "production" ],
+ "description": "The Plaid environment"
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "The date from which you'd like to replicate data for Plaid in the format YYYY-MM-DD. All data generated after this date will be replicated.",
+ "examples": [ "2021-03-01" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "603ba446-3d75-41d7-92f3-aba901f8b897",
+ "name": "Plausible",
+ "dockerRepository": "airbyte/source-plausible",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/plausible",
+ "icon": "plausible.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/plausible",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Plausible Spec",
+ "type": "object",
+ "required": [ "api_key", "site_id" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "Plausible API key",
+ "description": "Plausible API Key. See the docs for information on how to generate this key.",
+ "airbyte_secret": true
+ },
+ "site_id": {
+ "type": "string",
+ "title": "Target website domain",
+ "description": "The domain of the site you want to retrieve data for. Enter the name of your site as configured on Plausible, i.e., excluding \"https://\" and \"www\". Can be retrieved from the 'domain' field in your Plausible site settings.",
+ "pattern": "^[A-Za-z0-9-.]+\\.[A-Z-a-z0-9-.]+",
+ "examples": [ "airbyte.com", "docs.airbyte.com" ]
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Data start date",
+ "description": "Start date for data to retrieve, in ISO-8601 format.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": [ "YYYY-MM-DD" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "b0dd65f1-081f-4731-9c51-38e9e6aa0ebf",
+ "name": "Pocket",
+ "dockerRepository": "airbyte/source-pocket",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pocket",
+ "icon": "pocket.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pocket",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Pocket Spec",
+ "type": "object",
+ "required": [ "consumer_key", "access_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "consumer_key": {
+ "type": "string",
+ "title": "Consumer Key",
+ "description": "Your application's Consumer Key.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The user's Pocket access token.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "state": {
+ "type": "string",
+ "title": "State",
+ "description": "Select the state of the items to retrieve.",
+ "order": 2,
+ "enum": [ "unread", "archive", "all" ]
+ },
+ "favorite": {
+ "type": "boolean",
+ "title": "Is Favorite?",
+ "description": "Retrieve only favorited items.",
+ "default": false,
+ "order": 3
+ },
+ "tag": {
+ "type": "string",
+ "title": "Tag Name",
+ "description": "Return only items tagged with this tag name. Use _untagged_ for retrieving only untagged items.",
+ "order": 4
+ },
+ "content_type": {
+ "type": "string",
+ "title": "Content Type",
+ "description": "Select the content type of the items to retrieve.",
+ "order": 5,
+ "enum": [ "article", "video", "image" ]
+ },
+ "sort": {
+ "type": "string",
+ "title": "Sort By",
+ "description": "Sort retrieved items by the given criteria.",
+ "order": 6,
+ "enum": [ "newest", "oldest", "title", "site" ]
+ },
+ "detail_type": {
+ "type": "string",
+ "title": "Detail Type",
+ "description": "Select the granularity of the information about each item.",
+ "order": 7,
+ "enum": [ "simple", "complete" ]
+ },
+ "search": {
+ "type": "string",
+ "title": "Search Query",
+ "description": "Only return items whose title or url contain the `search` string.",
+ "order": 8
+ },
+ "domain": {
+ "type": "string",
+ "title": "Domain",
+ "description": "Only return items from a particular `domain`.",
+ "order": 9
+ },
+ "since": {
+ "type": "string",
+ "title": "Since",
+ "description": "Only return items modified since the given timestamp.",
+ "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}",
+ "examples": [ "2022-10-20 14:14:14" ],
+ "order": 10
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "6371b14b-bc68-4236-bfbd-468e8df8e968",
+ "name": "PokeAPI",
+ "dockerRepository": "airbyte/source-pokeapi",
+ "dockerImageTag": "0.1.5",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pokeapi",
+ "icon": "pokeapi.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pokeapi",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Pokeapi Spec",
+ "type": "object",
+ "required": [ "pokemon_name" ],
+ "additionalProperties": false,
+ "properties": {
+ "pokemon_name": {
+ "type": "string",
+ "title": "Pokemon Name",
+ "description": "Pokemon requested from the API.",
+ "pattern": "^[a-z0-9_\\-]+$",
+ "examples": [ "ditto", "luxray", "snorlax" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "5807d72f-0abc-49f9-8fa5-ae820007032b",
+ "name": "Polygon Stock API",
+ "dockerRepository": "airbyte/source-polygon-stock-api",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/polygon-stock-api",
+ "icon": "polygon.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/airtable",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Weather API Spec",
+ "type": "object",
+ "required": [ "apiKey", "stocksTicker", "multiplier", "timespan", "start_date", "end_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "apiKey": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Your API ACCESS Key",
+ "airbyte_secret": true
+ },
+ "stocksTicker": {
+ "title": "Stock Ticker",
+ "type": "string",
+ "description": "The exchange symbol that this item is traded under.",
+ "examples": [ "IBM", "MSFT" ]
+ },
+ "multiplier": {
+ "title": "Multiplier",
+ "type": "integer",
+ "description": "The size of the timespan multiplier.",
+ "examples": [ 1, 2 ]
+ },
+ "timespan": {
+ "title": "Timespan",
+ "type": "string",
+ "description": "The size of the time window.",
+ "examples": [ "day" ]
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "description": "The beginning date for the aggregate window.",
+ "examples": [ "2020-10-14" ],
+ "format": "date"
+ },
+ "end_date": {
+ "title": "End Date",
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "description": "The target date for the aggregate window.",
+ "examples": [ "2020-10-14" ],
+ "format": "date"
+ },
+ "adjusted": {
+ "title": "Adjusted",
+ "type": "string",
+ "description": "Determines whether or not the results are adjusted for splits. By default, results are adjusted and set to true. Set this to false to get results that are NOT adjusted for splits.",
+ "examples": [ "true", "false" ]
+ },
+ "sort": {
+ "title": "Sort",
+ "type": "string",
+ "description": "Sort the results by timestamp. asc will return results in ascending order (oldest at the top), desc will return results in descending order (newest at the top).",
+ "examples": [ "asc", "desc" ]
+ },
+ "limit": {
+ "title": "Limit",
+ "type": "integer",
+ "description": "The target date for the aggregate window.",
+ "examples": [ 100, 120 ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "api.polygon.io" ]
+ }
+ }, {
+ "sourceDefinitionId": "af6d50ee-dddf-4126-a8ee-7faee990774f",
+ "name": "PostHog",
+ "dockerRepository": "airbyte/source-posthog",
+ "dockerImageTag": "0.1.9",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/posthog",
+ "icon": "posthog.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/posthog",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "PostHog Spec",
+ "type": "object",
+ "required": [ "api_key", "start_date" ],
+ "properties": {
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "The date from which you'd like to replicate the data. Any data before this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2021-01-01T00:00:00Z" ],
+ "format": "date-time"
+ },
+ "api_key": {
+ "type": "string",
+ "airbyte_secret": true,
+ "title": "API Key",
+ "description": "API Key. See the docs for information on how to generate this key."
+ },
+ "base_url": {
+ "type": "string",
+ "default": "https://app.posthog.com",
+ "title": "Base URL",
+ "description": "Base PostHog url. Defaults to PostHog Cloud (https://app.posthog.com).",
+ "examples": [ "https://posthog.example.com" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "${base_url}", "app.posthog.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "decd338e-5647-4c0b-adf4-da0e75f5a750",
+ "name": "Postgres",
+ "dockerRepository": "airbyte/source-postgres",
+ "dockerImageTag": "2.0.24",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/postgres",
+ "icon": "postgresql.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/postgres",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Postgres Source Spec",
+ "type": "object",
+ "required": [ "host", "port", "database", "username" ],
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0,
+ "group": "db"
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 5432,
+ "examples": [ "5432" ],
+ "order": 1,
+ "group": "db"
+ },
+ "database": {
+ "title": "Database Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2,
+ "group": "db"
+ },
+ "schemas": {
+ "title": "Schemas",
+ "description": "The list of schemas (case sensitive) to sync from. Defaults to public.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 0,
+ "uniqueItems": true,
+ "default": [ "public" ],
+ "order": 3,
+ "group": "db"
+ },
+ "username": {
+ "title": "Username",
+ "description": "Username to access the database.",
+ "type": "string",
+ "order": 4,
+ "group": "auth"
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 5,
+ "group": "auth",
+ "always_show": true
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (Eg. key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
+ "title": "JDBC URL Parameters (Advanced)",
+ "type": "string",
+ "order": 6,
+ "group": "advanced",
+ "pattern_descriptor": "key1=value1&key2=value2"
+ },
+ "ssl_mode": {
+ "title": "SSL Modes",
+ "description": "SSL connection modes. \n Read more in the docs.",
+ "type": "object",
+ "order": 8,
+ "group": "security",
+ "oneOf": [ {
+ "title": "disable",
+ "additionalProperties": true,
+ "description": "Disables encryption of communication between Airbyte and source database.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "disable",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "allow",
+ "additionalProperties": true,
+ "description": "Enables encryption only when required by the source database.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "allow",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "prefer",
+ "additionalProperties": true,
+ "description": "Allows unencrypted connection only if the source database does not support encryption.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "prefer",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "require",
+ "additionalProperties": true,
+ "description": "Always require encryption. If the source database server does not support encryption, connection will fail.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "require",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "verify-ca",
+ "additionalProperties": true,
+ "description": "Always require encryption and verifies that the source database server has a valid SSL certificate.",
+ "required": [ "mode", "ca_certificate" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-ca",
+ "order": 0
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA Certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ },
+ "client_certificate": {
+ "type": "string",
+ "title": "Client Certificate",
+ "description": "Client certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 2,
+ "always_show": true
+ },
+ "client_key": {
+ "type": "string",
+ "title": "Client Key",
+ "description": "Client key",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 3,
+ "always_show": true
+ },
+ "client_key_password": {
+ "type": "string",
+ "title": "Client key password",
+ "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "verify-full",
+ "additionalProperties": true,
+ "description": "This is the most secure mode. Always require encryption and verifies the identity of the source database server.",
+ "required": [ "mode", "ca_certificate" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-full",
+ "order": 0
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA Certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ },
+ "client_certificate": {
+ "type": "string",
+ "title": "Client Certificate",
+ "description": "Client certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 2,
+ "always_show": true
+ },
+ "client_key": {
+ "type": "string",
+ "title": "Client Key",
+ "description": "Client key",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 3,
+ "always_show": true
+ },
+ "client_key_password": {
+ "type": "string",
+ "title": "Client key password",
+ "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ },
+ "replication_method": {
+ "type": "object",
+ "title": "Replication Method",
+ "description": "Replication method for extracting data from the database.",
+ "order": 9,
+ "group": "advanced",
+ "oneOf": [ {
+ "title": "Standard",
+ "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.",
+ "required": [ "method" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "Standard",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "Logical Replication (CDC)",
+ "description": "Logical replication uses the Postgres write-ahead log (WAL) to detect inserts, updates, and deletes. This needs to be configured on the source database itself. Only available on Postgres 10 and above. Read the docs.",
+ "required": [ "method", "replication_slot", "publication" ],
+ "additionalProperties": true,
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "CDC",
+ "order": 1
+ },
+ "plugin": {
+ "type": "string",
+ "title": "Plugin",
+ "description": "A logical decoding plugin installed on the PostgreSQL server.",
+ "enum": [ "pgoutput" ],
+ "default": "pgoutput",
+ "order": 2
+ },
+ "replication_slot": {
+ "type": "string",
+ "title": "Replication Slot",
+ "description": "A plugin logical replication slot. Read about replication slots.",
+ "order": 3
+ },
+ "publication": {
+ "type": "string",
+ "title": "Publication",
+ "description": "A Postgres publication used for consuming changes. Read about publications and replication identities.",
+ "order": 4
+ },
+ "initial_waiting_seconds": {
+ "type": "integer",
+ "title": "Initial Waiting Time in Seconds (Advanced)",
+ "description": "The amount of time the connector will wait when it launches to determine if there is new data to sync or not. Defaults to 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about initial waiting time.",
+ "default": 300,
+ "order": 5,
+ "min": 120,
+ "max": 1200
+ },
+ "lsn_commit_behaviour": {
+ "type": "string",
+ "title": "LSN commit behaviour",
+ "description": "Determines when Airbtye should flush the LSN of processed WAL logs in the source database. `After loading Data in the destination` is default. If `While reading Data` is selected, in case of a downstream failure (while loading data into the destination), next sync would result in a full sync.",
+ "enum": [ "While reading Data", "After loading Data in the destination" ],
+ "default": "After loading Data in the destination",
+ "order": 6
+ }
+ }
+ } ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [ {
+ "title": "No Tunnel",
+ "required": [ "tunnel_method" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "SSH Key Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Password Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ],
+ "group": "security"
+ }
+ },
+ "groups": [ {
+ "id": "db"
+ }, {
+ "id": "auth"
+ }, {
+ "id": "security",
+ "title": "Security"
+ }, {
+ "id": "advanced",
+ "title": "Advanced"
+ } ]
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
+ },
+ "maxSecondsBetweenMessages": 7200
+ }, {
+ "sourceDefinitionId": "cde75ca1-1e28-4a0f-85bb-90c546de9f1f",
+ "name": "Postmark App",
+ "dockerRepository": "airbyte/source-postmarkapp",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/postmarkapp",
+ "icon": "postmark.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Postmarkapp Spec",
+ "type": "object",
+ "required": [ "X-Postmark-Server-Token", "X-Postmark-Account-Token" ],
+ "additionalProperties": true,
+ "properties": {
+ "X-Postmark-Server-Token": {
+ "title": "X-Postmark-Server-Token",
+ "type": "string",
+ "description": "API Key for server",
+ "airbyte_secret": true
+ },
+ "X-Postmark-Account-Token": {
+ "title": "X-Postmark-Account-Token",
+ "type": "string",
+ "description": "API Key for account",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "d60a46d4-709f-4092-a6b7-2457f7d455f5",
+ "name": "PrestaShop",
+ "dockerRepository": "airbyte/source-prestashop",
+ "dockerImageTag": "0.3.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/prestashop",
+ "icon": "prestashop.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/prestashop",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "PrestaShop Spec",
+ "type": "object",
+ "required": [ "access_key", "url", "start_date" ],
+ "properties": {
+ "access_key": {
+ "type": "string",
+ "title": "Access Key",
+ "description": "Your PrestaShop access key. See the docs for info on how to obtain this.",
+ "order": 0,
+ "airbyte_secret": true
+ },
+ "url": {
+ "type": "string",
+ "title": "Shop URL",
+ "description": "Shop URL without trailing slash.",
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "description": "The Start date in the format YYYY-MM-DD.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": [ "2022-01-01" ],
+ "format": "date",
+ "order": 2
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "${domain}" ]
+ }
+ }, {
+ "sourceDefinitionId": "f636c3c6-4077-45ac-b109-19fc62a283c1",
+ "name": "Primetric",
+ "dockerRepository": "airbyte/source-primetric",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/primetric",
+ "icon": "primetric.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Primetric Spec",
+ "type": "object",
+ "required": [ "client_id", "client_secret" ],
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your Primetric developer application. The Client ID is visible here.",
+ "pattern": "^[a-zA-Z0-9]+$",
+ "airbyte_secret": true,
+ "examples": [ "1234aBcD5678EFGh9045Neq79sdDlA15082VMYcj" ],
+ "order": 0
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your Primetric developer application. You can manage your client's credentials here.",
+ "pattern": "^[a-zA-Z0-9]+$",
+ "airbyte_secret": true,
+ "order": 1
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "a4617b39-3c14-44cd-a2eb-6e720f269235",
+ "name": "Public APIs",
+ "dockerRepository": "airbyte/source-public-apis",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/public-apis",
+ "icon": "publicapi.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/public-apis",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Public Apis Spec",
+ "type": "object",
+ "required": [ ],
+ "properties": { }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "dbe9b7ae-7b46-4e44-a507-02a343cf7230",
+ "name": "Punk API",
+ "dockerRepository": "airbyte/source-punk-api",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/punk-api",
+ "icon": "punkapi.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/punk-api",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Punk Api Spec",
+ "type": "object",
+ "required": [ "brewed_before", "brewed_after" ],
+ "additionalProperties": true,
+ "properties": {
+ "id": {
+ "title": "Beers with specific ID",
+ "type": "string",
+ "description": "To extract specific data with Unique ID",
+ "examples": [ 1, 22 ]
+ },
+ "brewed_before": {
+ "title": "Brewed before data to get incremental reads",
+ "type": "string",
+ "description": "To extract specific data with Unique ID",
+ "pattern": "^[0-9]{2}-[0-9]{4}$",
+ "examples": [ "MM-YYYY" ]
+ },
+ "brewed_after": {
+ "title": "Brewed after data to get incremental reads",
+ "type": "string",
+ "description": "To extract specific data with Unique ID",
+ "pattern": "^[0-9]{2}-[0-9]{4}$",
+ "examples": [ "MM-YYYY" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "88ecd3a8-5f5b-11ed-9b6a-0242ac120002",
+ "name": "PyPI",
+ "dockerRepository": "airbyte/source-pypi",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pypi",
+ "icon": "pypi.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/pypi",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Pypi Spec",
+ "type": "object",
+ "required": [ "project_name" ],
+ "additionalProperties": true,
+ "properties": {
+ "project_name": {
+ "type": "string",
+ "title": "PyPI Package",
+ "description": "Name of the project/package. Can only be in lowercase with hyphen. This is the name used using pip command for installing the package.",
+ "examples": [ "sampleproject" ]
+ },
+ "version": {
+ "title": "Package Version",
+ "type": "string",
+ "description": "Version of the project/package. Use it to find a particular release instead of all releases.",
+ "examples": [ "1.2.0" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "f7c0b910-5f66-11ed-9b6a-0242ac120002",
+ "name": "Qonto",
+ "dockerRepository": "airbyte/source-qonto",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/public-qonto",
+ "icon": "qonto.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Qonto Spec",
+ "type": "object",
+ "required": [ "endpoint", "organization_slug", "secret_key", "iban" ],
+ "properties": {
+ "endpoint": {
+ "title": "Endpoint",
+ "type": "string",
+ "description": "Please choose the right endpoint to use in this connection",
+ "enum": [ "Production", "Test Mocked API Server" ]
+ },
+ "organization_slug": {
+ "title": "Organization slug",
+ "type": "string",
+ "description": "Organization slug used in Qonto"
+ },
+ "secret_key": {
+ "title": "Secret Key",
+ "type": "string",
+ "description": "Secret key of the Qonto account",
+ "airbyte_secret": true
+ },
+ "iban": {
+ "title": "IBAN",
+ "type": "string",
+ "description": "International Bank Account Number linked used with your Qonto Account",
+ "pattern": "^[A-Z0-9]*$"
+ },
+ "start_date": {
+ "title": "Start date",
+ "type": "string",
+ "description": "Start getting data from that date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": [ "YYYY-MM-DD" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "b08e4776-d1de-4e80-ab5c-1e51dad934a2",
+ "name": "Qualaroo",
+ "dockerRepository": "airbyte/source-qualaroo",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/qualaroo",
+ "icon": "qualaroo.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/qualaroo",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Qualaroo Spec",
+ "type": "object",
+ "required": [ "token", "key", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "token": {
+ "type": "string",
+ "title": "API token",
+ "description": "A Qualaroo token. See the docs for instructions on how to generate it.",
+ "airbyte_secret": true
+ },
+ "key": {
+ "type": "string",
+ "title": "API key",
+ "description": "A Qualaroo token. See the docs for instructions on how to generate it.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": [ "2021-03-01T00:00:00.000Z" ]
+ },
+ "survey_ids": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "^[0-9]{1,8}$"
+ },
+ "title": "Qualaroo survey IDs",
+ "description": "IDs of the surveys from which you'd like to replicate data. If left empty, data from all surveys to which you have access will be replicated."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ ],
+ "oauthFlowInitParameters": [ ],
+ "oauthFlowOutputParameters": [ [ "token" ], [ "key" ] ]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "cf9c4355-b171-4477-8f2d-6c5cc5fc8b7e",
+ "name": "QuickBooks",
+ "dockerRepository": "airbyte/source-quickbooks",
+ "dockerImageTag": "2.0.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/quickbooks",
+ "icon": "quickbooks.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/quickbooks",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source QuickBooks Spec",
+ "type": "object",
+ "required": [ "credentials", "start_date", "sandbox" ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "order": 0,
+ "oneOf": [ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [ "client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date", "realm_id" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "oauth2.0"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "Identifies which app is making the request. Obtain this value from the Keys tab on the app profile via My Apps on the developer site. There are two versions of this key: development and production."
+ },
+ "client_secret": {
+ "description": " Obtain this value from the Keys tab on the app profile via My Apps on the developer site. There are two versions of this key: development and production.",
+ "title": "Client Secret",
+ "type": "string",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "description": "A token used when refreshing the access token.",
+ "title": "Refresh Token",
+ "type": "string",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "description": "Access token fot making authenticated requests.",
+ "title": "Access Token",
+ "type": "string",
+ "airbyte_secret": true
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "title": "Token Expiry Date",
+ "description": "The date-time when the access token should be refreshed.",
+ "format": "date-time"
+ },
+ "realm_id": {
+ "description": "Labeled Company ID. The Make API Calls panel is populated with the realm id and the current access token.",
+ "title": "Realm ID",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ },
+ "start_date": {
+ "order": 1,
+ "description": "The default value to use if no bookmark exists for an endpoint (rfc3339 date string). E.g, 2021-03-20T00:00:00+00:00. Any data before this date will not be replicated.",
+ "title": "Start Date",
+ "type": "string",
+ "format": "date-time",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2021-03-20T00:00:00+00:00" ]
+ },
+ "sandbox": {
+ "order": 2,
+ "description": "Determines whether to use the sandbox or production environment.",
+ "title": "Sandbox",
+ "type": "boolean",
+ "default": false
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "sandbox-quickbooks.api.intuit.com", "quickbooks.api.intuit.com", "oauth.platform.intuit.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "9b6cc0c0-da81-4103-bbfd-5279e18a849a",
+ "name": "Railz",
+ "dockerRepository": "airbyte/source-railz",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/railz",
+ "icon": "railz.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Railz Spec",
+ "type": "object",
+ "required": [ "client_id", "secret_key", "start_date" ],
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "Client ID (client_id)",
+ "order": 0
+ },
+ "secret_key": {
+ "type": "string",
+ "title": "Secret key",
+ "description": "Secret key (secret_key)",
+ "order": 1,
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "description": "Start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 2
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "45d2e135-2ede-49e1-939f-3e3ec357a65e",
+ "name": "Recharge",
+ "dockerRepository": "airbyte/source-recharge",
+ "dockerImageTag": "0.2.9",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/recharge",
+ "icon": "recharge.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/recharge",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Recharge Spec",
+ "type": "object",
+ "required": [ "start_date", "access_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for Recharge API, in the format YYYY-MM-DDT00:00:00Z. Any data before this date will not be replicated.",
+ "examples": [ "2021-05-14T00:00:00Z" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "format": "date-time"
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The value of the Access Token generated. See the docs for more information.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "api.rechargeapps.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "25d7535d-91e0-466a-aa7f-af81578be277",
+ "name": "Recreation",
+ "dockerRepository": "airbyte/source-recreation",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/recreation",
+ "icon": "recreation.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/recreation",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Recreation Spec",
+ "type": "object",
+ "required": [ "apikey" ],
+ "additionalProperties": true,
+ "properties": {
+ "apikey": {
+ "title": "API Key",
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true
+ },
+ "query_campsites": {
+ "title": "Query Campsite",
+ "type": "string"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "3b046ac7-d8d3-4eb3-b122-f96b2a16d8a8",
+ "name": "Recruitee",
+ "dockerRepository": "airbyte/source-recruitee",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/recruitee",
+ "icon": "recruitee.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/recruitee",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Recruitee Spec",
+ "type": "object",
+ "required": [ "api_key", "company_id" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Recruitee API Key. See here.",
+ "airbyte_secret": true
+ },
+ "company_id": {
+ "title": "Company ID",
+ "type": "integer",
+ "description": "Recruitee Company ID. You can also find this ID on the Recruitee API tokens page."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "cd42861b-01fc-4658-a8ab-5d11d0510f01",
+ "name": "Recurly",
+ "dockerRepository": "airbyte/source-recurly",
+ "dockerImageTag": "0.4.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/recurly",
+ "icon": "recurly.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/recurly",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Recurly Source Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": false,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "airbyte_secret": true,
+ "description": "Recurly API Key. See the docs for more information on how to generate this key.",
+ "order": 1
+ },
+ "begin_time": {
+ "type": "string",
+ "description": "ISO8601 timestamp from which the replication from Recurly API will start from.",
+ "examples": [ "2021-12-01T00:00:00" ],
+ "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
+ "order": 2
+ },
+ "end_time": {
+ "type": "string",
+ "description": "ISO8601 timestamp to which the replication from Recurly API will stop. Records after that date won't be imported.",
+ "examples": [ "2021-12-01T00:00:00" ],
+ "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "e87ffa8e-a3b5-f69c-9076-6011339de1f6",
+ "name": "Redshift",
+ "dockerRepository": "airbyte/source-redshift",
+ "dockerImageTag": "0.3.16",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/redshift",
+ "icon": "redshift.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redshift",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Redshift Source Spec",
+ "type": "object",
+ "required": [ "host", "port", "database", "username", "password" ],
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Host Endpoint of the Redshift Cluster (must include the cluster-id, region and end with .redshift.amazonaws.com).",
+ "type": "string",
+ "order": 1
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 5439,
+ "examples": [ "5439" ],
+ "order": 2
+ },
+ "database": {
+ "title": "Database",
+ "description": "Name of the database.",
+ "type": "string",
+ "examples": [ "master" ],
+ "order": 3
+ },
+ "schemas": {
+ "title": "Schemas",
+ "description": "The list of schemas to sync from. Specify one or more explicitly or keep empty to process all schemas. Schema names are case sensitive.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 0,
+ "uniqueItems": true,
+ "examples": [ "public" ],
+ "order": 4
+ },
+ "username": {
+ "title": "Username",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 5
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 6
+ },
+ "jdbc_url_params": {
+ "title": "JDBC URL Params",
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "type": "string",
+ "order": 7
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "8cc6537e-f8a6-423c-b960-e927af76116e",
+ "name": "Reply.io",
+ "dockerRepository": "airbyte/source-reply-io",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/reply-io",
+ "icon": "reply-io.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/reply-io",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Reply Io Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Token",
+ "description": "The API Token for Reply",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "db04ecd1-42e7-4115-9cec-95812905c626",
+ "name": "Retently",
+ "dockerRepository": "airbyte/source-retently",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/retently",
+ "icon": "retently.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Retently Api Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authentication Mechanism",
+ "description": "Choose how to authenticate to Retently",
+ "type": "object",
+ "oneOf": [ {
+ "type": "object",
+ "title": "Authenticate via Retently (OAuth)",
+ "required": [ "client_id", "client_secret", "refresh_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Retently developer application."
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Retently developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "Retently Refresh Token which can be used to fetch new Bearer Tokens when the current one expires.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "Authenticate with API Token",
+ "required": [ "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Token",
+ "order": 0
+ },
+ "api_key": {
+ "title": "API Token",
+ "description": "Retently API Token. See the docs for more information on how to obtain this key.",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "auth_type" ],
+ "predicate_value": "Client",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "refresh_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "fb141f29-be2a-450b-a4f2-2cd203a00f84",
+ "name": "RD Station Marketing",
+ "dockerRepository": "airbyte/source-rd-station-marketing",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/rd-station-marketing",
+ "icon": "rdstation.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/rd-station-marketing",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "RD Station Marketing Spec",
+ "type": "object",
+ "required": [ "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "authorization": {
+ "type": "object",
+ "title": "Authentication Type",
+ "description": "Choose one of the possible authorization method",
+ "oneOf": [ {
+ "title": "Sign in via RD Station (OAuth)",
+ "type": "object",
+ "required": [ "auth_type" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your RD Station developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your RD Station developer application",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "The token for obtaining the new access token.",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. When specified and not None, then stream will behave as incremental",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2017-01-25T00:00:00Z" ],
+ "type": "string"
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ "authorization", "0" ],
+ "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
+ "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "d78e5de0-aa44-4744-aa4f-74c818ccfe19",
+ "name": "RKI Covid",
+ "dockerRepository": "airbyte/source-rki-covid",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/rki-covid",
+ "icon": "rki.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/rki-covid",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "RKI Covid Spec",
+ "type": "object",
+ "required": [ "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "UTC date in the format 2017-01-25. Any data before this date will not be replicated.",
+ "order": 1
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "0efee448-6948-49e2-b786-17db50647908",
+ "name": "RSS",
+ "dockerRepository": "airbyte/source-rss",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/rss",
+ "icon": "rss.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/rss",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "RSS Spec",
+ "type": "object",
+ "required": [ "url" ],
+ "properties": {
+ "url": {
+ "type": "string",
+ "description": "RSS Feed URL"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false
+ }, {
+ "sourceDefinitionId": "921d9608-3915-450b-8078-0af18801ea1b",
+ "name": "Rocket.chat",
+ "dockerRepository": "airbyte/source-rocket-chat",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/rocket-chat",
+ "icon": "rocket-chat.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/rocket-chat",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Rocket Chat Spec",
+ "type": "object",
+ "required": [ "token", "user_id", "endpoint" ],
+ "additionalProperties": true,
+ "properties": {
+ "endpoint": {
+ "title": "Endpoint",
+ "type": "string",
+ "description": "Your rocket.chat instance URL.",
+ "examples": [ "https://airbyte-connector-poc.rocket.chat", "https://hey.yoursite.com" ]
+ },
+ "token": {
+ "title": "Token",
+ "type": "string",
+ "description": "Your API Token. See here. The token is case sensitive.",
+ "airbyte_secret": true
+ },
+ "user_id": {
+ "title": "User ID.",
+ "type": "string",
+ "description": "Your User Id."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "69589781-7828-43c5-9f63-8925b1c1ccc2",
+ "name": "S3",
+ "dockerRepository": "airbyte/source-s3",
+ "dockerImageTag": "2.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/s3",
+ "icon": "s3.svg",
+ "sourceType": "file",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/s3",
+ "changelogUrl": "https://docs.airbyte.com/integrations/sources/s3",
+ "connectionSpecification": {
+ "title": "S3 Source Spec",
+ "type": "object",
+ "properties": {
+ "dataset": {
+ "title": "Output Stream Name",
+ "description": "The name of the stream you would like this source to output. Can contain letters, numbers, or underscores.",
+ "pattern": "^([A-Za-z0-9-_]+)$",
+ "order": 0,
+ "type": "string"
+ },
+ "path_pattern": {
+ "title": "Pattern of files to replicate",
+ "description": "A regular expression which tells the connector which files to replicate. All files which match this pattern will be replicated. Use | to separate multiple patterns. See this page to understand pattern syntax (GLOBSTAR and SPLIT flags are enabled). Use pattern ** to pick up all files.",
+ "examples": [ "**", "myFolder/myTableFiles/*.csv|myFolder/myOtherTableFiles/*.csv" ],
+ "order": 10,
+ "type": "string"
+ },
+ "format": {
+ "title": "File Format",
+ "description": "The format of the files you'd like to replicate",
+ "default": "csv",
+ "order": 20,
+ "type": "object",
+ "oneOf": [ {
+ "title": "CSV",
+ "description": "This connector utilises PyArrow (Apache Arrow) for CSV parsing.",
+ "type": "object",
+ "properties": {
+ "filetype": {
+ "title": "Filetype",
+ "const": "csv",
+ "type": "string"
+ },
+ "delimiter": {
+ "title": "Delimiter",
+ "description": "The character delimiting individual cells in the CSV data. This may only be a 1-character string. For tab-delimited data enter '\\t'.",
+ "default": ",",
+ "minLength": 1,
+ "order": 0,
+ "type": "string"
+ },
+ "infer_datatypes": {
+ "title": "Infer Datatypes",
+ "description": "Configures whether a schema for the source should be inferred from the current data or not. If set to false and a custom schema is set, then the manually enforced schema is used. If a schema is not manually set, and this is set to false, then all fields will be read as strings",
+ "default": true,
+ "order": 1,
+ "type": "boolean"
+ },
+ "quote_char": {
+ "title": "Quote Character",
+ "description": "The character used for quoting CSV values. To disallow quoting, make this field blank.",
+ "default": "\"",
+ "order": 2,
+ "type": "string"
+ },
+ "escape_char": {
+ "title": "Escape Character",
+ "description": "The character used for escaping special characters. To disallow escaping, leave this field blank.",
+ "order": 3,
+ "type": "string"
+ },
+ "encoding": {
+ "title": "Encoding",
+ "description": "The character encoding of the CSV data. Leave blank to default to UTF8. See list of python encodings for allowable options.",
+ "default": "utf8",
+ "order": 4,
+ "type": "string"
+ },
+ "double_quote": {
+ "title": "Double Quote",
+ "description": "Whether two quotes in a quoted CSV value denote a single quote in the data.",
+ "default": true,
+ "order": 5,
+ "type": "boolean"
+ },
+ "newlines_in_values": {
+ "title": "Allow newlines in values",
+ "description": "Whether newline characters are allowed in CSV values. Turning this on may affect performance. Leave blank to default to False.",
+ "default": false,
+ "order": 6,
+ "type": "boolean"
+ },
+ "additional_reader_options": {
+ "title": "Additional Reader Options",
+ "description": "Optionally add a valid JSON string here to provide additional options to the csv reader. Mappings must correspond to options detailed here. 'column_types' is used internally to handle schema so overriding that would likely cause problems.",
+ "examples": [ "{\"timestamp_parsers\": [\"%m/%d/%Y %H:%M\", \"%Y/%m/%d %H:%M\"], \"strings_can_be_null\": true, \"null_values\": [\"NA\", \"NULL\"]}" ],
+ "order": 7,
+ "type": "string"
+ },
+ "advanced_options": {
+ "title": "Advanced Options",
+ "description": "Optionally add a valid JSON string here to provide additional Pyarrow ReadOptions. Specify 'column_names' here if your CSV doesn't have header, or if you want to use custom column names. 'block_size' and 'encoding' are already used above, specify them again here will override the values above.",
+ "examples": [ "{\"column_names\": [\"column1\", \"column2\"]}" ],
+ "order": 8,
+ "type": "string"
+ },
+ "block_size": {
+ "title": "Block Size",
+ "description": "The chunk size in bytes to process at a time in memory from each file. If your data is particularly wide and failing during schema detection, increasing this should solve it. Beware of raising this too high as you could hit OOM errors.",
+ "default": 10000,
+ "minimum": 1,
+ "maximum": 2147483647,
+ "order": 9,
+ "type": "integer"
+ }
+ }
+ }, {
+ "title": "Parquet",
+ "description": "This connector utilises PyArrow (Apache Arrow) for Parquet parsing.",
+ "type": "object",
+ "properties": {
+ "filetype": {
+ "title": "Filetype",
+ "const": "parquet",
+ "type": "string"
+ },
+ "columns": {
+ "title": "Selected Columns",
+ "description": "If you only want to sync a subset of the columns from the file(s), add the columns you want here as a comma-delimited list. Leave it empty to sync all columns.",
+ "order": 0,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "batch_size": {
+ "title": "Record batch size",
+ "description": "Maximum number of records per batch read from the input files. Batches may be smaller if there aren’t enough rows in the file. This option can help avoid out-of-memory errors if your data is particularly wide.",
+ "default": 65536,
+ "order": 1,
+ "type": "integer"
+ },
+ "buffer_size": {
+ "title": "Buffer Size",
+ "description": "Perform read buffering when deserializing individual column chunks. By default every group column will be loaded fully to memory. This option can help avoid out-of-memory errors if your data is particularly wide.",
+ "default": 2,
+ "type": "integer"
+ }
+ }
+ }, {
+ "title": "Avro",
+ "description": "This connector utilises fastavro for Avro parsing.",
+ "type": "object",
+ "properties": {
+ "filetype": {
+ "title": "Filetype",
+ "const": "avro",
+ "type": "string"
+ }
+ }
+ }, {
+ "title": "Jsonl",
+ "description": "This connector uses PyArrow for JSON Lines (jsonl) file parsing.",
+ "type": "object",
+ "properties": {
+ "filetype": {
+ "title": "Filetype",
+ "const": "jsonl",
+ "type": "string"
+ },
+ "newlines_in_values": {
+ "title": "Allow newlines in values",
+ "description": "Whether newline characters are allowed in JSON values. Turning this on may affect performance. Leave blank to default to False.",
+ "default": false,
+ "order": 0,
+ "type": "boolean"
+ },
+ "unexpected_field_behavior": {
+ "title": "Unexpected field behavior",
+ "description": "How JSON fields outside of explicit_schema (if given) are treated. Check PyArrow documentation for details",
+ "default": "infer",
+ "examples": [ "ignore", "infer", "error" ],
+ "order": 1,
+ "enum": [ "ignore", "infer", "error" ]
+ },
+ "block_size": {
+ "title": "Block Size",
+ "description": "The chunk size in bytes to process at a time in memory from each file. If your data is particularly wide and failing during schema detection, increasing this should solve it. Beware of raising this too high as you could hit OOM errors.",
+ "default": 0,
+ "order": 2,
+ "type": "integer"
+ }
+ }
+ } ]
+ },
+ "schema": {
+ "title": "Manually enforced data schema",
+ "description": "Optionally provide a schema to enforce, as a valid JSON string. Ensure this is a mapping of { \"column\" : \"type\" }, where types are valid JSON Schema datatypes. Leave as {} to auto-infer the schema.",
+ "default": "{}",
+ "examples": [ "{\"column_1\": \"number\", \"column_2\": \"string\", \"column_3\": \"array\", \"column_4\": \"object\", \"column_5\": \"boolean\"}" ],
+ "order": 30,
+ "type": "string"
+ },
+ "provider": {
+ "title": "S3: Amazon Web Services",
+ "type": "object",
+ "properties": {
+ "bucket": {
+ "title": "Bucket",
+ "description": "Name of the S3 bucket where the file(s) exist.",
+ "order": 0,
+ "type": "string"
+ },
+ "aws_access_key_id": {
+ "title": "AWS Access Key ID",
+ "description": "In order to access private Buckets stored on AWS S3, this connector requires credentials with the proper permissions. If accessing publicly available data, this field is not necessary.",
+ "airbyte_secret": true,
+ "order": 1,
+ "type": "string"
+ },
+ "aws_secret_access_key": {
+ "title": "AWS Secret Access Key",
+ "description": "In order to access private Buckets stored on AWS S3, this connector requires credentials with the proper permissions. If accessing publicly available data, this field is not necessary.",
+ "airbyte_secret": true,
+ "order": 2,
+ "type": "string"
+ },
+ "path_prefix": {
+ "title": "Path Prefix",
+ "description": "By providing a path-like prefix (e.g. myFolder/thisTable/) under which all the relevant files sit, we can optimize finding these in S3. This is optional but recommended if your bucket contains many folders/files which you don't need to replicate.",
+ "default": "",
+ "order": 3,
+ "type": "string"
+ },
+ "endpoint": {
+ "title": "Endpoint",
+ "description": "Endpoint to an S3 compatible service. Leave empty to use AWS.",
+ "default": "",
+ "order": 4,
+ "type": "string"
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any file modified before this date will not be replicated.",
+ "examples": [ "2021-01-01T00:00:00Z" ],
+ "format": "date-time",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "order": 5,
+ "type": "string"
+ }
+ },
+ "required": [ "bucket" ],
+ "order": 11,
+ "description": "Use this to load files from S3 or S3-compatible services"
+ }
+ },
+ "required": [ "dataset", "path_pattern", "provider" ]
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "*.s3.amazonaws.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "41991d12-d4b5-439e-afd0-260a31d4c53f",
+ "name": "SalesLoft",
+ "dockerRepository": "airbyte/source-salesloft",
+ "dockerImageTag": "1.0.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/salesloft",
+ "icon": "salesloft.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/salesloft",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Salesloft Spec",
+ "type": "object",
+ "required": [ "credentials", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "order": 0,
+ "type": "object",
+ "title": "Credentials",
+ "oneOf": [ {
+ "title": "Authenticate via OAuth",
+ "type": "object",
+ "required": [ "client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date", "auth_type" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "oauth2.0"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your Salesloft developer application."
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your Salesloft developer application.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "description": "The date-time when the access token should be refreshed.",
+ "format": "date-time"
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "The token for obtaining a new access token.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "Authenticate via API Key",
+ "type": "object",
+ "required": [ "api_key", "auth_type" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "api_key"
+ },
+ "api_key": {
+ "type": "string",
+ "airbyte_secret": true,
+ "title": "API Key",
+ "description": "API Key for making authenticated requests. More instruction on how to find this value in our docs"
+ }
+ }
+ } ]
+ },
+ "start_date": {
+ "order": 1,
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for Salesloft API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "examples": [ "2020-11-16T00:00:00Z" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "api.salesloft.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "b117307c-14b6-41aa-9422-947e34922962",
+ "name": "Salesforce",
+ "dockerRepository": "airbyte/source-salesforce",
+ "dockerImageTag": "2.0.9",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/salesforce",
+ "icon": "salesforce.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/salesforce",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Salesforce Source Spec",
+ "type": "object",
+ "required": [ "client_id", "client_secret", "refresh_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "is_sandbox": {
+ "title": "Sandbox",
+ "description": "Toggle if you're using a Salesforce Sandbox",
+ "type": "boolean",
+ "default": false,
+ "order": 1
+ },
+ "auth_type": {
+ "type": "string",
+ "const": "Client"
+ },
+ "client_id": {
+ "title": "Client ID",
+ "description": "Enter your Salesforce developer application's Client ID",
+ "type": "string",
+ "order": 2
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "description": "Enter your Salesforce developer application's Client secret",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "description": "Enter your application's Salesforce Refresh Token used for Airbyte to access your Salesforce account.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "Enter the date in the YYYY-MM-DD format. Airbyte will replicate the data added on and after this date. If this field is blank, Airbyte will replicate the data for last two years.",
+ "type": "string",
+ "pattern": "^([0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}Z)?)$",
+ "examples": [ "2021-07-25", "2021-07-25T00:00:00Z" ],
+ "format": "date-time",
+ "order": 5
+ },
+ "streams_criteria": {
+ "type": "array",
+ "order": 6,
+ "items": {
+ "type": "object",
+ "required": [ "criteria", "value" ],
+ "properties": {
+ "criteria": {
+ "type": "string",
+ "title": "Search criteria",
+ "enum": [ "starts with", "ends with", "contains", "exacts", "starts not with", "ends not with", "not contains", "not exacts" ],
+ "order": 1,
+ "default": "contains"
+ },
+ "value": {
+ "type": "string",
+ "title": "Search value",
+ "order": 2
+ }
+ }
+ },
+ "title": "Filter Salesforce Objects",
+ "description": "Filter streams relevant to you"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "auth_type" ],
+ "predicate_value": "Client",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "is_sandbox": {
+ "type": "boolean",
+ "path_in_connector_config": [ "is_sandbox" ]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": [ "refresh_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "*.salesforce.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "ec5f3102-fb31-4916-99ae-864faf8e7e25",
+ "name": "SAP Fieldglass",
+ "dockerRepository": "airbyte/source-sap-fieldglass",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sap-fieldglass",
+ "icon": "sapfieldglass.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sap-fieldglass",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Sap Fieldglass Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "8d7ef552-2c0f-11ec-8d3d-0242ac130003",
+ "name": "SearchMetrics",
+ "dockerRepository": "airbyte/source-search-metrics",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/search-metrics",
+ "icon": "searchmetrics.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/seacrh-metrics",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Search Metrics Spec",
+ "type": "object",
+ "required": [ "api_key", "client_secret", "country_code", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "",
+ "airbyte_secret": true
+ },
+ "country_code": {
+ "title": "Country Code",
+ "type": "string",
+ "default": "",
+ "description": "The region of the S3 staging bucket to use if utilising a copy strategy.",
+ "enum": [ "", "AR", "AU", "AT", "BE", "BR", "CA", "CN", "CO", "DK", "FI", "FR", "DE", "HK", "IN", "IE", "IT", "JP", "MX", "NL", "NO", "PL", "RU", "SG", "ZA", "ES", "SE", "CH", "TR", "US", "GB" ],
+ "order": 2
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "Data generated in SearchMetrics after this date will be replicated. This date must be specified in the format YYYY-MM-DDT00:00:00Z.",
+ "examples": [ "20200925" ],
+ "pattern": "^[0-9]{4}[0-9]{2}[0-9]{2}$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "da9fc6b9-8059-4be0-b204-f56e22e4d52d",
+ "name": "Secoda",
+ "dockerRepository": "airbyte/source-secoda",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/secoda",
+ "icon": "secoda.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/secoda",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Secoda Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "Api Key",
+ "type": "string",
+ "description": "Your API Access Key. See here. The key is case sensitive.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "fbb5fbe2-16ad-4cf4-af7d-ff9d9c316c87",
+ "name": "Sendgrid",
+ "dockerRepository": "airbyte/source-sendgrid",
+ "dockerImageTag": "0.3.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sendgrid",
+ "icon": "sendgrid.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sendgrid",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Sendgrid Spec",
+ "type": "object",
+ "required": [ "apikey" ],
+ "additionalProperties": true,
+ "properties": {
+ "apikey": {
+ "title": "Sendgrid API key",
+ "airbyte_secret": true,
+ "type": "string",
+ "description": "API Key, use admin to generate this key.",
+ "order": 0
+ },
+ "start_time": {
+ "title": "Start time",
+ "type": "string",
+ "format": "date-time",
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(.\\d+)?Z$",
+ "description": "Start time in ISO8601 format. Any data before this time point will not be replicated.",
+ "examples": [ "2020-01-01T01:01:01Z", "2020-01-01T01:01:01.000001Z" ],
+ "order": 1
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "api.sendgrid.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "39de93cb-1511-473e-a673-5cbedb9436af",
+ "name": "Senseforce",
+ "dockerRepository": "airbyte/source-senseforce",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/senseforce",
+ "icon": "senseforce.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/senseforce",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Senseforce Source Spec",
+ "type": "object",
+ "required": [ "access_token", "backend_url", "dataset_id", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "title": "API Access Token",
+ "description": "Your API access token. See here. The toke is case sensitive.",
+ "airbyte_secret": true
+ },
+ "backend_url": {
+ "type": "string",
+ "title": "Senseforce backend URL",
+ "examples": [ "https://galaxyapi.senseforce.io" ],
+ "description": "Your Senseforce API backend URL. This is the URL shown during the Login screen. See here for more details. (Note: Most Senseforce backend APIs have the term 'galaxy' in their ULR)"
+ },
+ "dataset_id": {
+ "type": "string",
+ "title": "Dataset ID",
+ "examples": [ "8f418098-ca28-4df5-9498-0df9fe78eda7" ],
+ "description": "The ID of the dataset you want to synchronize. The ID can be found in the URL when opening the dataset. See here for more details. (Note: As the Senseforce API only allows to synchronize a specific dataset, each dataset you want to synchronize needs to be implemented as a separate airbyte source)."
+ },
+ "start_date": {
+ "type": "string",
+ "title": "The first day (in UTC) when to read data from.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "description": "UTC date and time in the format 2017-01-25. Only data with \"Timestamp\" after this date will be replicated. Important note: This start date must be set to the first day of where your dataset provides data. If your dataset has data from 2020-10-10 10:21:10, set the start_date to 2020-10-10 or later",
+ "examples": [ "2017-01-25" ],
+ "format": "date"
+ },
+ "slice_range": {
+ "type": "integer",
+ "title": "Data request time increment in days",
+ "default": 10,
+ "minimum": 1,
+ "maximum": 365,
+ "examples": [ 1, 3, 10, 30, 180, 360 ],
+ "airbyte_hidden": true,
+ "description": "The time increment used by the connector when requesting data from the Senseforce API. The bigger the value is, the less requests will be made and faster the sync will be. On the other hand, the more seldom the state is persisted and the more likely one could run into rate limites. Furthermore, consider that large chunks of time might take a long time for the Senseforce query to return data - meaning it could take in effect longer than with more smaller time slices. If there are a lot of data per day, set this setting to 1. If there is only very little data per day, you might change the setting to 10 or more."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "galaxyapi.senseforce.io", "senseforce.io" ]
+ }
+ }, {
+ "sourceDefinitionId": "2e88fa20-a2f6-43cc-bba6-98a0a3f244fb",
+ "name": "Sendinblue",
+ "dockerRepository": "airbyte/source-sendinblue",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sendinblue",
+ "icon": "sendinblue.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sendinblue",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Sendinblue Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Your API Key. See here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "9da77001-af33-4bcd-be46-6252bf9342b9",
+ "name": "Shopify",
+ "dockerRepository": "airbyte/source-shopify",
+ "dockerImageTag": "0.3.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/shopify",
+ "icon": "shopify.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/shopify",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Shopify Source CDK Specifications",
+ "type": "object",
+ "required": [ "shop", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "shop": {
+ "type": "string",
+ "title": "Shopify Store",
+ "description": "The name of your Shopify store found in the URL. For example, if your URL was https://NAME.myshopify.com, then the name would be 'NAME'.",
+ "order": 1
+ },
+ "credentials": {
+ "title": "Shopify Authorization Method",
+ "description": "The authorization method to use to retrieve data from Shopify",
+ "type": "object",
+ "order": 2,
+ "oneOf": [ {
+ "title": "API Password",
+ "description": "API Password Auth",
+ "type": "object",
+ "required": [ "auth_method", "api_password" ],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "api_password",
+ "order": 0
+ },
+ "api_password": {
+ "type": "string",
+ "title": "API Password",
+ "description": "The API Password for your private application in the `Shopify` store.",
+ "airbyte_secret": true,
+ "order": 1
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "OAuth2.0",
+ "description": "OAuth2.0",
+ "required": [ "auth_method" ],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of the Shopify developer application.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of the Shopify developer application.",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The Access Token for making authenticated requests.",
+ "airbyte_secret": true,
+ "order": 3
+ }
+ }
+ } ]
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Replication Start Date",
+ "description": "The date you would like to replicate data from. Format: YYYY-MM-DD. Any data before this date will not be replicated.",
+ "examples": [ "2021-01-01" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "auth_method" ],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "shop": {
+ "type": "string",
+ "path_in_connector_config": [ "shop" ]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "access_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "2fed2292-5586-480c-af92-9944e39fe12d",
+ "name": "Short.io",
+ "dockerRepository": "airbyte/source-shortio",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/shortio",
+ "icon": "short.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://developers.short.io/reference",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Shortio Spec",
+ "type": "object",
+ "required": [ "domain_id", "secret_key", "start_date" ],
+ "properties": {
+ "domain_id": {
+ "type": "string",
+ "desciprtion": "Short.io Domain ID",
+ "title": "Domain ID",
+ "airbyte_secret": false
+ },
+ "secret_key": {
+ "type": "string",
+ "title": "Secret Key",
+ "description": "Short.io Secret Key",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "airbyte_secret": false
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "c2281cee-86f9-4a86-bb48-d23286b4c7bd",
+ "name": "Slack",
+ "dockerRepository": "airbyte/source-slack",
+ "dockerImageTag": "0.1.25",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/slack",
+ "icon": "slack.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/slack",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Slack Spec",
+ "type": "object",
+ "required": [ "start_date", "lookback_window", "join_channels" ],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": [ "2017-01-25T00:00:00Z" ],
+ "title": "Start Date",
+ "format": "date-time"
+ },
+ "lookback_window": {
+ "type": "integer",
+ "title": "Threads Lookback window (Days)",
+ "description": "How far into the past to look for messages in threads.",
+ "examples": [ 7, 14 ]
+ },
+ "join_channels": {
+ "type": "boolean",
+ "default": true,
+ "title": "Join all channels",
+ "description": "Whether to join all channels or to sync data only from channels the bot is already in. If false, you'll need to manually add the bot to all the channels from which you'd like to sync messages. "
+ },
+ "channel_filter": {
+ "type": "array",
+ "default": [ ],
+ "items": {
+ "type": "string",
+ "minLength": 0
+ },
+ "title": "Channel name filter",
+ "description": "A channel name list (without leading '#' char) which limit the channels from which you'd like to sync. Empty list means no filter.",
+ "examples": [ "channel_one", "channel_two" ]
+ },
+ "credentials": {
+ "title": "Authentication mechanism",
+ "description": "Choose how to authenticate into Slack",
+ "type": "object",
+ "oneOf": [ {
+ "type": "object",
+ "title": "Sign in via Slack (OAuth)",
+ "required": [ "option_title", "client_id", "client_secret", "access_token" ],
+ "properties": {
+ "option_title": {
+ "type": "string",
+ "const": "Default OAuth2.0 authorization"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "Slack client_id. See our docs if you need help finding this id."
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "Slack client_secret. See our docs if you need help finding this secret.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access token",
+ "description": "Slack access_token. See our docs if you need help generating the token.",
+ "airbyte_secret": true
+ }
+ },
+ "order": 0
+ }, {
+ "type": "object",
+ "title": "API Token",
+ "required": [ "option_title", "api_token" ],
+ "properties": {
+ "option_title": {
+ "type": "string",
+ "const": "API Token Credentials"
+ },
+ "api_token": {
+ "type": "string",
+ "title": "API Token",
+ "description": "A Slack bot token. See the docs for instructions on how to generate it.",
+ "airbyte_secret": true
+ }
+ },
+ "order": 1
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "option_title" ],
+ "predicate_value": "Default OAuth2.0 authorization",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "access_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "slack.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "781f8b1d-4e20-4842-a2c3-cd9b119d65fa",
+ "name": "Smaily",
+ "dockerRepository": "airbyte/source-smaily",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/smaily",
+ "icon": "smaily.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/smaily",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Smaily Spec",
+ "type": "object",
+ "required": [ "api_subdomain", "api_username", "api_password" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_subdomain": {
+ "type": "string",
+ "title": "API Subdomain",
+ "description": "API Subdomain. See https://smaily.com/help/api/general/create-api-user/"
+ },
+ "api_username": {
+ "type": "string",
+ "title": "API User Username",
+ "description": "API user username. See https://smaily.com/help/api/general/create-api-user/"
+ },
+ "api_password": {
+ "type": "string",
+ "title": "API User Password",
+ "description": "API user password. See https://smaily.com/help/api/general/create-api-user/",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "21cc4a17-a011-4485-8a3e-e2341a91ab9f",
+ "name": "SmartEngage",
+ "dockerRepository": "airbyte/source-smartengage",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/smartengage",
+ "icon": "smartengage.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/smartengage",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "SmartEngage Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "374ebc65-6636-4ea0-925c-7d35999a8ffc",
+ "name": "Smartsheets",
+ "dockerRepository": "airbyte/source-smartsheets",
+ "dockerImageTag": "1.0.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/smartsheets",
+ "icon": "smartsheet.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/smartsheets",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Smartsheets Source Spec",
+ "type": "object",
+ "required": [ "credentials", "spreadsheet_id" ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "order": 0,
+ "oneOf": [ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [ "client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "oauth2.0"
+ },
+ "client_id": {
+ "type": "string",
+ "description": "The API ID of the SmartSheets developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "description": "The API Secret the SmartSheets developer application.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "description": "The date-time when the access token should be refreshed.",
+ "format": "date-time"
+ },
+ "refresh_token": {
+ "type": "string",
+ "description": "The key to refresh the expired access_token.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "API Access Token",
+ "type": "object",
+ "required": [ "access_token" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "access_token"
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The access token to use for accessing your data from Smartsheets. This access token must be generated by a user with at least read access to the data you'd like to replicate. Generate an access token in the Smartsheets main menu by clicking Account > Apps & Integrations > API Access. See the setup guide for information on how to obtain this token.",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ },
+ "spreadsheet_id": {
+ "title": "Sheet ID",
+ "description": "The spreadsheet ID. Find it by opening the spreadsheet then navigating to File > Properties",
+ "type": "string",
+ "order": 1
+ },
+ "start_datetime": {
+ "title": "Start Datetime",
+ "type": "string",
+ "examples": [ "2000-01-01T13:00:00", "2000-01-01T13:00:00-07:00" ],
+ "description": "Only rows modified after this date/time will be replicated. This should be an ISO 8601 string, for instance: `2000-01-01T13:00:00`",
+ "format": "date-time",
+ "default": "2020-01-01T00:00:00+00:00",
+ "order": 2,
+ "airbyte_hidden": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "auth_type" ],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "access_token" ]
+ },
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "refresh_token" ]
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "format": "date-time",
+ "path_in_connector_config": [ "credentials", "token_expiry_date" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "app.smartsheet.com", "api.smartsheet.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "200330b2-ea62-4d11-ac6d-cfe3e3f8ab2b",
+ "name": "Snapchat Marketing",
+ "dockerRepository": "airbyte/source-snapchat-marketing",
+ "dockerImageTag": "0.1.16",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/snapchat-marketing",
+ "icon": "snapchat.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/snapchat-marketing",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Snapchat Marketing Spec",
+ "type": "object",
+ "required": [ "client_id", "client_secret", "refresh_token" ],
+ "properties": {
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Snapchat developer application.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Snapchat developer application.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "Refresh Token to renew the expired Access Token.",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "Date in the format 2022-01-01. Any data before this date will not be replicated.",
+ "examples": [ "2022-01-01" ],
+ "default": "2022-01-01",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 3,
+ "format": "date"
+ },
+ "end_date": {
+ "type": "string",
+ "title": "End Date",
+ "description": "Date in the format 2017-01-25. Any data after this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": [ "2022-01-30" ],
+ "order": 4,
+ "format": "date"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ ],
+ "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
+ "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "accounts.snapchat.com", "adsapi.snapchat.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "e2d65910-8c8b-40a1-ae7d-ee2416b2bfa2",
+ "name": "Snowflake",
+ "dockerRepository": "airbyte/source-snowflake",
+ "dockerImageTag": "0.1.34",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/snowflake",
+ "icon": "snowflake.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/snowflake",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Snowflake Source Spec",
+ "type": "object",
+ "required": [ "host", "role", "warehouse", "database" ],
+ "properties": {
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "oneOf": [ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "order": 0,
+ "required": [ "client_id", "client_secret", "auth_type" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "OAuth",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your Snowflake developer application.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your Snowflake developer application.",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "Refresh Token for making authenticated requests.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Username and Password",
+ "type": "object",
+ "required": [ "username", "password", "auth_type" ],
+ "order": 1,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "username/password",
+ "order": 0
+ },
+ "username": {
+ "description": "The username you created to allow Airbyte to access the database.",
+ "examples": [ "AIRBYTE_USER" ],
+ "type": "string",
+ "title": "Username",
+ "order": 1
+ },
+ "password": {
+ "description": "The password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "title": "Password",
+ "order": 2
+ }
+ }
+ } ],
+ "order": 0
+ },
+ "host": {
+ "description": "The host domain of the snowflake instance (must include the account, region, cloud environment, and end with snowflakecomputing.com).",
+ "examples": [ "accountname.us-east-2.aws.snowflakecomputing.com" ],
+ "type": "string",
+ "title": "Account Name",
+ "order": 1
+ },
+ "role": {
+ "description": "The role you created for Airbyte to access Snowflake.",
+ "examples": [ "AIRBYTE_ROLE" ],
+ "type": "string",
+ "title": "Role",
+ "order": 2
+ },
+ "warehouse": {
+ "description": "The warehouse you created for Airbyte to access data.",
+ "examples": [ "AIRBYTE_WAREHOUSE" ],
+ "type": "string",
+ "title": "Warehouse",
+ "order": 3
+ },
+ "database": {
+ "description": "The database you created for Airbyte to access data.",
+ "examples": [ "AIRBYTE_DATABASE" ],
+ "type": "string",
+ "title": "Database",
+ "order": 4
+ },
+ "schema": {
+ "description": "The source Snowflake schema tables. Leave empty to access tables from multiple schemas.",
+ "examples": [ "AIRBYTE_SCHEMA" ],
+ "type": "string",
+ "title": "Schema",
+ "order": 5
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 6
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "auth_type" ],
+ "predicate_value": "OAuth",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "path_in_connector_config": [ "host" ]
+ },
+ "role": {
+ "type": "string",
+ "path_in_connector_config": [ "role" ]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "access_token" ]
+ },
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "refresh_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "${host}" ]
+ }
+ }, {
+ "sourceDefinitionId": "3ab1d7d0-1577-4ab9-bcc4-1ff6a4c2c9f2",
+ "name": "Sonar Cloud",
+ "dockerRepository": "airbyte/source-sonar-cloud",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sonar-cloud",
+ "icon": "sonarcloud.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sonar-cloud",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Sonar Cloud Spec",
+ "type": "object",
+ "required": [ "user_token", "organization", "component_keys" ],
+ "additionalProperties": true,
+ "properties": {
+ "user_token": {
+ "title": "User Token",
+ "type": "string",
+ "description": "Your User Token. See here. The token is case sensitive.",
+ "airbyte_secret": true
+ },
+ "organization": {
+ "title": "Organization",
+ "type": "string",
+ "description": "Organization key. See here.",
+ "examples": [ "airbyte" ]
+ },
+ "component_keys": {
+ "title": "Component Keys",
+ "type": "array",
+ "description": "Comma-separated list of component keys.",
+ "examples": [ "airbyte-ws-order", "airbyte-ws-checkout" ]
+ },
+ "start_date": {
+ "title": "Start date",
+ "type": "string",
+ "description": "To retrieve issues created after the given date (inclusive).",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": [ "YYYY-MM-DD" ],
+ "format": "date"
+ },
+ "end_date": {
+ "title": "End date",
+ "type": "string",
+ "description": "To retrieve issues created before the given date (inclusive).",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": [ "YYYY-MM-DD" ],
+ "format": "date"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "sonarcloud.io" ]
+ }
+ }, {
+ "sourceDefinitionId": "62235e65-af7a-4138-9130-0bda954eb6a8",
+ "name": "SpaceX API",
+ "dockerRepository": "airbyte/source-spacex-api",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/spacex-api",
+ "icon": "spacex.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/spacex-api",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Spacex Api Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "id": {
+ "title": "Unique ID for specific source target",
+ "type": "string",
+ "desciption": "Optional, For a specific ID"
+ },
+ "options": {
+ "title": "Configuration options for endpoints",
+ "type": "string",
+ "desciption": "Optional, Possible values for an endpoint. Example values for launches-latest, upcoming, past"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "77225a51-cd15-4a13-af02-65816bd0ecf4",
+ "name": "Square",
+ "dockerRepository": "airbyte/source-square",
+ "dockerImageTag": "0.2.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/square",
+ "icon": "square.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/square",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Square Spec",
+ "type": "object",
+ "required": [ "is_sandbox" ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authentication",
+ "description": "Choose how to authenticate to Square.",
+ "type": "object",
+ "order": 0,
+ "oneOf": [ {
+ "title": "Oauth authentication",
+ "type": "object",
+ "required": [ "auth_type", "client_id", "client_secret", "refresh_token" ],
+ "properties": {
+ "credentials_title": {
+ "type": "string",
+ "const": "OAuth Credentials",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Square-issued ID of your application",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Square-issued application secret for your application",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "A refresh token generated using the above client ID and secret",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "API key",
+ "type": "object",
+ "required": [ "auth_type", "api_key" ],
+ "properties": {
+ "credentials_title": {
+ "type": "string",
+ "const": "API Key",
+ "order": 0
+ },
+ "api_key": {
+ "type": "string",
+ "title": "API key token",
+ "description": "The API key for a Square application",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ },
+ "is_sandbox": {
+ "type": "boolean",
+ "description": "Determines whether to use the sandbox or production environment.",
+ "title": "Sandbox",
+ "default": false,
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "description": "UTC date in the format YYYY-MM-DD. Any data before this date will not be replicated. If not set, all data will be replicated.",
+ "title": "Start Date",
+ "default": "2021-01-01",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": "2,",
+ "format": "date"
+ },
+ "include_deleted_objects": {
+ "type": "boolean",
+ "description": "In some streams there is an option to include deleted objects (Items, Categories, Discounts, Taxes)",
+ "title": "Include Deleted Objects",
+ "default": false,
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ "credentials", "0" ],
+ "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
+ "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
+ }
+ },
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "auth_type" ],
+ "predicate_value": "Oauth",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "refresh_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "connect.squareupsandbox.com", "connect.squareup.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "7a4327c4-315a-11ec-8d3d-0242ac130003",
+ "name": "Strava",
+ "dockerRepository": "airbyte/source-strava",
+ "dockerImageTag": "0.1.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/strava",
+ "icon": "strava.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/strava",
+ "connectionSpecification": {
+ "$schema": "https://json-schema.org/draft-07/schema#",
+ "title": "Strava Spec",
+ "type": "object",
+ "required": [ "client_id", "client_secret", "refresh_token", "athlete_id", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client",
+ "enum": [ "Client" ],
+ "default": "Client"
+ },
+ "client_id": {
+ "type": "string",
+ "description": "The Client ID of your Strava developer application.",
+ "title": "Client ID",
+ "pattern": "^[0-9_\\-]+$",
+ "examples": [ "12345" ],
+ "order": 0
+ },
+ "client_secret": {
+ "type": "string",
+ "description": "The Client Secret of your Strava developer application.",
+ "title": "Client Secret",
+ "pattern": "^[0-9a-fA-F]+$",
+ "examples": [ "fc6243f283e51f6ca989aab298b17da125496f50" ],
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "refresh_token": {
+ "type": "string",
+ "description": "The Refresh Token with the activity: read_all permissions.",
+ "title": "Refresh Token",
+ "pattern": "^[0-9a-fA-F]+$",
+ "examples": [ "fc6243f283e51f6ca989aab298b17da125496f50" ],
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "athlete_id": {
+ "type": "integer",
+ "description": "The Athlete ID of your Strava developer application.",
+ "title": "Athlete ID",
+ "pattern": "^[0-9_\\-]+$",
+ "examples": [ "17831421" ],
+ "order": 3
+ },
+ "start_date": {
+ "type": "string",
+ "description": "UTC date and time. Any data before this date will not be replicated.",
+ "title": "Start Date",
+ "examples": [ "2021-03-01T00:00:00Z" ],
+ "format": "date-time",
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "auth_type" ],
+ "predicate_value": "Client",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": [ "refresh_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "strava.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "74cbd708-46c3-4512-9c93-abd5c3e9a94d",
+ "name": "Statuspage",
+ "dockerRepository": "airbyte/source-statuspage",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/statuspage",
+ "icon": "statuspage.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/statuspage",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Statuspage Spec",
+ "type": "object",
+ "required": [ "api_key" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Your API Key. See here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "e094cb9a-26de-4645-8761-65c0c425d1de",
+ "name": "Stripe",
+ "dockerRepository": "airbyte/source-stripe",
+ "dockerImageTag": "3.4.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/stripe",
+ "icon": "stripe.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/stripe",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Stripe Source Spec",
+ "type": "object",
+ "required": [ "client_secret", "account_id", "start_date" ],
+ "properties": {
+ "account_id": {
+ "type": "string",
+ "title": "Account ID",
+ "description": "Your Stripe account ID (starts with 'acct_', find yours here).",
+ "order": 0
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Secret Key",
+ "description": "Stripe API key (usually starts with 'sk_live_'; find yours here).",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Replication start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Only data generated after this date will be replicated.",
+ "examples": [ "2017-01-25T00:00:00Z" ],
+ "format": "date-time",
+ "order": 2
+ },
+ "lookback_window_days": {
+ "type": "integer",
+ "title": "Lookback Window in days",
+ "default": 0,
+ "minimum": 0,
+ "description": "When set, the connector will always re-export data from the past N days, where N is the value set here. This is useful if your data is frequently updated after creation. More info here",
+ "order": 3
+ },
+ "slice_range": {
+ "type": "integer",
+ "title": "Data request time increment in days",
+ "default": 365,
+ "minimum": 1,
+ "examples": [ 1, 3, 10, 30, 180, 360 ],
+ "description": "The time increment used by the connector when requesting data from the Stripe API. The bigger the value is, the less requests will be made and faster the sync will be. On the other hand, the more seldom the state is persisted.",
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "api.stripe.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "dd4632f4-15e0-4649-9b71-41719fb1fdee",
+ "name": "SurveyCTO",
+ "dockerRepository": "airbyte/source-surveycto",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/surveycto",
+ "icon": "surveycto.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/surveycto",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Surveycto Spec",
+ "type": "object",
+ "required": [ "server_name", "username", "password", "form_id" ],
+ "properties": {
+ "server_name": {
+ "type": "string",
+ "title": "Server Name",
+ "description": "The name of the SurveryCTO server",
+ "order": 0
+ },
+ "username": {
+ "type": "string",
+ "title": "Username",
+ "description": "Username to authenticate into the SurveyCTO server",
+ "order": 1
+ },
+ "password": {
+ "type": "string",
+ "title": "Password",
+ "description": "Password to authenticate into the SurveyCTO server",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "form_id": {
+ "type": "array",
+ "title": "Form's Id",
+ "description": "Unique identifier for one of the forms",
+ "order": 3
+ },
+ "start_date": {
+ "type": "string",
+ "description": "initial date for survey cto",
+ "title": "Start Date",
+ "examples": [ "Jan 09, 2022 00:00:00 AM" ],
+ "default": "Jan 09, 2022 00:00:00 AM",
+ "order": 4,
+ "pattern": "^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dic) [0-9]{2}, [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} (AM|PM)$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "badc5925-0485-42be-8caa-b34096cb71b5",
+ "name": "SurveyMonkey",
+ "dockerRepository": "airbyte/source-surveymonkey",
+ "dockerImageTag": "0.1.16",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/surveymonkey",
+ "icon": "surveymonkey.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/surveymonkey",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "SurveyMonkey Spec",
+ "type": "object",
+ "required": [ "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "origin": {
+ "type": "string",
+ "order": 1,
+ "enum": [ "USA", "Europe", "Canada" ],
+ "default": "USA",
+ "title": "Origin datacenter of the SurveyMonkey account",
+ "description": "Depending on the originating datacenter of the SurveyMonkey account, the API access URL may be different."
+ },
+ "credentials": {
+ "title": "SurveyMonkey Authorization Method",
+ "description": "The authorization method to use to retrieve data from SurveyMonkey",
+ "type": "object",
+ "required": [ "auth_method", "access_token" ],
+ "order": 2,
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of the SurveyMonkey developer application.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of the SurveyMonkey developer application.",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "access_token": {
+ "title": "Access Token",
+ "order": 3,
+ "type": "string",
+ "airbyte_secret": true,
+ "description": "Access Token for making authenticated requests. See the docs for information on how to generate this key."
+ }
+ }
+ },
+ "start_date": {
+ "title": "Start Date",
+ "order": 3,
+ "type": "string",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z?$",
+ "examples": [ "2021-01-01T00:00:00Z" ],
+ "format": "date-time"
+ },
+ "survey_ids": {
+ "type": "array",
+ "order": 4,
+ "items": {
+ "type": "string",
+ "pattern": "^[0-9]{8,9}$"
+ },
+ "title": "Survey Monkey survey IDs",
+ "description": "IDs of the surveys from which you'd like to replicate data. If left empty, data from all boards to which you have access will be replicated."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "auth_method" ],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "origin": {
+ "type": "string",
+ "path_in_connector_config": [ "origin" ]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "access_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "api.surveymonkey.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "4a4d887b-0f2d-4b33-ab7f-9b01b9072804",
+ "name": "SurveySparrow",
+ "dockerRepository": "airbyte/source-survey-sparrow",
+ "dockerImageTag": "0.2.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/survey-sparrow",
+ "icon": "surveysparrow.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/surveysparrow",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Survey Sparrow Spec",
+ "type": "object",
+ "required": [ "access_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "description": "Your access token. See here. The key is case sensitive.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "survey_id": {
+ "type": "array",
+ "description": "A List of your survey ids for survey-specific stream",
+ "order": 2
+ },
+ "region": {
+ "title": "Base URL",
+ "type": "object",
+ "description": "Is your account location is EU based? If yes, the base url to retrieve data will be different.",
+ "oneOf": [ {
+ "title": "EU-based account",
+ "type": "object",
+ "properties": {
+ "url_base": {
+ "type": "string",
+ "const": "https://eu-api.surveysparrow.com/v3"
+ }
+ }
+ }, {
+ "title": "Global account",
+ "type": "object",
+ "properties": {
+ "url_base": {
+ "type": "string",
+ "const": "https://api.surveysparrow.com/v3"
+ }
+ }
+ } ],
+ "default": {
+ "title": "Global account",
+ "type": "object",
+ "properties": {
+ "url_base": {
+ "type": "string",
+ "const": "https://api.surveysparrow.com/v3"
+ }
+ }
+ },
+ "order": 1
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "f00d2cf4-3c28-499a-ba93-b50b6f26359e",
+ "name": "TalkDesk Explore",
+ "dockerRepository": "airbyte/source-talkdesk-explore",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/talkdesk-explore",
+ "icon": "talkdesk-explore.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Talkdesk Explore API Spec",
+ "type": "object",
+ "required": [ "start_date", "auth_url", "api_key" ],
+ "additionalProperties": false,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "START DATE",
+ "description": "The date from which you'd like to replicate data for Talkdesk Explore API, in the format YYYY-MM-DDT00:00:00. All data generated after this date will be replicated.",
+ "examples": [ "2020-10-15T00:00:00" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
+ "order": 0
+ },
+ "timezone": {
+ "type": "string",
+ "title": "TIMEZONE",
+ "description": "Timezone to use when generating reports. Only IANA timezones are supported (https://nodatime.org/TimeZones)",
+ "examples": [ "Europe/London", "America/Los_Angeles" ],
+ "default": "UTC",
+ "order": 1
+ },
+ "auth_url": {
+ "title": "AUTH URL",
+ "type": "string",
+ "description": "Talkdesk Auth URL. Only 'client_credentials' auth type supported at the moment.",
+ "examples": [ "https://xxxxxx.talkdeskid.com/oauth/token?grant_type=client_credentials" ],
+ "order": 2
+ },
+ "api_key": {
+ "title": "API KEY",
+ "type": "string",
+ "description": "Talkdesk API key.",
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "d1aa448b-7c54-498e-ad95-263cbebcd2db",
+ "name": "Tempo",
+ "dockerRepository": "airbyte/source-tempo",
+ "dockerImageTag": "0.3.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tempo",
+ "icon": "tempo.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Tempo Spec",
+ "type": "object",
+ "required": [ "api_token" ],
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "title": "API token",
+ "description": "Tempo API Token. Go to Tempo>Settings, scroll down to Data Access and select API integration.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "api.tempo.io" ]
+ }
+ }, {
+ "sourceDefinitionId": "aa8ba6fd-4875-d94e-fc8d-4e1e09aa2503",
+ "name": "Teradata",
+ "dockerRepository": "airbyte/source-teradata",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/teradata",
+ "icon": "teradata.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/teradata",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Teradata Source Spec",
+ "type": "object",
+ "required": [ "host", "database", "username" ],
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 3306,
+ "examples": [ "3306" ],
+ "order": 1
+ },
+ "database": {
+ "title": "Database",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "title": "Username",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "jdbc_url_params": {
+ "title": "JDBC URL params",
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3)",
+ "type": "string",
+ "order": 5
+ },
+ "replication_method": {
+ "title": "Replication method",
+ "description": "Replication method to use for extracting data from the database. STANDARD replication requires no setup on the DB side but will not be able to represent deletions incrementally. CDC uses the Binlog to detect inserts, updates, and deletes. This needs to be configured on the source database itself.",
+ "type": "string",
+ "order": 6,
+ "default": "STANDARD",
+ "enum": [ "STANDARD", "CDC" ]
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL. When activating SSL, please select one of the connection modes.",
+ "type": "boolean",
+ "default": false,
+ "order": 7
+ },
+ "ssl_mode": {
+ "title": "SSL Modes",
+ "description": "SSL connection modes. \n disable - Chose this mode to disable encryption of communication between Airbyte and destination database\n allow - Chose this mode to enable encryption only when required by the destination database\n prefer - Chose this mode to allow unencrypted connection only if the destination database does not support encryption\n require - Chose this mode to always require encryption. If the destination database server does not support encryption, connection will fail\n verify-ca - Chose this mode to always require encryption and to verify that the destination database server has a valid SSL certificate\n verify-full - This is the most secure mode. Chose this mode to always require encryption and to verify the identity of the destination database server\n See more information - in the docs.",
+ "type": "object",
+ "order": 8,
+ "oneOf": [ {
+ "title": "disable",
+ "additionalProperties": true,
+ "description": "Disable SSL.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "disable",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "allow",
+ "additionalProperties": true,
+ "description": "Allow SSL mode.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "allow",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "prefer",
+ "additionalProperties": true,
+ "description": "Prefer SSL mode.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "prefer",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "require",
+ "additionalProperties": true,
+ "description": "Require SSL mode.",
+ "required": [ "mode" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "require",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "verify-ca",
+ "additionalProperties": true,
+ "description": "Verify-ca SSL mode.",
+ "required": [ "mode", "ssl_ca_certificate" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-ca",
+ "order": 0
+ },
+ "ssl_ca_certificate": {
+ "type": "string",
+ "title": "CA certificate",
+ "description": "Specifies the file name of a PEM file that contains Certificate Authority (CA) certificates for use with SSLMODE=verify-ca.\n See more information - in the docs.",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ }
+ }
+ }, {
+ "title": "verify-full",
+ "additionalProperties": true,
+ "description": "Verify-full SSL mode.",
+ "required": [ "mode", "ssl_ca_certificate" ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-full",
+ "order": 0
+ },
+ "ssl_ca_certificate": {
+ "type": "string",
+ "title": "CA certificate",
+ "description": "Specifies the file name of a PEM file that contains Certificate Authority (CA) certificates for use with SSLMODE=verify-full.\n See more information - in the docs.",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "${host}" ]
+ }
+ }, {
+ "sourceDefinitionId": "0dad1a35-ccf8-4d03-b73e-6788c00b13ae",
+ "name": "TiDB",
+ "dockerRepository": "airbyte/source-tidb",
+ "dockerImageTag": "0.2.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tidb",
+ "icon": "tidb.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tidb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "TiDB Source Spec",
+ "type": "object",
+ "required": [ "host", "port", "database", "username" ],
+ "properties": {
+ "host": {
+ "description": "Hostname of the database.",
+ "title": "Host",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "description": "Port of the database.",
+ "title": "Port",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 4000,
+ "examples": [ "4000" ],
+ "order": 1
+ },
+ "database": {
+ "description": "Name of the database.",
+ "title": "Database",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "description": "Username to use to access the database.",
+ "title": "Username",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "description": "Password associated with the username.",
+ "title": "Password",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3)",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 5
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL.",
+ "type": "boolean",
+ "default": false,
+ "order": 6
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [ {
+ "title": "No Tunnel",
+ "required": [ "tunnel_method" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ }, {
+ "title": "SSH Key Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ }, {
+ "title": "Password Authentication",
+ "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
+ }
+ }, {
+ "sourceDefinitionId": "4bfac00d-ce15-44ff-95b9-9e3c3e8fbd35",
+ "name": "TikTok Marketing",
+ "dockerRepository": "airbyte/source-tiktok-marketing",
+ "dockerImageTag": "3.0.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tiktok-marketing",
+ "icon": "tiktok.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tiktok-marketing",
+ "changelogUrl": "https://docs.airbyte.com/integrations/sources/tiktok-marketing",
+ "connectionSpecification": {
+ "title": "TikTok Marketing Source Spec",
+ "type": "object",
+ "properties": {
+ "credentials": {
+ "title": "Authentication Method",
+ "description": "Authentication method",
+ "default": { },
+ "order": 0,
+ "type": "object",
+ "oneOf": [ {
+ "title": "OAuth2.0",
+ "type": "object",
+ "properties": {
+ "auth_type": {
+ "title": "Auth Type",
+ "const": "oauth2.0",
+ "order": 0,
+ "type": "string"
+ },
+ "app_id": {
+ "title": "App ID",
+ "description": "The Developer Application App ID.",
+ "airbyte_secret": true,
+ "type": "string"
+ },
+ "secret": {
+ "title": "Secret",
+ "description": "The Developer Application Secret.",
+ "airbyte_secret": true,
+ "type": "string"
+ },
+ "access_token": {
+ "title": "Access Token",
+ "description": "Long-term Authorized Access Token.",
+ "airbyte_secret": true,
+ "type": "string"
+ },
+ "advertiser_id": {
+ "title": "Advertiser ID",
+ "description": "The Advertiser ID to filter reports and streams. Let this empty to retrieve all.",
+ "type": "string"
+ }
+ },
+ "required": [ "app_id", "secret", "access_token" ]
+ }, {
+ "title": "Sandbox Access Token",
+ "type": "object",
+ "properties": {
+ "auth_type": {
+ "title": "Auth Type",
+ "const": "sandbox_access_token",
+ "order": 0,
+ "type": "string"
+ },
+ "advertiser_id": {
+ "title": "Advertiser ID",
+ "description": "The Advertiser ID which generated for the developer's Sandbox application.",
+ "type": "string"
+ },
+ "access_token": {
+ "title": "Access Token",
+ "description": "The long-term authorized access token.",
+ "airbyte_secret": true,
+ "type": "string"
+ }
+ },
+ "required": [ "advertiser_id", "access_token" ]
+ } ]
+ },
+ "start_date": {
+ "title": "Replication Start Date",
+ "description": "The Start Date in format: YYYY-MM-DD. Any data before this date will not be replicated. If this parameter is not set, all data will be replicated.",
+ "default": "2016-09-01",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 1,
+ "type": "string",
+ "format": "date"
+ },
+ "end_date": {
+ "title": "End Date",
+ "description": "The date until which you'd like to replicate data for all incremental streams, in the format YYYY-MM-DD. All data generated between start_date and this date will be replicated. Not setting this option will result in always syncing the data till the current date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 2,
+ "type": "string",
+ "format": "date"
+ },
+ "attribution_window": {
+ "title": "Attribution Window",
+ "description": "The attribution window in days.",
+ "default": 0,
+ "order": 3,
+ "type": "integer"
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "auth_type" ],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "title": "CompleteOauthOutputSpecification",
+ "type": "object",
+ "properties": {
+ "access_token": {
+ "title": "Access Token",
+ "path_in_connector_config": [ "credentials", "access_token" ],
+ "type": "string"
+ }
+ },
+ "required": [ "access_token" ]
+ },
+ "complete_oauth_server_input_specification": {
+ "title": "CompleteOauthServerInputSpecification",
+ "type": "object",
+ "properties": {
+ "app_id": {
+ "title": "App Id",
+ "type": "string"
+ },
+ "secret": {
+ "title": "Secret",
+ "type": "string"
+ }
+ },
+ "required": [ "app_id", "secret" ]
+ },
+ "complete_oauth_server_output_specification": {
+ "title": "CompleteOauthServerOutputSpecification",
+ "type": "object",
+ "properties": {
+ "app_id": {
+ "title": "App Id",
+ "path_in_connector_config": [ "credentials", "app_id" ],
+ "type": "string"
+ },
+ "secret": {
+ "title": "Secret",
+ "path_in_connector_config": [ "credentials", "secret" ],
+ "type": "string"
+ }
+ },
+ "required": [ "app_id", "secret" ]
+ }
+ }
+ },
+ "additionalProperties": true
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "sandbox-ads.tiktok.com", "business-api.tiktok.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "bc617b5f-1b9e-4a2d-bebe-782fd454a771",
+ "name": "Timely",
+ "dockerRepository": "airbyte/source-timely",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/timely",
+ "icon": "timely.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Timely Integration Spec",
+ "type": "object",
+ "required": [ "account_id", "start_date", "bearer_token" ],
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "title": "account_id",
+ "type": "string",
+ "description": "Timely account id"
+ },
+ "start_date": {
+ "title": "startDate",
+ "type": "string",
+ "description": "start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "example": "2022-05-06"
+ },
+ "bearer_token": {
+ "title": "Bearer token",
+ "type": "string",
+ "description": "Timely bearer token"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "6240848f-f795-45eb-8f5e-c7542822fc03",
+ "name": "TMDb",
+ "dockerRepository": "airbyte/source-tmdb",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tmdb",
+ "icon": "tmdb.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tmdb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Tmdb Spec",
+ "type": "object",
+ "required": [ "api_key", "movie_id", "query", "language" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "Unique key for establishing connection",
+ "type": "string",
+ "description": "API Key from tmdb account",
+ "airbyte_secret": true
+ },
+ "movie_id": {
+ "title": "Movie ID for targeting movies",
+ "type": "string",
+ "description": "Target movie ID, Mandate for movie streams (Example is 550)",
+ "examples": [ 550, 560 ]
+ },
+ "query": {
+ "title": "Query for search streams",
+ "type": "string",
+ "description": "Target movie ID, Mandate for search streams",
+ "examples": [ "Marvel", "DC" ]
+ },
+ "language": {
+ "title": "Language for filtering",
+ "type": "string",
+ "description": "Language expressed in ISO 639-1 scheme, Mandate for required streams (Example en-US)",
+ "examples": [ "en-US", "en-UK" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "7d272065-c316-4c04-a433-cd4ee143f83e",
+ "name": "Todoist",
+ "dockerRepository": "airbyte/source-todoist",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/todoist",
+ "icon": "todoist.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/todoist",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Todoist Spec",
+ "type": "object",
+ "required": [ "token" ],
+ "properties": {
+ "token": {
+ "type": "string",
+ "description": "Your API Token. See here. The token is case sensitive.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "7e7c844f-2300-4342-b7d3-6dd7992593cd",
+ "name": "Toggl",
+ "dockerRepository": "airbyte/source-toggl",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/toggl",
+ "icon": "toggl.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/toggl",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Toggl Spec",
+ "type": "object",
+ "required": [ "api_token", "organization_id", "workspace_id", "start_date", "end_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "title": "API token",
+ "type": "string",
+ "description": "Your API Token. See here. The token is case sensitive.",
+ "airbyte_secret": true
+ },
+ "organization_id": {
+ "title": "Organization ID",
+ "type": "integer",
+ "description": "Your organization id. See here."
+ },
+ "workspace_id": {
+ "title": "Workspace ID",
+ "type": "integer",
+ "description": "Your workspace id. See here."
+ },
+ "start_date": {
+ "title": "Start date",
+ "type": "string",
+ "description": "To retrieve time entries created after the given date (inclusive).",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": [ "YYYY-MM-DD" ]
+ },
+ "end_date": {
+ "title": "End date",
+ "type": "string",
+ "description": "To retrieve time entries created before the given date (inclusive).",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": [ "YYYY-MM-DD" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "d42bd69f-6bf0-4d0b-9209-16231af07a92",
+ "name": "The Guardian API",
+ "dockerRepository": "airbyte/source-the-guardian-api",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/the-guardian-api",
+ "icon": "theguardian.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/the-guardian-api",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "The Guardian Api Spec",
+ "type": "object",
+ "required": [ "api_key", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Your API Key. See here. The key is case sensitive.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "Use this to set the minimum date (YYYY-MM-DD) of the results. Results older than the start_date will not be shown.",
+ "pattern": "^([1-9][0-9]{3})\\-(0?[1-9]|1[012])\\-(0?[1-9]|[12][0-9]|3[01])$",
+ "examples": [ "YYYY-MM-DD" ]
+ },
+ "query": {
+ "title": "Query",
+ "type": "string",
+ "description": "(Optional) The query (q) parameter filters the results to only those that include that search term. The q parameter supports AND, OR and NOT operators.",
+ "examples": [ "environment AND NOT water", "environment AND political", "amusement park", "political" ]
+ },
+ "tag": {
+ "title": "Tag",
+ "type": "string",
+ "description": "(Optional) A tag is a piece of data that is used by The Guardian to categorise content. Use this parameter to filter results by showing only the ones matching the entered tag. See here for a list of all tags, and here for the tags endpoint documentation.",
+ "examples": [ "environment/recycling", "environment/plasticbags", "environment/energyefficiency" ]
+ },
+ "section": {
+ "title": "Section",
+ "type": "string",
+ "description": "(Optional) Use this to filter the results by a particular section. See here for a list of all sections, and here for the sections endpoint documentation.",
+ "examples": [ "media", "technology", "housing-network" ]
+ },
+ "end_date": {
+ "title": "End Date",
+ "type": "string",
+ "description": "(Optional) Use this to set the maximum date (YYYY-MM-DD) of the results. Results newer than the end_date will not be shown. Default is set to the current date (today) for incremental syncs.",
+ "pattern": "^([1-9][0-9]{3})\\-(0?[1-9]|1[012])\\-(0?[1-9]|[12][0-9]|3[01])$",
+ "examples": [ "YYYY-MM-DD" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "f9b6c538-ee12-42fe-8d4b-0c10f5955417",
+ "name": "TPLcentral",
+ "dockerRepository": "airbyte/source-tplcentral",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tplcentral",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tplcentral",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Tplcentral Spec",
+ "type": "object",
+ "required": [ "url_base", "client_id", "client_secret" ],
+ "additionalProperties": false,
+ "properties": {
+ "url_base": {
+ "title": "URL base",
+ "type": "string",
+ "format": "uri",
+ "default": "https://secure-wms.com/",
+ "pattern": "^https://"
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string"
+ },
+ "client_secret": {
+ "title": "Client secret",
+ "type": "string",
+ "airbyte_secret": true
+ },
+ "user_login_id": {
+ "title": "User login ID",
+ "description": "User login ID and/or name is required",
+ "type": "integer"
+ },
+ "user_login": {
+ "title": "User login name",
+ "description": "User login ID and/or name is required",
+ "type": "string"
+ },
+ "tpl_key": {
+ "title": "3PL GUID",
+ "type": "string"
+ },
+ "customer_id": {
+ "title": "Customer ID",
+ "type": "integer"
+ },
+ "facility_id": {
+ "title": "Facility ID",
+ "type": "integer"
+ },
+ "start_date": {
+ "title": "Start date",
+ "description": "Date and time together in RFC 3339 format, for example, 2018-11-13T20:20:39+00:00.",
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "8da67652-004c-11ec-9a03-0242ac130003",
+ "name": "Trello",
+ "dockerRepository": "airbyte/source-trello",
+ "dockerImageTag": "0.3.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/trello",
+ "icon": "trello.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/trello",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Trello Spec",
+ "type": "object",
+ "required": [ "key", "token", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "key": {
+ "type": "string",
+ "title": "API key",
+ "description": "Trello API key. See the docs for instructions on how to generate it.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "token": {
+ "type": "string",
+ "title": "API token",
+ "description": "Trello API token. See the docs for instructions on how to generate it.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": [ "2021-03-01T00:00:00Z" ],
+ "format": "date-time",
+ "order": 2
+ },
+ "board_ids": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "^[0-9a-fA-F]{24}$"
+ },
+ "title": "Trello Board IDs",
+ "description": "IDs of the boards to replicate data from. If left empty, data from all boards to which you have access will be replicated.",
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ ],
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "token": {
+ "type": "string",
+ "path_in_connector_config": [ "token" ]
+ },
+ "key": {
+ "type": "string",
+ "path_in_connector_config": [ "key" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "api.trello.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "d7e23ea6-d741-4314-9209-a33c91a2e945",
+ "name": "TrustPilot",
+ "dockerRepository": "airbyte/source-trustpilot",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/trustpilot",
+ "icon": "trustpilot.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Trustpilot Spec",
+ "type": "object",
+ "required": [ "credentials", "business_units", "start_date" ],
+ "properties": {
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "order": 0,
+ "oneOf": [ {
+ "type": "object",
+ "title": "OAuth 2.0",
+ "required": [ "client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "oauth2.0"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "API key",
+ "description": "The API key of the Trustpilot API application. (represents the OAuth Client ID)",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Secret",
+ "description": "The Secret of the Trustpilot API application. (represents the OAuth Client Secret)",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "title": "Token expiry date time",
+ "description": "The date-time when the access token should be refreshed.",
+ "format": "date-time"
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh token",
+ "description": "The key to refresh the expired access_token.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "API Key",
+ "description": "The API key authentication method gives you access to only the streams which are part of the Public API. When you want to get streams available via the Consumer API (e.g. the private reviews) you need to use authentication method OAuth 2.0.",
+ "required": [ "client_id" ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "apikey"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "API key",
+ "description": "The API key of the Trustpilot API application.",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ },
+ "business_units": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "Business Unit names",
+ "description": "The names of business units which shall be synchronized. Some streams e.g. configured_business_units or private_reviews use this configuration.",
+ "examples": [ "mydomain.com", "www.mydomain.com" ]
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "For streams with sync. method incremental the start date time to be used",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "%Y-%m-%dT%H:%M:%S" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "bd14b08f-9f43-400f-b2b6-7248b5c72561",
+ "name": "TVMaze Schedule",
+ "dockerRepository": "airbyte/source-tvmaze-schedule",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tvmaze-schedule",
+ "icon": "tvmazeschedule.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tvmaze-schedule",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "TVMaze Schedule Spec",
+ "type": "object",
+ "required": [ "start_date", "domestic_schedule_country_code" ],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "description": "Start date for TV schedule retrieval. May be in the future.",
+ "order": 0,
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
+ },
+ "end_date": {
+ "type": "string",
+ "description": "End date for TV schedule retrieval. May be in the future. Optional.\n",
+ "order": 1,
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
+ },
+ "domestic_schedule_country_code": {
+ "type": "string",
+ "description": "Country code for domestic TV schedule retrieval.",
+ "examples": [ "US", "GB" ]
+ },
+ "web_schedule_country_code": {
+ "type": "string",
+ "description": "ISO 3166-1 country code for web TV schedule retrieval. Leave blank for\nall countries plus global web channels (e.g. Netflix). Alternatively,\nset to 'global' for just global web channels.\n",
+ "examples": [ "US", "GB", "global" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "b9dc6155-672e-42ea-b10d-9f1f1fb95ab1",
+ "name": "Twilio",
+ "dockerRepository": "airbyte/source-twilio",
+ "dockerImageTag": "0.5.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/twilio",
+ "icon": "twilio.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/twilio",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Twilio Spec",
+ "type": "object",
+ "required": [ "account_sid", "auth_token", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "account_sid": {
+ "title": "Account ID",
+ "description": "Twilio account SID",
+ "airbyte_secret": true,
+ "type": "string",
+ "order": 1
+ },
+ "auth_token": {
+ "title": "Auth Token",
+ "description": "Twilio Auth Token.",
+ "airbyte_secret": true,
+ "type": "string",
+ "order": 2
+ },
+ "start_date": {
+ "title": "Replication Start Date",
+ "description": "UTC date and time in the format 2020-10-01T00:00:00Z. Any data before this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2020-10-01T00:00:00Z" ],
+ "type": "string",
+ "order": 3,
+ "format": "date-time"
+ },
+ "lookback_window": {
+ "title": "Lookback window",
+ "description": "How far into the past to look for records. (in minutes)",
+ "examples": [ 60 ],
+ "default": 0,
+ "minimum": 0,
+ "maximum": 576000,
+ "type": "integer",
+ "order": 4
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ "append" ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "api.twilio.com", "monitor.twilio.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "2446953b-b794-429b-a9b3-c821ba992a48",
+ "name": "Twilio Taskrouter",
+ "dockerRepository": "airbyte/source-twilio-taskrouter",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/twilio-taskrouter",
+ "icon": "twilio.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/twilio-taskrouter",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Twilio Taskrouter Spec",
+ "type": "object",
+ "required": [ "account_sid", "auth_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "account_sid": {
+ "title": "Account SID",
+ "type": "string",
+ "description": "Twilio Account ID",
+ "airbyte_secret": true
+ },
+ "auth_token": {
+ "type": "string",
+ "description": "Twilio Auth Token",
+ "airbyte_secret": true,
+ "title": "Auth Token"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "d7fd4f40-5e5a-4b8b-918f-a73077f8c131",
+ "name": "Twitter",
+ "dockerRepository": "airbyte/source-twitter",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/twitter",
+ "icon": "twitter.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/twitter",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Twitter Spec",
+ "type": "object",
+ "required": [ "api_key", "query" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "App only Bearer Token. See the docs for more information on how to obtain this token.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "query": {
+ "type": "string",
+ "title": "Search Query",
+ "description": "Query for matching Tweets. You can learn how to build this query by reading build a query guide .",
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The start date for retrieving tweets cannot be more than 7 days in the past.",
+ "format": "date-time",
+ "order": 2
+ },
+ "end_date": {
+ "type": "string",
+ "title": "End Date",
+ "description": "The end date for retrieving tweets must be a minimum of 10 seconds prior to the request time.",
+ "format": "date-time",
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "api.twitter.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "3c0c3cd1-b3e0-464a-9090-d3ceb5f92346",
+ "name": "Tyntec SMS",
+ "dockerRepository": "airbyte/source-tyntec-sms",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tyntec-sms",
+ "icon": "tyntec.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tyntec-sms",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Tyntec Sms Spec",
+ "type": "object",
+ "required": [ "api_key", "to", "from" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "Tyntec API Key",
+ "description": "Your Tyntec API Key. See here",
+ "order": 0,
+ "airbyte_secret": true
+ },
+ "to": {
+ "type": "string",
+ "title": "SMS Message Recipient Phone",
+ "description": "The phone number of the SMS message recipient (international).",
+ "order": 1
+ },
+ "from": {
+ "type": "string",
+ "title": "SMS Message Sender Phone",
+ "description": "The phone number of the SMS message sender (international).",
+ "order": 2
+ },
+ "message": {
+ "type": "string",
+ "title": "SMS Message Body",
+ "description": "The content of the SMS message to be sent.",
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "e7eff203-90bf-43e5-a240-19ea3056c474",
+ "name": "Typeform",
+ "dockerRepository": "airbyte/source-typeform",
+ "dockerImageTag": "0.1.12",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/typeform",
+ "icon": "typeform.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/typeform",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Typeform Spec",
+ "type": "object",
+ "required": [ "token", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "token": {
+ "type": "string",
+ "description": "The API Token for a Typeform account.",
+ "title": "API Token",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "start_date": {
+ "type": "string",
+ "description": "UTC date and time in the format: YYYY-MM-DDTHH:mm:ss[Z]. Any data before this date will not be replicated.",
+ "title": "Start Date",
+ "examples": [ "2020-01-01T00:00:00Z" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "order": 1,
+ "format": "date-time"
+ },
+ "form_ids": {
+ "title": "Form IDs to replicate",
+ "description": "When this parameter is set, the connector will replicate data only from the input forms. Otherwise, all forms in your Typeform account will be replicated. You can find form IDs in your form URLs. For example, in the URL \"https://mysite.typeform.com/to/u6nXL7\" the form_id is u6nXL7. You can find form URLs on Share panel",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "uniqueItems": true,
+ "order": 2
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "api.typeform.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "f77914a1-442b-4195-9355-8810a1f4ed3f",
+ "name": "Unleash",
+ "dockerRepository": "airbyte/source-unleash",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/unleash",
+ "icon": "unleash.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/unleash",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Unleash Source Spec",
+ "type": "object",
+ "required": [ "api_token", "api_url" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "title": "API Token Client",
+ "type": "string",
+ "description": "Your API Token (Server-Side SDK [Client]). See here. The token is case sensitive.",
+ "airbyte_secret": true,
+ "examples": [ "project:environment.be44368985f7fb3237c584ef86f3d6bdada42ddbd63a019d26955178", "*:environment.be44368985f7fb3237c584ef86f3d6bdada42ddbd63a019d26955178", "be44368985f7fb3237c584ef86f3d6bdada42ddbd63a019d26955178" ]
+ },
+ "api_url": {
+ "title": "API URL",
+ "type": "string",
+ "description": "Your API URL. No trailing slash. ex: http://unleash.host.com/api"
+ },
+ "project_name": {
+ "title": "Project Name",
+ "type": "string",
+ "description": "Use this if you want to filter the API call for only one given project (can be used in addition to the \"Feature Name Prefix\" field). See here"
+ },
+ "nameprefix": {
+ "title": "Feature Name Prefix",
+ "type": "string",
+ "description": "Use this if you want to filter the API call for only one given project (can be used in addition to the \"Feature Name Prefix\" field). See here"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "c4cfaeda-c757-489a-8aba-859fb08b6970",
+ "name": "US Census",
+ "dockerRepository": "airbyte/source-us-census",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/us-census",
+ "icon": "uscensus.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/us-census",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "https://api.census.gov/ Source Spec",
+ "type": "object",
+ "required": [ "api_key", "query_path" ],
+ "additionalProperties": false,
+ "properties": {
+ "query_params": {
+ "type": "string",
+ "description": "The query parameters portion of the GET request, without the api key",
+ "pattern": "^\\w+=[\\w,:*]+(&(?!key)\\w+=[\\w,:*]+)*$",
+ "examples": [ "get=NAME,NAICS2017_LABEL,LFO_LABEL,EMPSZES_LABEL,ESTAB,PAYANN,PAYQTR1,EMP&for=us:*&NAICS2017=72&LFO=001&EMPSZES=001", "get=MOVEDIN,GEOID1,GEOID2,MOVEDOUT,FULL1_NAME,FULL2_NAME,MOVEDNET&for=county:*" ]
+ },
+ "query_path": {
+ "type": "string",
+ "description": "The path portion of the GET request",
+ "pattern": "^data(\\/[\\w\\d]+)+$",
+ "examples": [ "data/2019/cbp", "data/2018/acs", "data/timeseries/healthins/sahie" ]
+ },
+ "api_key": {
+ "type": "string",
+ "description": "Your API Key. Get your key here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "afa734e4-3571-11ec-991a-1e0031268139",
+ "name": "YouTube Analytics",
+ "dockerRepository": "airbyte/source-youtube-analytics",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/youtube-analytics",
+ "icon": "youtube-analytics.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/youtube-analytics",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "YouTube Analytics Spec",
+ "type": "object",
+ "required": [ "credentials" ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authenticate via OAuth 2.0",
+ "type": "object",
+ "required": [ "client_id", "client_secret", "refresh_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your developer application",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The client secret of your developer application",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "A refresh token generated using the above client ID and secret",
+ "airbyte_secret": true
+ }
+ }
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [ "credentials" ],
+ "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
+ "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "*.googleapis.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "28ce1fbd-1e15-453f-aa9f-da6c4d928e92",
+ "name": "Vantage",
+ "dockerRepository": "airbyte/source-vantage",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/vantage",
+ "icon": "vantage.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/vantage",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Vantage Spec",
+ "type": "object",
+ "required": [ "access_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "access_token": {
+ "title": "API Access Token",
+ "type": "string",
+ "description": "Your API Access token. See here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "7e20ce3e-d820-4327-ad7a-88f3927fd97a",
+ "name": "VictorOps",
+ "dockerRepository": "farosai/airbyte-victorops-source",
+ "dockerImageTag": "0.1.23",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/victorops",
+ "icon": "victorops.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.faros.ai",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "VictorOps Spec",
+ "type": "object",
+ "required": [ "apiId", "apiKey" ],
+ "additionalProperties": true,
+ "properties": {
+ "apiId": {
+ "type": "string",
+ "title": "VictorOps API ID",
+ "airbyte_secret": true
+ },
+ "apiKey": {
+ "type": "string",
+ "title": "VictorOps API key",
+ "airbyte_secret": true
+ },
+ "maxContentLength": {
+ "type": "number",
+ "title": "VictorOps Content Length",
+ "description": "VictorOps API response content length limit, try increasing if 'RequestError' is encountered.",
+ "default": 500000
+ },
+ "pageLimit": {
+ "type": "number",
+ "title": "VictorOps Page Limit",
+ "default": 100
+ },
+ "currentPhase": {
+ "type": "string",
+ "title": "VictorOps Current Phase",
+ "default": "triggered,acknowledged,resolved"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "42495935-95de-4f5c-ae08-8fac00f6b308",
+ "name": "Visma E-conomic",
+ "dockerRepository": "airbyte/source-visma-economic",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/visma-economic",
+ "icon": "visma-e-conomic.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/visma-economic",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Visma E-conomic Spec",
+ "type": "object",
+ "required": [ "app_secret_token", "agreement_grant_token" ],
+ "properties": {
+ "app_secret_token": {
+ "title": "App Secret Token",
+ "type": "string",
+ "description": "Identification token for app accessing data",
+ "airbyte_secret": true
+ },
+ "agreement_grant_token": {
+ "title": "Agreement Grant Token",
+ "type": "string",
+ "description": "Identifier for the grant issued by an agreement",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "6c6d8b0c-db35-4cd1-a7de-0ca8b080f5ac",
+ "name": "Vitally",
+ "dockerRepository": "airbyte/source-vitally",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/vitally",
+ "icon": "vitally.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/vitally",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Vitally Spec",
+ "type": "object",
+ "required": [ "api_key", "status" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Token",
+ "description": "The API Token for a Vitally account.",
+ "airbyte_secret": true
+ },
+ "status": {
+ "type": "string",
+ "title": "Status",
+ "description": "Status of the Vitally accounts. One of the following values; active, churned, activeOrChurned.",
+ "enum": [ "active", "churned", "activeOrChurned" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "6fd1e833-dd6e-45ec-a727-ab917c5be892",
+ "name": "Xero",
+ "dockerRepository": "airbyte/source-xero",
+ "dockerImageTag": "0.2.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/xero",
+ "icon": "xero.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/xero",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Xero Spec",
+ "type": "object",
+ "required": [ "authentication", "tenant_id", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "authentication": {
+ "type": "object",
+ "title": "Authenticate via Xero (OAuth)",
+ "required": [ "client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date" ],
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "Enter your Xero application's Client ID"
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "Enter your Xero application's Client Secret",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "Enter your Xero application's refresh token",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Enter your Xero application's access token",
+ "airbyte_secret": true
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "description": "The date-time when the access token should be refreshed"
+ }
+ },
+ "order": 0
+ },
+ "tenant_id": {
+ "title": "Tenant ID",
+ "type": "string",
+ "description": "Enter your Xero organization's Tenant ID",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format YYYY-MM-DDTHH:mm:ssZ. Any data with created_at before this data will not be synced.",
+ "examples": [ "2022-03-01T00:00:00Z" ],
+ "format": "date-time",
+ "order": 2
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ ],
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": [ "authentication", "refresh_token" ]
+ },
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": [ "authentication", "access_token" ]
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "path_in_connector_config": [ "authentication", "token_expiry_date" ],
+ "format": "date-time"
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "authentication", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "authentication", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "api.xero.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "80fddd16-17bd-4c0c-bf4a-80df7863fc9d",
+ "name": "xkcd",
+ "dockerRepository": "airbyte/source-xkcd",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/xkcd",
+ "icon": "xkcd.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/xkcd",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Xkcd Spec",
+ "type": "object",
+ "properties": { }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "5db8292c-5f5a-11ed-9b6a-0242ac120002",
+ "name": "Weatherstack",
+ "dockerRepository": "airbyte/source-weatherstack",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/weatherstack",
+ "icon": "weatherstack.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/weatherstack",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Weatherstack Spec",
+ "type": "object",
+ "required": [ "access_key", "query", "historical_date" ],
+ "properties": {
+ "is_paid_account": {
+ "order": 0,
+ "title": "Is Paid Account",
+ "description": "Toggle if you're using a Paid subscription",
+ "type": "boolean",
+ "default": false
+ },
+ "access_key": {
+ "order": 1,
+ "type": "string",
+ "description": "API access key used to retrieve data from the Weatherstack API.(https://weatherstack.com/product)",
+ "airbyte_secret": true
+ },
+ "query": {
+ "order": 2,
+ "type": "string",
+ "description": "A location to query such as city, IP, latitudeLongitude, or zipcode. Multiple locations with semicolon seperated if using a professional plan or higher. For more info- (https://weatherstack.com/documentation#query_parameter)",
+ "examples": [ "New York", "London", "98101" ]
+ },
+ "historical_date": {
+ "order": 3,
+ "type": "string",
+ "description": "This is required for enabling the Historical date API with format- (YYYY-MM-DD). * Note, only supported by paid accounts",
+ "examples": [ "2015-01-21" ],
+ "default\"": "2000-01-01",
+ "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "ef580275-d9a9-48bb-af5e-db0f5855be04",
+ "name": "Webflow",
+ "dockerRepository": "airbyte/source-webflow",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/webflow",
+ "icon": "webflow.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/webflow",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Webflow Spec",
+ "type": "object",
+ "required": [ "api_key", "site_id" ],
+ "additionalProperties": false,
+ "properties": {
+ "site_id": {
+ "title": "Site id",
+ "type": "string",
+ "description": "The id of the Webflow site you are requesting data from. See https://developers.webflow.com/#sites",
+ "example": "a relatively long hex sequence",
+ "order": 0
+ },
+ "api_key": {
+ "title": "API token",
+ "type": "string",
+ "description": "The API token for authenticating to Webflow. See https://university.webflow.com/lesson/intro-to-the-webflow-api",
+ "example": "a very long hex sequence",
+ "order": 1,
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "e65f84c0-7598-458a-bfac-f770c381ff5d",
+ "name": "Whisky Hunter",
+ "dockerRepository": "airbyte/source-whisky-hunter",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/whisky-hunter",
+ "icon": "whiskyhunter.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/whisky-hunter",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Whisky Hunter Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "properties": { }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "2a2552ca-9f78-4c1c-9eb7-4d0dc66d72df",
+ "name": "WooCommerce",
+ "dockerRepository": "airbyte/source-woocommerce",
+ "dockerImageTag": "0.2.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/woocommerce",
+ "icon": "woocommerce.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/woocommerce",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Woocommerce Spec",
+ "type": "object",
+ "required": [ "api_key", "api_secret", "shop", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "Customer Key",
+ "description": "Customer Key for API in WooCommerce shop",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "api_secret": {
+ "type": "string",
+ "title": "Customer Secret",
+ "description": "Customer Secret for API in WooCommerce shop",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "shop": {
+ "type": "string",
+ "title": "Shop Name",
+ "description": "The name of the store. For https://EXAMPLE.com, the shop name is 'EXAMPLE.com'.",
+ "order": 2
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date you would like to replicate data from. Format: YYYY-MM-DD",
+ "examples": [ "2021-01-01" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "format": "date",
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "${domain}" ]
+ }
+ }, {
+ "sourceDefinitionId": "ef3c99c6-9e90-43c8-9517-926cfd978517",
+ "name": "Workable",
+ "dockerRepository": "airbyte/source-workable",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/workable",
+ "icon": "workable.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/workable",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Workable API Spec",
+ "type": "object",
+ "required": [ "api_key", "account_subdomain", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Your Workable API Key. See here.",
+ "airbyte_secret": true
+ },
+ "account_subdomain": {
+ "title": "Account Subdomain",
+ "type": "string",
+ "description": "Your Workable account subdomain, e.g. https://your_account_subdomain.workable.com."
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "Get data that was created since this date (format: YYYYMMDDTHHMMSSZ).",
+ "pattern": "^[0-9]{8}T[0-9]{6}Z$",
+ "examples": [ "20150708T115616Z", "20221115T225616Z" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "9c13f986-a13b-4988-b808-4705badf71c2",
+ "name": "Wrike",
+ "dockerRepository": "airbyte/source-wrike",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/wrike",
+ "icon": "wrike.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Wrike Spec",
+ "type": "object",
+ "required": [ "access_token", "wrike_instance" ],
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "title": "Permanent Access Token",
+ "description": "Permanent access token. You can find documentation on how to acquire a permanent access token here",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "wrike_instance": {
+ "type": "string",
+ "title": "Wrike Instance (hostname)",
+ "description": "Wrike's instance such as `app-us2.wrike.com`",
+ "default": "app-us2.wrike.com",
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date for comments",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Only comments after this date will be replicated.",
+ "examples": [ "2017-01-25T00:00:00Z" ],
+ "order": 2
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "b8c917bc-7d1b-4828-995f-6726820266d0",
+ "name": "Zapier Supported Storage",
+ "dockerRepository": "airbyte/source-zapier-supported-storage",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-supported-storage",
+ "icon": "zapiersupportedstorage.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zapier-supported-storage",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Zapier Supported Storage Spec",
+ "type": "object",
+ "required": [ "secret" ],
+ "additionalProperties": true,
+ "properties": {
+ "secret": {
+ "title": "Secret Key",
+ "type": "string",
+ "description": "Secret key supplied by zapier",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "40d24d0f-b8f9-4fe0-9e6c-b06c0f3f45e4",
+ "name": "Zendesk Chat",
+ "dockerRepository": "airbyte/source-zendesk-chat",
+ "dockerImageTag": "0.1.14",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-chat",
+ "icon": "zendesk-chat.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-chat",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Zendesk Chat Spec",
+ "type": "object",
+ "required": [ "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for Zendesk Chat API, in the format YYYY-MM-DDT00:00:00Z.",
+ "examples": [ "2021-02-01T00:00:00Z" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "format": "date-time"
+ },
+ "subdomain": {
+ "type": "string",
+ "title": "Subdomain",
+ "description": "Required if you access Zendesk Chat from a Zendesk Support subdomain.",
+ "default": ""
+ },
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "oneOf": [ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [ "credentials" ],
+ "properties": {
+ "credentials": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your OAuth application",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "Refresh Token to obtain new Access Token, when it's expired.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "Access Token",
+ "required": [ "credentials", "access_token" ],
+ "properties": {
+ "credentials": {
+ "type": "string",
+ "const": "access_token",
+ "order": 0
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The Access Token to make authenticated requests.",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "credentials" ],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "properties": {
+ "subdomain": {
+ "type": "string",
+ "path_in_connector_config": [ "subdomain" ]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "access_token" ]
+ },
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "refresh_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "zopim.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "982eaa4c-bba1-4cce-a971-06a41f700b8c",
+ "name": "Zendesk Sell",
+ "dockerRepository": "airbyte/source-zendesk-sell",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-sell",
+ "icon": "zendesk.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-sell",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Zendesk Sell Spec",
+ "type": "object",
+ "required": [ "api_token" ],
+ "properties": {
+ "api_token": {
+ "title": "API token",
+ "type": "string",
+ "description": "The API token for authenticating to Zendesk Sell",
+ "examples": [ "f23yhd630otl94y85a8bf384958473pto95847fd006da49382716or937ruw059" ],
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "325e0640-e7b3-4e24-b823-3361008f603f",
+ "name": "Zendesk Sunshine",
+ "dockerRepository": "airbyte/source-zendesk-sunshine",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-sunshine",
+ "icon": "zendesk-sunshine.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk_sunshine",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Zendesk Sunshine Spec",
+ "type": "object",
+ "required": [ "start_date", "subdomain" ],
+ "additionalProperties": true,
+ "properties": {
+ "subdomain": {
+ "title": "Subdomain",
+ "type": "string",
+ "description": "The subdomain for your Zendesk Account."
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "The date from which you'd like to replicate data for Zendesk Sunshine API, in the format YYYY-MM-DDT00:00:00Z.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2021-01-01T00:00:00Z" ]
+ },
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "oneOf": [ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [ "auth_method", "client_id", "client_secret", "access_token" ],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "oauth2.0",
+ "enum": [ "oauth2.0" ],
+ "default": "oauth2.0",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Long-term access Token for making authenticated requests.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "type": "object",
+ "title": "API Token",
+ "required": [ "auth_method", "api_token", "email" ],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "api_token",
+ "enum": [ "api_token" ],
+ "default": "api_token",
+ "order": 1
+ },
+ "api_token": {
+ "type": "string",
+ "title": "API Token",
+ "description": "API Token. See the docs for information on how to generate this key.",
+ "airbyte_secret": true
+ },
+ "email": {
+ "type": "string",
+ "title": "Email",
+ "description": "The user email for your Zendesk account"
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "auth_method" ],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "subdomain": {
+ "type": "string",
+ "path_in_connector_config": [ "subdomain" ]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "access_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "79c1aa37-dae3-42ae-b333-d1c105477715",
+ "name": "Zendesk Support",
+ "dockerRepository": "airbyte/source-zendesk-support",
+ "dockerImageTag": "0.2.27",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-support",
+ "icon": "zendesk-support.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-support",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Zendesk Support Spec",
+ "type": "object",
+ "required": [ "start_date", "subdomain" ],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for Zendesk Support API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "examples": [ "2020-10-15T00:00:00Z" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "format": "date-time"
+ },
+ "subdomain": {
+ "type": "string",
+ "title": "Subdomain",
+ "description": "This is your Zendesk subdomain that can be found in your account URL. For example, in https://{MY_SUBDOMAIN}.zendesk.com/, where MY_SUBDOMAIN is the value of your subdomain."
+ },
+ "credentials": {
+ "title": "Authentication",
+ "type": "object",
+ "description": "Zendesk service provides two authentication methods. Choose between: `OAuth2.0` or `API token`.",
+ "oneOf": [ {
+ "title": "OAuth2.0",
+ "type": "object",
+ "required": [ "access_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 0
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The value of the API token generated. See the docs for more information.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "API Token",
+ "type": "object",
+ "required": [ "email", "api_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "type": "string",
+ "const": "api_token",
+ "order": 0
+ },
+ "email": {
+ "title": "Email",
+ "type": "string",
+ "description": "The user email for your Zendesk account."
+ },
+ "api_token": {
+ "title": "API Token",
+ "type": "string",
+ "description": "The value of the API token generated. See the docs for more information.",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ },
+ "ignore_pagination": {
+ "type": "boolean",
+ "default": false,
+ "description": "Makes each stream read a single page of data.",
+ "title": "Should the connector read the second and further pages of data.",
+ "airbyte_hidden": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "credentials" ],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "subdomain": {
+ "type": "string",
+ "path_in_connector_config": [ "subdomain" ]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "access_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "${subdomain}.zendesk.com", "zendesk.com" ]
+ },
+ "maxSecondsBetweenMessages": 10800
+ }, {
+ "sourceDefinitionId": "c8630570-086d-4a40-99ae-ea5b18673071",
+ "name": "Zendesk Talk",
+ "dockerRepository": "airbyte/source-zendesk-talk",
+ "dockerImageTag": "0.1.7",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-talk",
+ "icon": "zendesk-talk.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-talk",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Zendesk Talk Spec",
+ "type": "object",
+ "required": [ "start_date", "subdomain" ],
+ "properties": {
+ "subdomain": {
+ "type": "string",
+ "title": "Subdomain",
+ "order": 0,
+ "description": "This is your Zendesk subdomain that can be found in your account URL. For example, in https://{MY_SUBDOMAIN}.zendesk.com/, where MY_SUBDOMAIN is the value of your subdomain."
+ },
+ "credentials": {
+ "title": "Authentication",
+ "type": "object",
+ "order": 1,
+ "description": "Zendesk service provides two authentication methods. Choose between: `OAuth2.0` or `API token`.",
+ "oneOf": [ {
+ "title": "API Token",
+ "type": "object",
+ "required": [ "email", "api_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "api_token"
+ },
+ "email": {
+ "title": "Email",
+ "type": "string",
+ "description": "The user email for your Zendesk account."
+ },
+ "api_token": {
+ "title": "API Token",
+ "type": "string",
+ "description": "The value of the API token generated. See the docs for more information.",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "OAuth2.0",
+ "type": "object",
+ "required": [ "access_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 0
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The value of the API token generated. See the docs for more information.",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "order": 2,
+ "description": "The date from which you'd like to replicate data for Zendesk Talk API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "examples": [ "2020-10-15T00:00:00Z" ],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [ "credentials", "auth_type" ],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "subdomain": {
+ "type": "string",
+ "path_in_connector_config": [ "subdomain" ]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "access_token" ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_id" ]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [ "credentials", "client_secret" ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "${subdomain}.zendesk.com", "zendesk.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "8baba53d-2fe3-4e33-bc85-210d0eb62884",
+ "name": "Zenefits",
+ "dockerRepository": "airbyte/source-zenefits",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zenefits",
+ "icon": "zenefits.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Zenefits Integration Spec",
+ "type": "object",
+ "required": [ "token" ],
+ "additionalProperties": false,
+ "properties": {
+ "token": {
+ "title": "token",
+ "type": "string",
+ "description": "Use Sync with Zenefits button on the link given on the readme file, and get the token to access the api"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "f1e4c7f6-db5c-4035-981f-d35ab4998794",
+ "name": "Zenloop",
+ "dockerRepository": "airbyte/source-zenloop",
+ "dockerImageTag": "0.1.6",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zenloop",
+ "icon": "zenloop.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zenloop",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Zenloop Spec",
+ "type": "object",
+ "required": [ "api_token" ],
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "description": "Zenloop API Token. You can get the API token in settings page here ",
+ "airbyte_secret": true
+ },
+ "date_from": {
+ "type": "string",
+ "description": "Zenloop date_from. Format: 2021-10-24T03:30:30Z or 2021-10-24. Leave empty if only data from current data should be synced",
+ "examples": [ "2021-10-24T03:30:30Z" ]
+ },
+ "survey_id": {
+ "type": "string",
+ "description": "Zenloop Survey ID. Can be found here. Leave empty to pull answers from all surveys",
+ "airbyte_secret": true
+ },
+ "survey_group_id": {
+ "type": "string",
+ "description": "Zenloop Survey Group ID. Can be found by pulling All Survey Groups via SurveyGroups stream. Leave empty to pull answers from all survey groups",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "api.zenloop.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "cdaf146a-9b75-49fd-9dd2-9d64a0bb4781",
+ "name": "Sentry",
+ "dockerRepository": "airbyte/source-sentry",
+ "dockerImageTag": "0.2.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sentry",
+ "icon": "sentry.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sentry",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Sentry Spec",
+ "type": "object",
+ "required": [ "auth_token", "organization", "project" ],
+ "additionalProperties": true,
+ "properties": {
+ "auth_token": {
+ "type": "string",
+ "title": "Authentication Tokens",
+ "description": "Log into Sentry and then create authentication tokens.For self-hosted, you can find or create authentication tokens by visiting \"{instance_url_prefix}/settings/account/api/auth-tokens/\"",
+ "airbyte_secret": true
+ },
+ "hostname": {
+ "type": "string",
+ "title": "Host Name",
+ "description": "Host name of Sentry API server.For self-hosted, specify your host name here. Otherwise, leave it empty.",
+ "default": "sentry.io"
+ },
+ "organization": {
+ "type": "string",
+ "title": "Organization",
+ "description": "The slug of the organization the groups belong to."
+ },
+ "project": {
+ "type": "string",
+ "title": "Project",
+ "description": "The name (slug) of the Project you want to sync."
+ },
+ "discover_fields": {
+ "type": "array",
+ "item": "string",
+ "title": "Discover Event Fields",
+ "description": "Fields to retrieve when fetching discover events"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [ "*" ]
+ },
+ "maxSecondsBetweenMessages": 64800
+ }, {
+ "sourceDefinitionId": "3dc3037c-5ce8-4661-adc2-f7a9e3c5ece5",
+ "name": "Zuora",
+ "dockerRepository": "airbyte/source-zuora",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zuora",
+ "icon": "zuora.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zuora",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Zuora Connector Configuration",
+ "type": "object",
+ "required": [ "start_date", "tenant_endpoint", "data_query", "client_id", "client_secret" ],
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "Start Date in format: YYYY-MM-DD",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
+ },
+ "window_in_days": {
+ "type": "string",
+ "title": "Query Window (in days)",
+ "description": "The amount of days for each data-chunk begining from start_date. Bigger the value - faster the fetch. (0.1 - as for couple of hours, 1 - as for a Day; 364 - as for a Year).",
+ "examples": [ "0.5", "1", "30", "60", "90", "120", "200", "364" ],
+ "pattern": "^(0|[1-9]\\d*)(\\.\\d+)?$",
+ "default": "90"
+ },
+ "tenant_endpoint": {
+ "title": "Tenant Endpoint Location",
+ "type": "string",
+ "description": "Please choose the right endpoint where your Tenant is located. More info by this Link",
+ "enum": [ "US Production", "US Cloud Production", "US API Sandbox", "US Cloud API Sandbox", "US Central Sandbox", "US Performance Test", "EU Production", "EU API Sandbox", "EU Central Sandbox" ]
+ },
+ "data_query": {
+ "title": "Data Query Type",
+ "type": "string",
+ "description": "Choose between `Live`, or `Unlimited` - the optimized, replicated database at 12 hours freshness for high volume extraction Link",
+ "enum": [ "Live", "Unlimited" ],
+ "default": "Live"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "Your OAuth user Client ID",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "Your OAuth user Client Secret",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "cd06e646-31bf-4dc8-af48-cbc6530fcad3",
+ "name": "Kustomer",
+ "dockerRepository": "airbyte/source-kustomer-singer",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/kustomer",
+ "icon": "kustomer.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/kustomer",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Kustomer Singer Spec",
+ "type": "object",
+ "required": [ "api_token", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "title": "API Token",
+ "type": "string",
+ "description": "Kustomer API Token. See the docs on how to obtain this",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "The date from which you'd like to replicate the data",
+ "examples": [ "2019-01-01T00:00:00Z" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "4942d392-c7b5-4271-91f9-3b4f4e51eb3e",
+ "name": "ZohoCRM",
+ "dockerRepository": "airbyte/source-zoho-crm",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zoho-crm",
+ "icon": "zohocrm.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zoho-crm",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Zoho Crm Configuration",
+ "type": "object",
+ "required": [ "client_id", "client_secret", "refresh_token", "environment", "dc_region", "edition" ],
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "OAuth2.0 Client ID",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "OAuth2.0 Client Secret",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "OAuth2.0 Refresh Token",
+ "airbyte_secret": true
+ },
+ "dc_region": {
+ "title": "Data Center Location",
+ "type": "string",
+ "description": "Please choose the region of your Data Center location. More info by this Link",
+ "enum": [ "US", "AU", "EU", "IN", "CN", "JP" ]
+ },
+ "environment": {
+ "title": "Environment",
+ "type": "string",
+ "description": "Please choose the environment",
+ "enum": [ "Production", "Developer", "Sandbox" ]
+ },
+ "start_datetime": {
+ "title": "Start Date",
+ "type": [ "string", "null" ],
+ "examples": [ "2000-01-01", "2000-01-01 13:00", "2000-01-01 13:00:00", "2000-01-01T13:00+00:00", "2000-01-01T13:00:00-07:00" ],
+ "description": "ISO 8601, for instance: `YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS+HH:MM`",
+ "format": "date-time"
+ },
+ "edition": {
+ "title": "Zoho CRM Edition",
+ "type": "string",
+ "description": "Choose your Edition of Zoho CRM to determine API Concurrency Limits",
+ "enum": [ "Free", "Standard", "Professional", "Enterprise", "Ultimate" ],
+ "default": "Free"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "a827c52e-791c-4135-a245-e233c5255199",
+ "name": "SFTP",
+ "dockerRepository": "airbyte/source-sftp",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sftp",
+ "icon": "sftp.svg",
+ "sourceType": "file",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/source/sftp",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "SFTP Source Spec",
+ "type": "object",
+ "required": [ "user", "host", "port" ],
+ "additionalProperties": true,
+ "properties": {
+ "user": {
+ "title": "User Name",
+ "description": "The server user",
+ "type": "string",
+ "order": 0
+ },
+ "host": {
+ "title": "Host Address",
+ "description": "The server host address",
+ "type": "string",
+ "examples": [ "www.host.com", "192.0.2.1" ],
+ "order": 1
+ },
+ "port": {
+ "title": "Port",
+ "description": "The server port",
+ "type": "integer",
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 2
+ },
+ "credentials": {
+ "type": "object",
+ "title": "Authentication",
+ "description": "The server authentication method",
+ "order": 3,
+ "oneOf": [ {
+ "title": "Password Authentication",
+ "required": [ "auth_method", "auth_user_password" ],
+ "properties": {
+ "auth_method": {
+ "description": "Connect through password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "auth_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 1
+ }
+ }
+ }, {
+ "title": "SSH Key Authentication",
+ "required": [ "auth_method", "auth_ssh_key" ],
+ "properties": {
+ "auth_method": {
+ "description": "Connect through ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "auth_ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ }
+ }
+ } ]
+ },
+ "file_types": {
+ "title": "File types",
+ "description": "Coma separated file types. Currently only 'csv' and 'json' types are supported.",
+ "type": "string",
+ "default": "csv,json",
+ "order": 4,
+ "examples": [ "csv,json", "csv" ]
+ },
+ "folder_path": {
+ "title": "Folder Path",
+ "description": "The directory to search files for sync",
+ "type": "string",
+ "default": "",
+ "examples": [ "/logs/2022" ],
+ "order": 5
+ },
+ "file_pattern": {
+ "title": "File Pattern",
+ "description": "The regular expression to specify files for sync in a chosen Folder Path",
+ "type": "string",
+ "default": "",
+ "examples": [ "log-([0-9]{4})([0-9]{2})([0-9]{2}) - This will filter files which `log-yearmmdd`" ],
+ "order": 6
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "31e3242f-dee7-4cdc-a4b8-8e06c5458517",
+ "name": "SFTP Bulk",
+ "dockerRepository": "airbyte/source-sftp-bulk",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sftp-bulk",
+ "icon": "sftp.svg",
+ "sourceType": "file",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/source/ftp",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "FTP Source Spec",
+ "type": "object",
+ "required": [ "username", "host", "port", "stream_name", "start_date", "folder_path" ],
+ "additionalProperties": true,
+ "properties": {
+ "username": {
+ "title": "User Name",
+ "description": "The server user",
+ "type": "string",
+ "order": 0
+ },
+ "password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "private_key": {
+ "title": "Private key",
+ "description": "The private key",
+ "type": "string",
+ "multiline": true,
+ "order": 2
+ },
+ "host": {
+ "title": "Host Address",
+ "description": "The server host address",
+ "type": "string",
+ "examples": [ "www.host.com", "192.0.2.1" ],
+ "order": 3
+ },
+ "port": {
+ "title": "Port",
+ "description": "The server port",
+ "type": "integer",
+ "default": 22,
+ "examples": [ "22" ],
+ "order": 4
+ },
+ "stream_name": {
+ "title": "Stream name",
+ "description": "The name of the stream or table you want to create",
+ "type": "string",
+ "examples": [ "ftp_contacts" ],
+ "order": 5
+ },
+ "file_type": {
+ "title": "File type",
+ "description": "The file type you want to sync. Currently only 'csv' and 'json' files are supported.",
+ "type": "string",
+ "default": "csv",
+ "enum": [ "csv", "json" ],
+ "order": 6,
+ "examples": [ "csv", "json" ]
+ },
+ "separator": {
+ "title": "CSV Separator (Optional)",
+ "description": "The separator used in the CSV files. Define None if you want to use the Sniffer functionality",
+ "type": "string",
+ "default": ",",
+ "examples": [ "," ],
+ "order": 7
+ },
+ "folder_path": {
+ "title": "Folder Path (Optional)",
+ "description": "The directory to search files for sync",
+ "type": "string",
+ "default": "",
+ "examples": [ "/logs/2022" ],
+ "order": 8
+ },
+ "file_pattern": {
+ "title": "File Pattern (Optional)",
+ "description": "The regular expression to specify files for sync in a chosen Folder Path",
+ "type": "string",
+ "default": "",
+ "examples": [ "log-([0-9]{4})([0-9]{2})([0-9]{2}) - This will filter files which `log-yearmmdd`" ],
+ "order": 9
+ },
+ "file_most_recent": {
+ "title": "Most recent file (Optional)",
+ "description": "Sync only the most recent file for the configured folder path and file pattern",
+ "type": "boolean",
+ "default": false,
+ "order": 10
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "format": "date-time",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": [ "2017-01-25T00:00:00Z" ],
+ "description": "The date from which you'd like to replicate data for all incremental streams, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "order": 11
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "6f2ac653-8623-43c4-8950-19218c7caf3d",
+ "name": "Firebolt",
+ "dockerRepository": "airbyte/source-firebolt",
+ "dockerImageTag": "0.2.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/firebolt",
+ "icon": "firebolt.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/firebolt",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Firebolt Spec",
+ "type": "object",
+ "required": [ "username", "password", "database" ],
+ "additionalProperties": true,
+ "properties": {
+ "username": {
+ "type": "string",
+ "title": "Username",
+ "description": "Firebolt email address you use to login.",
+ "examples": [ "username@email.com" ]
+ },
+ "password": {
+ "type": "string",
+ "title": "Password",
+ "description": "Firebolt password.",
+ "airbyte_secret": true
+ },
+ "account": {
+ "type": "string",
+ "title": "Account",
+ "description": "Firebolt account to login."
+ },
+ "host": {
+ "type": "string",
+ "title": "Host",
+ "description": "The host name of your Firebolt database.",
+ "examples": [ "api.app.firebolt.io" ]
+ },
+ "database": {
+ "type": "string",
+ "title": "Database",
+ "description": "The database to connect to."
+ },
+ "engine": {
+ "type": "string",
+ "title": "Engine",
+ "description": "Engine name or url to connect to."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "7cf88806-25f5-4e1a-b422-b2fa9e1b0090",
+ "name": "Elasticsearch",
+ "dockerRepository": "airbyte/source-elasticsearch",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/elasticsearch",
+ "icon": "elasticsearch.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/source/elasticsearch",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Elasticsearch Connection Configuration",
+ "type": "object",
+ "required": [ "endpoint" ],
+ "additionalProperties": true,
+ "properties": {
+ "endpoint": {
+ "title": "Server Endpoint",
+ "type": "string",
+ "description": "The full url of the Elasticsearch server"
+ },
+ "authenticationMethod": {
+ "title": "Authentication Method",
+ "type": "object",
+ "description": "The type of authentication to be used",
+ "oneOf": [ {
+ "title": "None",
+ "additionalProperties": true,
+ "description": "No authentication will be used",
+ "required": [ "method" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "none"
+ }
+ }
+ }, {
+ "title": "Api Key/Secret",
+ "additionalProperties": true,
+ "description": "Use a api key and secret combination to authenticate",
+ "required": [ "method", "apiKeyId", "apiKeySecret" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "secret"
+ },
+ "apiKeyId": {
+ "title": "API Key ID",
+ "description": "The Key ID to used when accessing an enterprise Elasticsearch instance.",
+ "type": "string"
+ },
+ "apiKeySecret": {
+ "title": "API Key Secret",
+ "description": "The secret associated with the API Key ID.",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ }, {
+ "title": "Username/Password",
+ "additionalProperties": true,
+ "description": "Basic auth header with a username and password",
+ "required": [ "method", "username", "password" ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "basic"
+ },
+ "username": {
+ "title": "Username",
+ "description": "Basic auth username to access a secure Elasticsearch server",
+ "type": "string"
+ },
+ "password": {
+ "title": "Password",
+ "description": "Basic auth password to access a secure Elasticsearch server",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ } ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "03a53b13-794a-4d6b-8544-3b36ed8f3ce4",
+ "name": "Waiteraid",
+ "dockerRepository": "airbyte/source-waiteraid",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/waiteraid",
+ "icon": "waiteraid.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Waiteraid Spec",
+ "type": "object",
+ "required": [ "start_date", "auth_hash", "restid" ],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "Start getting data from that date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": [ "YYYY-MM-DD" ]
+ },
+ "auth_hash": {
+ "title": "Authentication Hash",
+ "type": "string",
+ "description": "Your WaiterAid API key, obtained from API request with Username and Password",
+ "airbyte_secret": true
+ },
+ "restid": {
+ "title": "Restaurant ID",
+ "type": "string",
+ "description": "Your WaiterAid restaurant id from API request to getRestaurants",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "87c58f70-6f7a-4f70-aba5-bab1a458f5ba",
+ "name": "Wikipedia Pageviews",
+ "dockerRepository": "airbyte/source-wikipedia-pageviews",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/wikipedia-pageviews",
+ "icon": "wikipediapageviews.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Wikipedia Pageviews Spec",
+ "type": "object",
+ "required": [ "project", "access", "agent", "article", "start", "end", "country" ],
+ "additionalProperties": true,
+ "properties": {
+ "project": {
+ "type": "string",
+ "title": "Project",
+ "description": "If you want to filter by project, use the domain of any Wikimedia project.",
+ "examples": [ "en.wikipedia.org", "www.mediawiki.org", "commons.wikimedia.org" ]
+ },
+ "access": {
+ "type": "string",
+ "title": "Access",
+ "description": "If you want to filter by access method, use one of desktop, mobile-app or mobile-web. If you are interested in pageviews regardless of access method, use all-access.",
+ "examples": [ "all-access", "desktop", "mobile-app", "mobile-web" ]
+ },
+ "agent": {
+ "type": "string",
+ "title": "Agent",
+ "description": "If you want to filter by agent type, use one of user, automated or spider. If you are interested in pageviews regardless of agent type, use all-agents.",
+ "examples": [ "all-agents", "user", "spider", "automated" ]
+ },
+ "article": {
+ "type": "string",
+ "title": "Article",
+ "description": "The title of any article in the specified project. Any spaces should be replaced with underscores. It also should be URI-encoded, so that non-URI-safe characters like %, / or ? are accepted.",
+ "examples": [ "Are_You_the_One%3F" ]
+ },
+ "start": {
+ "type": "string",
+ "title": "Start",
+ "description": "The date of the first day to include, in YYYYMMDD or YYYYMMDDHH format."
+ },
+ "end": {
+ "type": "string",
+ "title": "End",
+ "description": "The date of the last day to include, in YYYYMMDD or YYYYMMDDHH format."
+ },
+ "country": {
+ "type": "string",
+ "title": "Country",
+ "description": "The ISO 3166-1 alpha-2 code of a country for which to retrieve top articles.",
+ "examples": [ "FR", "IN" ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "05b0bce2-4ec4-4534-bb1a-5d0127bd91b7",
+ "name": "WorkRamp",
+ "dockerRepository": "airbyte/source-workramp",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/workramp",
+ "icon": "workramp.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/workramp",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Workramp Spec",
+ "type": "object",
+ "required": [ "api_key", "academy_id" ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Token",
+ "description": "The API Token for Workramp",
+ "airbyte_secret": true
+ },
+ "academy_id": {
+ "type": "string",
+ "title": "Academy ID",
+ "description": "The id of the Academy"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "7865dce4-2211-4f6a-88e5-9d0fe161afe7",
+ "name": "Yandex Metrica",
+ "dockerRepository": "airbyte/source-yandex-metrica",
+ "dockerImageTag": "1.0.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/yandex-metrica",
+ "icon": "yandexmetrica.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/yandex-metrica",
+ "connectionSpecification": {
+ "$schema": "https://json-schema.org/draft-07/schema#",
+ "title": "Yandex Metrica Spec",
+ "type": "object",
+ "required": [ "auth_token", "counter_id", "start_date" ],
+ "additionalProperties": true,
+ "properties": {
+ "auth_token": {
+ "type": "string",
+ "title": "Authentication Token",
+ "description": "Your Yandex Metrica API access token",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "counter_id": {
+ "type": "string",
+ "title": "Counter ID",
+ "description": "Counter ID",
+ "pattern": "^[0-9]+$",
+ "order": 1
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "Starting point for your data replication, in format of \"YYYY-MM-DD\".",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "format": "date",
+ "examples": [ "2022-01-01" ],
+ "order": 2
+ },
+ "end_date": {
+ "title": "End Date",
+ "type": "string",
+ "description": "Starting point for your data replication, in format of \"YYYY-MM-DD\". If not provided will sync till most recent date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "format": "date",
+ "examples": [ "2022-01-01" ],
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": [ "api-metrica.yandex.net" ]
+ }
+ }, {
+ "sourceDefinitionId": "",
+ "name": "Yotpo",
+ "dockerRepository": "airbyte/source-yotpo",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/yotpo",
+ "icon": "yotpo.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/yotpo",
+ "connectionSpecification": {
+ "$schema": "https://json-schema.org/draft-07/schema#",
+ "title": "Yotpo Spec",
+ "type": "object",
+ "required": [ "access_token", "app_key", "start_date", "email" ],
+ "additionalProperties": true,
+ "properties": {
+ "access_token": {
+ "title": "Access Token",
+ "type": "string",
+ "description": "Access token recieved as a result of API call to https://api.yotpo.com/oauth/token (Ref- https://apidocs.yotpo.com/reference/yotpo-authentication)",
+ "airbyte_secret": true
+ },
+ "app_key": {
+ "title": "App Key",
+ "type": "string",
+ "description": "App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)"
+ },
+ "start_date": {
+ "title": "Date-From Filter",
+ "type": "string",
+ "description": "Date time filter for incremental filter, Specify which date to extract from.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
+ "examples": [
+ "2022-03-01T00:00:00.000Z"
+ ],
+ "format": "date-time"
+ },
+ "email": {
+ "title": "Registered email address",
+ "type": "string",
+ "description": "Email address registered with yotpo.",
+ "default": "example@gmail.com"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "api.yotpo.com" ]
+ }
+ }, {
+ "sourceDefinitionId": "9c74c2d7-531a-4ebf-b6d8-6181f805ecdc",
+ "name": "Younium",
+ "dockerRepository": "airbyte/source-younium",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/younium",
+ "icon": "younium.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/younium",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Younium Spec",
+ "type": "object",
+ "required": [ "username", "password", "legal_entity" ],
+ "properties": {
+ "username": {
+ "title": "Username",
+ "type": "string",
+ "description": "Username for Younium account"
+ },
+ "password": {
+ "title": "Password",
+ "type": "string",
+ "description": "Account password for younium account API key",
+ "airbyte_secret": true
+ },
+ "legal_entity": {
+ "title": "Legal Entity",
+ "type": "string",
+ "description": "Legal Entity that data should be pulled from"
+ },
+ "playground": {
+ "title": "Playground environment",
+ "type": "boolean",
+ "description": "Property defining if connector is used against playground or production environment",
+ "default": false
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "cbfd9856-1322-44fb-bcf1-0b39b7a8e92e",
+ "name": "Zoom",
+ "dockerRepository": "airbyte/source-zoom",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/zoom",
+ "icon": "zoom.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zoom",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Zoom Spec",
+ "type": "object",
+ "required": [ "jwt_token" ],
+ "additionalProperties": true,
+ "properties": {
+ "jwt_token": {
+ "type": "string",
+ "description": "JWT Token",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "68b9c98e-0747-4c84-b05b-d30b47686725",
+ "name": "Braze",
+ "dockerRepository": "airbyte/source-braze",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/braze",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/braze",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Braze Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "required": [ "url", "api_key", "start_date" ],
+ "properties": {
+ "url": {
+ "type": "string",
+ "title": "URL",
+ "description": "Braze REST API endpoint"
+ },
+ "api_key": {
+ "type": "string",
+ "title": "Rest API Key",
+ "airbyte_secret": true,
+ "description": "Braze REST API key"
+ },
+ "start_date": {
+ "type": "string",
+ "format": "date",
+ "title": "Start date",
+ "description": "Rows after this date will be synced"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ } ]
+}
From 823ac77bd2f0e59c273ea7b0a665922eae2caf5c Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Wed, 26 Apr 2023 06:03:00 +0530
Subject: [PATCH 023/187] fix conflicts
---
.../src/main/resources/seed/oss_catalog.json | 166 ++++++++++--------
1 file changed, 89 insertions(+), 77 deletions(-)
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index 46ddbb304c26..41ccf21ca1e9 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -694,7 +694,7 @@
"destinationDefinitionId": "22f6c74f-5699-40ff-833c-4a879ea40133",
"name": "BigQuery",
"dockerRepository": "airbyte/destination-bigquery",
- "dockerImageTag": "1.3.0",
+ "dockerImageTag": "1.3.1",
"documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
"icon": "bigquery.svg",
"spec": {
@@ -872,7 +872,7 @@
"destinationDefinitionId": "079d5540-f236-4294-ba7c-ade8fd918496",
"name": "BigQuery (denormalized typed struct)",
"dockerRepository": "airbyte/destination-bigquery-denormalized",
- "dockerImageTag": "1.3.0",
+ "dockerImageTag": "1.3.1",
"documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
"icon": "bigquery.svg",
"spec": {
@@ -10029,7 +10029,7 @@
"sourceDefinitionId": "47f25999-dd5e-4636-8c39-e7cea2453331",
"name": "Bing Ads",
"dockerRepository": "airbyte/source-bing-ads",
- "dockerImageTag": "0.1.19",
+ "dockerImageTag": "0.1.20",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/bing-ads",
"icon": "bingads.svg",
"sourceType": "api",
@@ -10090,6 +10090,15 @@
"default": "2020-01-01",
"description": "The start date from which to begin replicating report data. Any data generated before this date will not be replicated in reports. This is a UTC date in YYYY-MM-DD format.",
"order": 5
+ },
+ "lookback_window": {
+ "title": "Lookback window",
+ "description": "Also known as attribution or conversion window. How far into the past to look for records (in days). If your conversion window has an hours/minutes granularity, round it up to the number of days exceeding. Used only for performance report streams in incremental mode.",
+ "type": "integer",
+ "default": 0,
+ "minimum": 0,
+ "maximum": 90,
+ "order": 6
}
}
},
@@ -12862,7 +12871,7 @@
"sourceDefinitionId": "778daa7c-feaf-4db6-96f3-70fd645acc77",
"name": "File (CSV, JSON, Excel, Feather, Parquet)",
"dockerRepository": "airbyte/source-file",
- "dockerImageTag": "0.2.38",
+ "dockerImageTag": "0.3.0",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/file",
"icon": "file.svg",
"sourceType": "file",
@@ -13557,7 +13566,7 @@
"sourceDefinitionId": "ef69ef6e-aa7f-4af1-a01d-ef775033524e",
"name": "GitHub",
"dockerRepository": "airbyte/source-github",
- "dockerImageTag": "0.4.7",
+ "dockerImageTag": "0.4.8",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/github",
"icon": "github.svg",
"sourceType": "api",
@@ -14410,7 +14419,7 @@
"sourceDefinitionId": "3cc2eafd-84aa-4dca-93af-322d9dfeec1a",
"name": "Google Analytics 4 (GA4)",
"dockerRepository": "airbyte/source-google-analytics-data-api",
- "dockerImageTag": "0.1.3",
+ "dockerImageTag": "0.2.0",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/google-analytics-data-api",
"icon": "google-analytics.svg",
"sourceType": "api",
@@ -14496,7 +14505,7 @@
"date_ranges_start_date": {
"type": "string",
"title": "Start Date",
- "description": "The start date from which to replicate report data in the format YYYY-MM-DD. Data generated before this date will not be included in the report.",
+ "description": "The start date from which to replicate report data in the format YYYY-MM-DD. Data generated before this date will not be included in the report. Not applied to custom Cohort reports.",
"format": "date",
"order": 2
},
@@ -14509,7 +14518,7 @@
"window_in_days": {
"type": "integer",
"title": "Data request time increment in days",
- "description": "The time increment used by the connector when requesting data from the Google Analytics API. More information is available in the the docs. The bigger this value is, the faster the sync will be, but the more likely that sampling will be applied to your data, potentially causing inaccuracies in the returned results. We recommend setting this to 1 unless you have a hard requirement to make the sync faster at the expense of accuracy. The minimum allowed value for this field is 1, and the maximum is 364.",
+ "description": "The time increment used by the connector when requesting data from the Google Analytics API. More information is available in the the docs. The bigger this value is, the faster the sync will be, but the more likely that sampling will be applied to your data, potentially causing inaccuracies in the returned results. We recommend setting this to 1 unless you have a hard requirement to make the sync faster at the expense of accuracy. The minimum allowed value for this field is 1, and the maximum is 364. Not applied to custom Cohort reports.",
"examples": [ 30, 60, 90, 120, 200, 364 ],
"minimum": 1,
"maximum": 364,
@@ -15428,7 +15437,7 @@
"sourceDefinitionId": "36c891d9-4bd9-43ac-bad2-10e12756272c",
"name": "HubSpot",
"dockerRepository": "airbyte/source-hubspot",
- "dockerImageTag": "0.6.0",
+ "dockerImageTag": "0.6.1",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/hubspot",
"icon": "hubspot.svg",
"sourceType": "api",
@@ -16557,6 +16566,7 @@
"dockerRepository": "airbyte/source-lemlist",
"dockerImageTag": "0.1.1",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/lemlist",
+ "icon": "lemlist.svg",
"sourceType": "api",
"spec": {
"documentationUrl": "https://docs.airbyte.io/integrations/sources/lemlist",
@@ -17071,7 +17081,7 @@
"sourceDefinitionId": "b03a9f3e-22a5-11eb-adc1-0242ac120002",
"name": "Mailchimp",
"dockerRepository": "airbyte/source-mailchimp",
- "dockerImageTag": "0.3.5",
+ "dockerImageTag": "0.4.0",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/mailchimp",
"icon": "mailchimp.svg",
"sourceType": "api",
@@ -20605,7 +20615,7 @@
"sourceDefinitionId": "5cb7e5fe-38c2-11ec-8d3d-0242ac130003",
"name": "Pinterest",
"dockerRepository": "airbyte/source-pinterest",
- "dockerImageTag": "0.2.4",
+ "dockerImageTag": "0.2.5",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/pinterest",
"icon": "pinterest.svg",
"sourceType": "api",
@@ -20621,7 +20631,7 @@
"start_date": {
"type": "string",
"title": "Start Date",
- "description": "A date in the format YYYY-MM-DD. If you have not set a date, it would be defaulted to latest allowed date by api (914 days from today).",
+ "description": "A date in the format YYYY-MM-DD. If you have not set a date, it would be defaulted to latest allowed date by api (89 days from today).",
"examples": [ "2022-07-28" ]
},
"status": {
@@ -21210,7 +21220,7 @@
"sourceDefinitionId": "decd338e-5647-4c0b-adf4-da0e75f5a750",
"name": "Postgres",
"dockerRepository": "airbyte/source-postgres",
- "dockerImageTag": "2.0.24",
+ "dockerImageTag": "2.0.25",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/postgres",
"icon": "postgresql.svg",
"sourceType": "database",
@@ -23087,7 +23097,7 @@
"sourceDefinitionId": "b117307c-14b6-41aa-9422-947e34922962",
"name": "Salesforce",
"dockerRepository": "airbyte/source-salesforce",
- "dockerImageTag": "2.0.9",
+ "dockerImageTag": "2.0.11",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/salesforce",
"icon": "salesforce.svg",
"sourceType": "api",
@@ -23498,7 +23508,7 @@
"sourceDefinitionId": "9da77001-af33-4bcd-be46-6252bf9342b9",
"name": "Shopify",
"dockerRepository": "airbyte/source-shopify",
- "dockerImageTag": "0.3.2",
+ "dockerImageTag": "0.3.3",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/shopify",
"icon": "shopify.svg",
"sourceType": "api",
@@ -23582,6 +23592,7 @@
"description": "The date you would like to replicate data from. Format: YYYY-MM-DD. Any data before this date will not be replicated.",
"examples": [ "2021-01-01" ],
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "format": "date",
"order": 3
}
}
@@ -24766,7 +24777,7 @@
"sourceDefinitionId": "e094cb9a-26de-4645-8761-65c0c425d1de",
"name": "Stripe",
"dockerRepository": "airbyte/source-stripe",
- "dockerImageTag": "3.4.0",
+ "dockerImageTag": "3.4.1",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/stripe",
"icon": "stripe.svg",
"sourceType": "api",
@@ -24834,7 +24845,7 @@
"sourceDefinitionId": "dd4632f4-15e0-4649-9b71-41719fb1fdee",
"name": "SurveyCTO",
"dockerRepository": "airbyte/source-surveycto",
- "dockerImageTag": "0.1.0",
+ "dockerImageTag": "0.1.1",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/surveycto",
"icon": "surveycto.svg",
"sourceType": "api",
@@ -24868,7 +24879,7 @@
"form_id": {
"type": "array",
"title": "Form's Id",
- "description": "Unique identifier for one of the forms",
+ "description": "Unique identifier for one of your forms",
"order": 3
},
"start_date": {
@@ -24878,7 +24889,7 @@
"examples": [ "Jan 09, 2022 00:00:00 AM" ],
"default": "Jan 09, 2022 00:00:00 AM",
"order": 4,
- "pattern": "^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dic) [0-9]{2}, [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} (AM|PM)$"
+ "pattern": "^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{2}, [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} (AM|PM)$"
}
}
},
@@ -28904,63 +28915,6 @@
"allowedHosts": {
"hosts": [ "api-metrica.yandex.net" ]
}
- }, {
- "sourceDefinitionId": "",
- "name": "Yotpo",
- "dockerRepository": "airbyte/source-yotpo",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/yotpo",
- "icon": "yotpo.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/yotpo",
- "connectionSpecification": {
- "$schema": "https://json-schema.org/draft-07/schema#",
- "title": "Yotpo Spec",
- "type": "object",
- "required": [ "access_token", "app_key", "start_date", "email" ],
- "additionalProperties": true,
- "properties": {
- "access_token": {
- "title": "Access Token",
- "type": "string",
- "description": "Access token recieved as a result of API call to https://api.yotpo.com/oauth/token (Ref- https://apidocs.yotpo.com/reference/yotpo-authentication)",
- "airbyte_secret": true
- },
- "app_key": {
- "title": "App Key",
- "type": "string",
- "description": "App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)"
- },
- "start_date": {
- "title": "Date-From Filter",
- "type": "string",
- "description": "Date time filter for incremental filter, Specify which date to extract from.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
- "examples": [
- "2022-03-01T00:00:00.000Z"
- ],
- "format": "date-time"
- },
- "email": {
- "title": "Registered email address",
- "type": "string",
- "description": "Email address registered with yotpo.",
- "default": "example@gmail.com"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "api.yotpo.com" ]
- }
}, {
"sourceDefinitionId": "9c74c2d7-531a-4ebf-b6d8-6181f805ecdc",
"name": "Younium",
@@ -29047,6 +29001,7 @@
"dockerRepository": "airbyte/source-braze",
"dockerImageTag": "0.1.3",
"documentationUrl": "https://docs.airbyte.io/integrations/sources/braze",
+ "icon": "braze.svg",
"sourceType": "api",
"spec": {
"documentationUrl": "https://docs.airbyte.com/integrations/sources/braze",
@@ -29084,5 +29039,62 @@
"public": true,
"custom": false,
"releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "",
+ "name": "Yotpo",
+ "dockerRepository": "airbyte/source-yotpo",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/yotpo",
+ "icon": "yotpo.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/yotpo",
+ "connectionSpecification": {
+ "$schema": "https://json-schema.org/draft-07/schema#",
+ "title": "Yotpo Spec",
+ "type": "object",
+ "required": [ "access_token", "app_key", "start_date", "email" ],
+ "additionalProperties": true,
+ "properties": {
+ "access_token": {
+ "title": "Access Token",
+ "type": "string",
+ "description": "Access token recieved as a result of API call to https://api.yotpo.com/oauth/token (Ref- https://apidocs.yotpo.com/reference/yotpo-authentication)",
+ "airbyte_secret": true
+ },
+ "app_key": {
+ "title": "App Key",
+ "type": "string",
+ "description": "App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)"
+ },
+ "start_date": {
+ "title": "Date-From Filter",
+ "type": "string",
+ "description": "Date time filter for incremental filter, Specify which date to extract from.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
+ "examples": [
+ "2022-03-01T00:00:00.000Z"
+ ],
+ "format": "date-time"
+ },
+ "email": {
+ "title": "Registered email address",
+ "type": "string",
+ "description": "Email address registered with yotpo.",
+ "default": "example@gmail.com"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "api.yotpo.com" ]
+ }
} ]
-}
+}
\ No newline at end of file
From 67aa645da6a92f1020e1f3a2db07b57197742d86 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Wed, 26 Apr 2023 06:18:15 +0530
Subject: [PATCH 024/187] fix conflict oss
---
.../src/main/resources/seed/oss_catalog.json | 59 +------------------
1 file changed, 1 insertion(+), 58 deletions(-)
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index 41ccf21ca1e9..4ef6b903565b 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -29039,62 +29039,5 @@
"public": true,
"custom": false,
"releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "",
- "name": "Yotpo",
- "dockerRepository": "airbyte/source-yotpo",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/yotpo",
- "icon": "yotpo.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/yotpo",
- "connectionSpecification": {
- "$schema": "https://json-schema.org/draft-07/schema#",
- "title": "Yotpo Spec",
- "type": "object",
- "required": [ "access_token", "app_key", "start_date", "email" ],
- "additionalProperties": true,
- "properties": {
- "access_token": {
- "title": "Access Token",
- "type": "string",
- "description": "Access token recieved as a result of API call to https://api.yotpo.com/oauth/token (Ref- https://apidocs.yotpo.com/reference/yotpo-authentication)",
- "airbyte_secret": true
- },
- "app_key": {
- "title": "App Key",
- "type": "string",
- "description": "App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)"
- },
- "start_date": {
- "title": "Date-From Filter",
- "type": "string",
- "description": "Date time filter for incremental filter, Specify which date to extract from.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
- "examples": [
- "2022-03-01T00:00:00.000Z"
- ],
- "format": "date-time"
- },
- "email": {
- "title": "Registered email address",
- "type": "string",
- "description": "Email address registered with yotpo.",
- "default": "example@gmail.com"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "api.yotpo.com" ]
- }
} ]
-}
\ No newline at end of file
+}
\ No newline at end of file
From 057992519e0b6ca165538c4ea4c76909108cbb1c Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Wed, 26 Apr 2023 06:33:14 +0530
Subject: [PATCH 025/187] fix conflict oss
---
.../src/main/resources/seed/oss_catalog.json | 61222 ++++++++--------
1 file changed, 32179 insertions(+), 29043 deletions(-)
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index 4ef6b903565b..b99b292c99f6 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -1,29043 +1,32179 @@
-{
- "destinations": [ {
- "destinationDefinitionId": "b4c5d105-31fd-4817-96b6-cb923bfc04cb",
- "name": "Azure Blob Storage",
- "dockerRepository": "airbyte/destination-azure-blob-storage",
- "dockerImageTag": "0.2.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/azureblobstorage",
- "icon": "azureblobstorage.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/azureblobstorage",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "AzureBlobStorage Destination Spec",
- "type": "object",
- "required": [ "azure_blob_storage_account_name", "azure_blob_storage_account_key", "format" ],
- "additionalProperties": false,
- "properties": {
- "azure_blob_storage_endpoint_domain_name": {
- "title": "Endpoint Domain Name",
- "type": "string",
- "default": "blob.core.windows.net",
- "description": "This is Azure Blob Storage endpoint domain name. Leave default value (or leave it empty if run container from command line) to use Microsoft native from example.",
- "examples": [ "blob.core.windows.net" ]
- },
- "azure_blob_storage_container_name": {
- "title": "Azure blob storage container (Bucket) Name",
- "type": "string",
- "description": "The name of the Azure blob storage container. If not exists - will be created automatically. May be empty, then will be created automatically airbytecontainer+timestamp",
- "examples": [ "airbytetescontainername" ]
- },
- "azure_blob_storage_account_name": {
- "title": "Azure Blob Storage account name",
- "type": "string",
- "description": "The account's name of the Azure Blob Storage.",
- "examples": [ "airbyte5storage" ]
- },
- "azure_blob_storage_account_key": {
- "title": "Azure Blob Storage account key",
- "description": "The Azure blob storage account key.",
- "airbyte_secret": true,
- "type": "string",
- "examples": [ "Z8ZkZpteggFx394vm+PJHnGTvdRncaYS+JhLKdj789YNmD+iyGTnG+PV+POiuYNhBg/ACS+LKjd%4FG3FHGN12Nd==" ]
- },
- "azure_blob_storage_output_buffer_size": {
- "title": "Azure Blob Storage output buffer size (Megabytes)",
- "type": "integer",
- "description": "The amount of megabytes to buffer for the output stream to Azure. This will impact memory footprint on workers, but may need adjustment for performance and appropriate block size in Azure.",
- "minimum": 1,
- "maximum": 2047,
- "default": 5,
- "examples": [ 5 ]
- },
- "azure_blob_storage_spill_size": {
- "title": "Azure Blob Storage file spill size",
- "type": "integer",
- "description": "The amount of megabytes after which the connector should spill the records in a new blob object. Make sure to configure size greater than individual records. Enter 0 if not applicable",
- "default": 500,
- "examples": [ 500 ]
- },
- "format": {
- "title": "Output Format",
- "type": "object",
- "description": "Output data format",
- "oneOf": [ {
- "title": "CSV: Comma-Separated Values",
- "required": [ "format_type", "flattening" ],
- "properties": {
- "format_type": {
- "type": "string",
- "const": "CSV"
- },
- "flattening": {
- "type": "string",
- "title": "Normalization (Flattening)",
- "description": "Whether the input json data should be normalized (flattened) in the output CSV. Please refer to docs for details.",
- "default": "No flattening",
- "enum": [ "No flattening", "Root level flattening" ]
- }
- }
- }, {
- "title": "JSON Lines: newline-delimited JSON",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "type": "string",
- "const": "JSONL"
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "resourceRequirements": {
- "jobSpecific": [ {
- "jobType": "sync",
- "resourceRequirements": {
- "memory_request": "1Gi",
- "memory_limit": "1Gi"
- }
- } ]
- }
- }, {
- "destinationDefinitionId": "0eeee7fb-518f-4045-bacc-9619e31c43ea",
- "name": "Amazon SQS",
- "dockerRepository": "airbyte/destination-amazon-sqs",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/amazon-sqs",
- "icon": "awssqs.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/amazon-sqs",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Amazon Sqs",
- "type": "object",
- "required": [ "queue_url", "region" ],
- "additionalProperties": false,
- "properties": {
- "queue_url": {
- "title": "Queue URL",
- "description": "URL of the SQS Queue",
- "type": "string",
- "examples": [ "https://sqs.eu-west-1.amazonaws.com/1234567890/my-example-queue" ],
- "order": 0
- },
- "region": {
- "title": "AWS Region",
- "description": "AWS Region of the SQS Queue",
- "type": "string",
- "enum": [ "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
- "order": 1
- },
- "message_delay": {
- "title": "Message Delay",
- "description": "Modify the Message Delay of the individual message from the Queue's default (seconds).",
- "type": "integer",
- "examples": [ "15" ],
- "order": 2
- },
- "access_key": {
- "title": "AWS IAM Access Key ID",
- "description": "The Access Key ID of the AWS IAM Role to use for sending messages",
- "type": "string",
- "examples": [ "xxxxxHRNxxx3TBxxxxxx" ],
- "order": 3,
- "airbyte_secret": true
- },
- "secret_key": {
- "title": "AWS IAM Secret Key",
- "description": "The Secret Key of the AWS IAM Role to use for sending messages",
- "type": "string",
- "examples": [ "hu+qE5exxxxT6o/ZrKsxxxxxxBhxxXLexxxxxVKz" ],
- "order": 4,
- "airbyte_secret": true
- },
- "message_body_key": {
- "title": "Message Body Key",
- "description": "Use this property to extract the contents of the named key in the input record to use as the SQS message body. If not set, the entire content of the input record data is used as the message body.",
- "type": "string",
- "examples": [ "myDataPath" ],
- "order": 5
- },
- "message_group_id": {
- "title": "Message Group Id",
- "description": "The tag that specifies that a message belongs to a specific message group. This parameter applies only to, and is REQUIRED by, FIFO queues.",
- "type": "string",
- "examples": [ "my-fifo-group" ],
- "order": 6
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "05c161bf-ca73-4d48-b524-d392be417002",
- "name": "Apache Doris",
- "dockerRepository": "airbyte/destination-doris",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/doris",
- "icon": "apachedoris.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/destinations/doris",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Doris Destination Spec",
- "type": "object",
- "required": [ "host", "httpport", "queryport", "username", "database" ],
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database",
- "type": "string",
- "order": 0
- },
- "httpport": {
- "title": "HttpPort",
- "description": "Http Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 8030,
- "examples": [ "8030" ],
- "order": 1
- },
- "queryport": {
- "title": "QueryPort",
- "description": "Query(SQL) Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 9030,
- "examples": [ "9030" ],
- "order": 2
- },
- "database": {
- "title": "DataBase Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 3
- },
- "username": {
- "title": "UserName",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 4
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 5
- }
- }
- },
- "supportsIncremental": false,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append", "overwrite" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "df65a8f3-9908-451b-aa9b-445462803560",
- "name": "Apache Iceberg",
- "dockerRepository": "airbyte/destination-iceberg",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/iceberg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/iceberg",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Iceberg Destination Spec",
- "type": "object",
- "required": [ "catalog_config", "storage_config", "format_config" ],
- "properties": {
- "catalog_config": {
- "title": "Iceberg catalog config",
- "type": "object",
- "description": "Catalog config of Iceberg.",
- "oneOf": [ {
- "title": "HiveCatalog: Use Apache Hive MetaStore",
- "required": [ "catalog_type", "hive_thrift_uri" ],
- "properties": {
- "catalog_type": {
- "title": "Catalog Type",
- "type": "string",
- "default": "Hive",
- "enum": [ "Hive" ],
- "order": 0
- },
- "hive_thrift_uri": {
- "title": "Hive Metastore thrift uri",
- "type": "string",
- "description": "Hive MetaStore thrift server uri of iceberg catalog.",
- "examples": [ "host:port" ],
- "order": 1
- },
- "database": {
- "title": "Default database",
- "description": "The default database tables are written to if the source does not specify a namespace. The usual value for this field is \"default\".",
- "type": "string",
- "default": "default",
- "examples": [ "default" ],
- "order": 2
- }
- }
- }, {
- "title": "HadoopCatalog: Use hierarchical file systems as same as storage config",
- "description": "A Hadoop catalog doesn’t need to connect to a Hive MetaStore, but can only be used with HDFS or similar file systems that support atomic rename.",
- "required": [ "catalog_type" ],
- "properties": {
- "catalog_type": {
- "title": "Catalog Type",
- "type": "string",
- "default": "Hadoop",
- "enum": [ "Hadoop" ],
- "order": 0
- },
- "database": {
- "title": "Default database",
- "description": "The default database tables are written to if the source does not specify a namespace. The usual value for this field is \"default\".",
- "type": "string",
- "default": "default",
- "examples": [ "default" ],
- "order": 1
- }
- }
- }, {
- "title": "JdbcCatalog: Use relational database",
- "description": "Using a table in a relational database to manage Iceberg tables through JDBC. Read more here. Supporting: PostgreSQL",
- "required": [ "catalog_type" ],
- "properties": {
- "catalog_type": {
- "title": "Catalog Type",
- "type": "string",
- "default": "Jdbc",
- "enum": [ "Jdbc" ],
- "order": 0
- },
- "database": {
- "title": "Default schema",
- "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
- "type": "string",
- "default": "public",
- "examples": [ "public" ],
- "order": 1
- },
- "jdbc_url": {
- "title": "Jdbc url",
- "type": "string",
- "examples": [ "jdbc:postgresql://{host}:{port}/{database}" ],
- "order": 2
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL. When activating SSL, please select one of the connection modes.",
- "type": "boolean",
- "default": false,
- "order": 5
- },
- "catalog_schema": {
- "title": "schema for Iceberg catalog",
- "description": "Iceberg catalog metadata tables are written to catalog schema. The usual value for this field is \"public\".",
- "type": "string",
- "default": "public",
- "examples": [ "public" ],
- "order": 6
- }
- }
- } ],
- "order": 0
- },
- "storage_config": {
- "title": "Storage config",
- "type": "object",
- "description": "Storage config of Iceberg.",
- "oneOf": [ {
- "title": "S3",
- "type": "object",
- "description": "S3 object storage",
- "required": [ "storage_type", "access_key_id", "secret_access_key", "s3_warehouse_uri" ],
- "properties": {
- "storage_type": {
- "title": "Storage Type",
- "type": "string",
- "default": "S3",
- "enum": [ "S3" ],
- "order": 0
- },
- "access_key_id": {
- "type": "string",
- "description": "The access key ID to access the S3 bucket. Airbyte requires Read and Write permissions to the given bucket. Read more here.",
- "title": "S3 Key ID",
- "airbyte_secret": true,
- "examples": [ "A012345678910EXAMPLE" ],
- "order": 0
- },
- "secret_access_key": {
- "type": "string",
- "description": "The corresponding secret to the access key ID. Read more here",
- "title": "S3 Access Key",
- "airbyte_secret": true,
- "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ],
- "order": 1
- },
- "s3_warehouse_uri": {
- "title": "S3 Warehouse Uri for Iceberg",
- "type": "string",
- "description": "The Warehouse Uri for Iceberg",
- "examples": [ "s3a://my-bucket/path/to/warehouse", "s3://my-bucket/path/to/warehouse" ],
- "order": 2
- },
- "s3_bucket_region": {
- "title": "S3 Bucket Region",
- "type": "string",
- "default": "",
- "description": "The region of the S3 bucket. See here for all region codes.",
- "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
- "order": 3
- },
- "s3_endpoint": {
- "title": "Endpoint",
- "type": "string",
- "default": "",
- "description": "Your S3 endpoint url. Read more here",
- "examples": [ "http://localhost:9000", "localhost:9000" ],
- "order": 4
- },
- "s3_path_style_access": {
- "type": "boolean",
- "description": "Use path style access",
- "examples": [ true, false ],
- "default": true,
- "order": 5
- }
- }
- } ],
- "order": 1
- },
- "format_config": {
- "title": "File format",
- "type": "object",
- "required": [ "format" ],
- "description": "File format of Iceberg storage.",
- "properties": {
- "format": {
- "title": "File storage format",
- "type": "string",
- "default": "Parquet",
- "description": "",
- "enum": [ "Parquet", "Avro" ],
- "order": 0
- },
- "flush_batch_size": {
- "title": "Data file flushing batch size",
- "description": "Iceberg data file flush batch size. Incoming rows write to cache firstly; When cache size reaches this 'batch size', flush into real Iceberg data file.",
- "type": "integer",
- "default": 10000,
- "order": 1
- },
- "auto_compact": {
- "title": "Auto compact data files",
- "description": "Auto compact data files when stream close",
- "type": "boolean",
- "default": false,
- "order": 2
- },
- "compact_target_file_size_in_mb": {
- "title": "Target size of compacted data file",
- "description": "Specify the target size of Iceberg data file when performing a compaction action. ",
- "type": "integer",
- "default": 100,
- "order": 3
- }
- },
- "order": 2
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "99878c90-0fbd-46d3-9d98-ffde879d17fc",
- "name": "AWS Datalake",
- "dockerRepository": "airbyte/destination-aws-datalake",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/aws-datalake",
- "icon": "awsdatalake.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/aws-datalake",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "AWS Datalake Destination Spec",
- "type": "object",
- "required": [ "credentials", "region", "bucket_name", "lakeformation_database_name" ],
- "additionalProperties": false,
- "properties": {
- "aws_account_id": {
- "type": "string",
- "title": "AWS Account Id",
- "description": "target aws account id",
- "examples": [ "111111111111" ],
- "order": 1
- },
- "credentials": {
- "title": "Authentication mode",
- "description": "Choose How to Authenticate to AWS.",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "IAM Role",
- "required": [ "role_arn", "credentials_title" ],
- "properties": {
- "credentials_title": {
- "type": "string",
- "title": "Credentials Title",
- "description": "Name of the credentials",
- "const": "IAM Role",
- "enum": [ "IAM Role" ],
- "default": "IAM Role",
- "order": 0
- },
- "role_arn": {
- "title": "Target Role Arn",
- "type": "string",
- "description": "Will assume this role to write data to s3",
- "airbyte_secret": false
- }
- }
- }, {
- "type": "object",
- "title": "IAM User",
- "required": [ "credentials_title", "aws_access_key_id", "aws_secret_access_key" ],
- "properties": {
- "credentials_title": {
- "type": "string",
- "title": "Credentials Title",
- "description": "Name of the credentials",
- "const": "IAM User",
- "enum": [ "IAM User" ],
- "default": "IAM User",
- "order": 0
- },
- "aws_access_key_id": {
- "title": "Access Key Id",
- "type": "string",
- "description": "AWS User Access Key Id",
- "airbyte_secret": true
- },
- "aws_secret_access_key": {
- "title": "Secret Access Key",
- "type": "string",
- "description": "Secret Access Key",
- "airbyte_secret": true
- }
- }
- } ],
- "order": 2
- },
- "region": {
- "title": "S3 Bucket Region",
- "type": "string",
- "default": "",
- "description": "The region of the S3 bucket. See here for all region codes.",
- "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
- "order": 3
- },
- "bucket_name": {
- "title": "S3 Bucket Name",
- "type": "string",
- "description": "The name of the S3 bucket. Read more here.",
- "order": 4
- },
- "bucket_prefix": {
- "title": "Target S3 Bucket Prefix",
- "type": "string",
- "description": "S3 prefix",
- "order": 5
- },
- "lakeformation_database_name": {
- "title": "Lake Formation Database Name",
- "type": "string",
- "description": "The default database this destination will use to create tables in per stream. Can be changed per connection by customizing the namespace.",
- "order": 6
- },
- "lakeformation_database_default_tag_key": {
- "title": "Lake Formation Database Tag Key",
- "description": "Add a default tag key to databases created by this destination",
- "examples": [ "pii_level" ],
- "type": "string",
- "order": 7
- },
- "lakeformation_database_default_tag_values": {
- "title": "Lake Formation Database Tag Values",
- "description": "Add default values for the `Tag Key` to databases created by this destination. Comma separate for multiple values.",
- "examples": [ "private,public" ],
- "type": "string",
- "order": 8
- },
- "lakeformation_governed_tables": {
- "title": "Lake Formation Governed Tables",
- "description": "Whether to create tables as LF governed tables.",
- "type": "boolean",
- "default": false,
- "order": 9
- },
- "format": {
- "title": "Output Format *",
- "type": "object",
- "description": "Format of the data output.",
- "oneOf": [ {
- "title": "JSON Lines: Newline-delimited JSON",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "title": "Format Type *",
- "type": "string",
- "enum": [ "JSONL" ],
- "default": "JSONL"
- },
- "compression_codec": {
- "title": "Compression Codec (Optional)",
- "description": "The compression algorithm used to compress data.",
- "type": "string",
- "enum": [ "UNCOMPRESSED", "GZIP" ],
- "default": "UNCOMPRESSED"
- }
- }
- }, {
- "title": "Parquet: Columnar Storage",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "title": "Format Type *",
- "type": "string",
- "enum": [ "Parquet" ],
- "default": "Parquet"
- },
- "compression_codec": {
- "title": "Compression Codec (Optional)",
- "description": "The compression algorithm used to compress data.",
- "type": "string",
- "enum": [ "UNCOMPRESSED", "SNAPPY", "GZIP", "ZSTD" ],
- "default": "SNAPPY"
- }
- }
- } ],
- "order": 10
- },
- "partitioning": {
- "title": "Choose how to partition data",
- "description": "Partition data by cursor fields when a cursor field is a date",
- "type": "string",
- "enum": [ "NO PARTITIONING", "DATE", "YEAR", "MONTH", "DAY", "YEAR/MONTH", "YEAR/MONTH/DAY" ],
- "default": "NO PARTITIONING",
- "order": 11
- },
- "glue_catalog_float_as_decimal": {
- "title": "Glue Catalog: Float as Decimal",
- "description": "Cast float/double as decimal(38,18). This can help achieve higher accuracy and represent numbers correctly as received from the source.",
- "type": "boolean",
- "default": false,
- "order": 12
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "22f6c74f-5699-40ff-833c-4a879ea40133",
- "name": "BigQuery",
- "dockerRepository": "airbyte/destination-bigquery",
- "dockerImageTag": "1.3.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
- "icon": "bigquery.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "BigQuery Destination Spec",
- "type": "object",
- "required": [ "project_id", "dataset_location", "dataset_id" ],
- "additionalProperties": true,
- "properties": {
- "project_id": {
- "type": "string",
- "description": "The GCP project ID for the project containing the target BigQuery dataset. Read more here.",
- "title": "Project ID",
- "order": 0
- },
- "dataset_location": {
- "type": "string",
- "description": "The location of the dataset. Warning: Changes made after creation will not be applied. Read more here.",
- "title": "Dataset Location",
- "order": 1,
- "enum": [ "US", "EU", "asia-east1", "asia-east2", "asia-northeast1", "asia-northeast2", "asia-northeast3", "asia-south1", "asia-south2", "asia-southeast1", "asia-southeast2", "australia-southeast1", "australia-southeast2", "europe-central1", "europe-central2", "europe-north1", "europe-southwest1", "europe-west1", "europe-west2", "europe-west3", "europe-west4", "europe-west6", "europe-west7", "europe-west8", "europe-west9", "me-west1", "northamerica-northeast1", "northamerica-northeast2", "southamerica-east1", "southamerica-west1", "us-central1", "us-east1", "us-east2", "us-east3", "us-east4", "us-east5", "us-west1", "us-west2", "us-west3", "us-west4" ]
- },
- "dataset_id": {
- "type": "string",
- "description": "The default BigQuery Dataset ID that tables are replicated to if the source does not specify a namespace. Read more here.",
- "title": "Default Dataset ID",
- "order": 2
- },
- "loading_method": {
- "type": "object",
- "title": "Loading Method",
- "description": "Loading method used to send select the way data will be uploaded to BigQuery.
Standard Inserts - Direct uploading using SQL INSERT statements. This method is extremely inefficient and provided only for quick testing. In almost all cases, you should use staging.
GCS Staging - Writes large batches of records to a file, uploads the file to GCS, then uses COPY INTO table to upload the file. Recommended for most workloads for better speed and scalability. Read more about GCS Staging here.",
- "order": 3,
- "oneOf": [ {
- "title": "Standard Inserts",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "Standard"
- }
- }
- }, {
- "title": "GCS Staging",
- "required": [ "method", "gcs_bucket_name", "gcs_bucket_path", "credential" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "GCS Staging",
- "order": 0
- },
- "credential": {
- "title": "Credential",
- "description": "An HMAC key is a type of credential and can be associated with a service account or a user account in Cloud Storage. Read more here.",
- "type": "object",
- "order": 1,
- "oneOf": [ {
- "title": "HMAC key",
- "required": [ "credential_type", "hmac_key_access_id", "hmac_key_secret" ],
- "properties": {
- "credential_type": {
- "type": "string",
- "const": "HMAC_KEY",
- "order": 0
- },
- "hmac_key_access_id": {
- "type": "string",
- "description": "HMAC key access ID. When linked to a service account, this ID is 61 characters long; when linked to a user account, it is 24 characters long.",
- "title": "HMAC Key Access ID",
- "airbyte_secret": true,
- "examples": [ "1234567890abcdefghij1234" ],
- "order": 1
- },
- "hmac_key_secret": {
- "type": "string",
- "description": "The corresponding secret for the access ID. It is a 40-character base-64 encoded string.",
- "title": "HMAC Key Secret",
- "airbyte_secret": true,
- "examples": [ "1234567890abcdefghij1234567890ABCDEFGHIJ" ],
- "order": 2
- }
- }
- } ]
- },
- "gcs_bucket_name": {
- "title": "GCS Bucket Name",
- "type": "string",
- "description": "The name of the GCS bucket. Read more here.",
- "examples": [ "airbyte_sync" ],
- "order": 2
- },
- "gcs_bucket_path": {
- "title": "GCS Bucket Path",
- "description": "Directory under the GCS bucket where data will be written.",
- "type": "string",
- "examples": [ "data_sync/test" ],
- "order": 3
- },
- "keep_files_in_gcs-bucket": {
- "type": "string",
- "description": "This upload method is supposed to temporary store records in GCS bucket. By this select you can chose if these records should be removed from GCS when migration has finished. The default \"Delete all tmp files from GCS\" value is used if not set explicitly.",
- "title": "GCS Tmp Files Afterward Processing",
- "default": "Delete all tmp files from GCS",
- "enum": [ "Delete all tmp files from GCS", "Keep all tmp files in GCS" ],
- "order": 4
- },
- "file_buffer_count": {
- "title": "File Buffer Count",
- "type": "integer",
- "minimum": 10,
- "maximum": 50,
- "default": 10,
- "description": "Number of file buffers allocated for writing data. Increasing this number is beneficial for connections using Change Data Capture (CDC) and up to the number of streams within a connection. Increasing the number of file buffers past the maximum number of streams has deteriorating effects",
- "examples": [ "10" ],
- "order": 5
- }
- }
- } ]
- },
- "credentials_json": {
- "type": "string",
- "description": "The contents of the JSON service account key. Check out the docs if you need help generating this key. Default credentials will be used if this field is left empty.",
- "title": "Service Account Key JSON (Required for cloud, optional for open-source)",
- "airbyte_secret": true,
- "order": 4,
- "always_show": true
- },
- "transformation_priority": {
- "type": "string",
- "description": "Interactive run type means that the query is executed as soon as possible, and these queries count towards concurrent rate limit and daily limit. Read more about interactive run type here. Batch queries are queued and started as soon as idle resources are available in the BigQuery shared resource pool, which usually occurs within a few minutes. Batch queries don’t count towards your concurrent rate limit. Read more about batch queries here. The default \"interactive\" value is used if not set explicitly.",
- "title": "Transformation Query Run Type",
- "default": "interactive",
- "enum": [ "interactive", "batch" ],
- "order": 5
- },
- "big_query_client_buffer_size_mb": {
- "title": "Google BigQuery Client Chunk Size",
- "description": "Google BigQuery client's chunk (buffer) size (MIN=1, MAX = 15) for each table. The size that will be written by a single RPC. Written data will be buffered and only flushed upon reaching this size or closing the channel. The default 15MB value is used if not set explicitly. Read more here.",
- "type": "integer",
- "minimum": 1,
- "maximum": 15,
- "default": 15,
- "examples": [ "15" ],
- "order": 6
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "resourceRequirements": {
- "jobSpecific": [ {
- "jobType": "sync",
- "resourceRequirements": {
- "memory_request": "1Gi",
- "memory_limit": "1Gi"
- }
- } ]
- },
- "normalizationConfig": {
- "normalizationRepository": "airbyte/normalization",
- "normalizationTag": "0.4.0",
- "normalizationIntegrationType": "bigquery"
- },
- "supportsDbt": true
- }, {
- "destinationDefinitionId": "079d5540-f236-4294-ba7c-ade8fd918496",
- "name": "BigQuery (denormalized typed struct)",
- "dockerRepository": "airbyte/destination-bigquery-denormalized",
- "dockerImageTag": "1.3.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
- "icon": "bigquery.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "BigQuery Denormalized Typed Struct Destination Spec",
- "type": "object",
- "required": [ "project_id", "dataset_id" ],
- "additionalProperties": true,
- "properties": {
- "project_id": {
- "type": "string",
- "description": "The GCP project ID for the project containing the target BigQuery dataset. Read more here.",
- "title": "Project ID",
- "order": 0
- },
- "dataset_id": {
- "type": "string",
- "description": "The default BigQuery Dataset ID that tables are replicated to if the source does not specify a namespace. Read more here.",
- "title": "Default Dataset ID",
- "order": 1
- },
- "loading_method": {
- "type": "object",
- "title": "Loading Method",
- "description": "Loading method used to send select the way data will be uploaded to BigQuery.
Standard Inserts - Direct uploading using SQL INSERT statements. This method is extremely inefficient and provided only for quick testing. In almost all cases, you should use staging.
GCS Staging - Writes large batches of records to a file, uploads the file to GCS, then uses COPY INTO table to upload the file. Recommended for most workloads for better speed and scalability. Read more about GCS Staging here.",
- "order": 2,
- "oneOf": [ {
- "title": "Standard Inserts",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "Standard"
- }
- }
- }, {
- "title": "GCS Staging",
- "type": "object",
- "required": [ "method", "gcs_bucket_name", "gcs_bucket_path", "credential" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "GCS Staging",
- "order": 0
- },
- "credential": {
- "title": "Credential",
- "description": "An HMAC key is a type of credential and can be associated with a service account or a user account in Cloud Storage. Read more here.",
- "type": "object",
- "order": 1,
- "oneOf": [ {
- "title": "HMAC key",
- "order": 0,
- "required": [ "credential_type", "hmac_key_access_id", "hmac_key_secret" ],
- "properties": {
- "credential_type": {
- "type": "string",
- "const": "HMAC_KEY",
- "order": 0
- },
- "hmac_key_access_id": {
- "type": "string",
- "description": "HMAC key access ID. When linked to a service account, this ID is 61 characters long; when linked to a user account, it is 24 characters long.",
- "title": "HMAC Key Access ID",
- "airbyte_secret": true,
- "examples": [ "1234567890abcdefghij1234" ],
- "order": 1
- },
- "hmac_key_secret": {
- "type": "string",
- "description": "The corresponding secret for the access ID. It is a 40-character base-64 encoded string.",
- "title": "HMAC Key Secret",
- "airbyte_secret": true,
- "examples": [ "1234567890abcdefghij1234567890ABCDEFGHIJ" ],
- "order": 2
- }
- }
- } ]
- },
- "gcs_bucket_name": {
- "title": "GCS Bucket Name",
- "type": "string",
- "description": "The name of the GCS bucket. Read more here.",
- "examples": [ "airbyte_sync" ],
- "order": 2
- },
- "gcs_bucket_path": {
- "title": "GCS Bucket Path",
- "description": "Directory under the GCS bucket where data will be written. Read more here.",
- "type": "string",
- "examples": [ "data_sync/test" ],
- "order": 3
- },
- "keep_files_in_gcs-bucket": {
- "type": "string",
- "description": "This upload method is supposed to temporary store records in GCS bucket. By this select you can chose if these records should be removed from GCS when migration has finished. The default \"Delete all tmp files from GCS\" value is used if not set explicitly.",
- "title": "GCS Tmp Files Afterward Processing",
- "default": "Delete all tmp files from GCS",
- "enum": [ "Delete all tmp files from GCS", "Keep all tmp files in GCS" ],
- "order": 4
- },
- "file_buffer_count": {
- "title": "File Buffer Count",
- "type": "integer",
- "minimum": 10,
- "maximum": 50,
- "default": 10,
- "description": "Number of file buffers allocated for writing data. Increasing this number is beneficial for connections using Change Data Capture (CDC) and up to the number of streams within a connection. Increasing the number of file buffers past the maximum number of streams has deteriorating effects",
- "examples": [ "10" ],
- "order": 5
- }
- }
- } ]
- },
- "credentials_json": {
- "type": "string",
- "description": "The contents of the JSON service account key. Check out the docs if you need help generating this key. Default credentials will be used if this field is left empty.",
- "title": "Service Account Key JSON (Required for cloud, optional for open-source)",
- "airbyte_secret": true,
- "order": 3,
- "always_show": true
- },
- "dataset_location": {
- "type": "string",
- "description": "The location of the dataset. Warning: Changes made after creation will not be applied. The default \"US\" value is used if not set explicitly. Read more here.",
- "title": "Dataset Location",
- "default": "US",
- "order": 4,
- "enum": [ "US", "EU", "asia-east1", "asia-east2", "asia-northeast1", "asia-northeast2", "asia-northeast3", "asia-south1", "asia-south2", "asia-southeast1", "asia-southeast2", "australia-southeast1", "australia-southeast2", "europe-central1", "europe-central2", "europe-north1", "europe-southwest1", "europe-west1", "europe-west2", "europe-west3", "europe-west4", "europe-west6", "europe-west7", "europe-west8", "europe-west9", "me-west1", "northamerica-northeast1", "northamerica-northeast2", "southamerica-east1", "southamerica-west1", "us-central1", "us-east1", "us-east2", "us-east3", "us-east4", "us-east5", "us-west1", "us-west2", "us-west3", "us-west4" ]
- },
- "big_query_client_buffer_size_mb": {
- "title": "Google BigQuery Client Chunk Size",
- "description": "Google BigQuery client's chunk (buffer) size (MIN=1, MAX = 15) for each table. The size that will be written by a single RPC. Written data will be buffered and only flushed upon reaching this size or closing the channel. The default 15MB value is used if not set explicitly. Read more here.",
- "type": "integer",
- "minimum": 1,
- "maximum": 15,
- "default": 15,
- "examples": [ "15" ],
- "order": 5
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "resourceRequirements": {
- "jobSpecific": [ {
- "jobType": "sync",
- "resourceRequirements": {
- "memory_request": "1Gi",
- "memory_limit": "1Gi"
- }
- } ]
- }
- }, {
- "destinationDefinitionId": "707456df-6f4f-4ced-b5c6-03f73bcad1c5",
- "name": "Cassandra",
- "dockerRepository": "airbyte/destination-cassandra",
- "dockerImageTag": "0.1.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/cassandra",
- "icon": "cassandra.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/cassandra",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Cassandra Destination Spec",
- "type": "object",
- "required": [ "keyspace", "username", "password", "address", "port" ],
- "additionalProperties": true,
- "properties": {
- "keyspace": {
- "title": "Keyspace",
- "description": "Default Cassandra keyspace to create data in.",
- "type": "string",
- "order": 0
- },
- "username": {
- "title": "Username",
- "description": "Username to use to access Cassandra.",
- "type": "string",
- "order": 1
- },
- "password": {
- "title": "Password",
- "description": "Password associated with Cassandra.",
- "type": "string",
- "airbyte_secret": true,
- "order": 2
- },
- "address": {
- "title": "Address",
- "description": "Address to connect to.",
- "type": "string",
- "examples": [ "localhost,127.0.0.1" ],
- "order": 3
- },
- "port": {
- "title": "Port",
- "description": "Port of Cassandra.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 9042,
- "order": 4
- },
- "datacenter": {
- "title": "Datacenter",
- "description": "Datacenter of the cassandra cluster.",
- "type": "string",
- "default": "datacenter1",
- "order": 5
- },
- "replication": {
- "title": "Replication factor",
- "type": "integer",
- "description": "Indicates to how many nodes the data should be replicated to.",
- "default": 1,
- "order": 6
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "e088acb6-9780-4568-880c-54c2dd7f431b",
- "name": "Cumul.io",
- "dockerRepository": "airbyte/destination-cumulio",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/cumulio",
- "icon": "cumulio.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/cumulio",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Cumulio",
- "type": "object",
- "required": [ "api_host", "api_key", "api_token" ],
- "additionalProperties": true,
- "properties": {
- "api_host": {
- "title": "Cumul.io API Host URL",
- "description": "URL of the Cumul.io API (e.g. 'https://api.cumul.io', 'https://api.us.cumul.io', or VPC-specific API url). Defaults to 'https://api.cumul.io'.",
- "default": "https://api.cumul.io",
- "type": "string",
- "order": 0
- },
- "api_key": {
- "title": "Cumul.io API Key",
- "description": "An API key generated in Cumul.io's platform (can be generated here: https://app.cumul.io/start/profile/integration).",
- "type": "string",
- "airbyte_secret": true,
- "order": 1
- },
- "api_token": {
- "title": "Cumul.io API Token",
- "description": "The corresponding API token generated in Cumul.io's platform (can be generated here: https://app.cumul.io/start/profile/integration).",
- "type": "string",
- "airbyte_secret": true,
- "order": 2
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "81740ce8-d764-4ea7-94df-16bb41de36ae",
- "name": "Chargify (Keen)",
- "dockerRepository": "airbyte/destination-keen",
- "dockerImageTag": "0.2.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/keen",
- "icon": "chargify.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/keen",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Keen Spec",
- "type": "object",
- "required": [ "project_id", "api_key" ],
- "additionalProperties": false,
- "properties": {
- "project_id": {
- "description": "To get Keen Project ID, navigate to the Access tab from the left-hand, side panel and check the Project Details section.",
- "title": "Project ID",
- "type": "string",
- "examples": [ "58b4acc22ba938934e888322e" ]
- },
- "api_key": {
- "title": "API Key",
- "description": "To get Keen Master API Key, navigate to the Access tab from the left-hand, side panel and check the Project Details section.",
- "type": "string",
- "examples": [ "ABCDEFGHIJKLMNOPRSTUWXYZ" ],
- "airbyte_secret": true
- },
- "infer_timestamp": {
- "title": "Infer Timestamp",
- "description": "Allow connector to guess keen.timestamp value based on the streamed data.",
- "type": "boolean",
- "default": true
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "ce0d828e-1dc4-496c-b122-2da42e637e48",
- "name": "Clickhouse",
- "dockerRepository": "airbyte/destination-clickhouse",
- "dockerImageTag": "0.2.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/clickhouse",
- "icon": "clickhouse.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/clickhouse",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "ClickHouse Destination Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "HTTP port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 8123,
- "examples": [ "8123" ],
- "order": 1
- },
- "database": {
- "title": "DB Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 2
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 5
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL.",
- "type": "boolean",
- "default": false,
- "order": 6
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "normalizationConfig": {
- "normalizationRepository": "airbyte/normalization-clickhouse",
- "normalizationTag": "0.4.0",
- "normalizationIntegrationType": "clickhouse"
- },
- "supportsDbt": false
- }, {
- "destinationDefinitionId": "0fb07be9-7c3b-4336-850d-5efc006152ee",
- "name": "Cloudflare R2",
- "dockerRepository": "airbyte/destination-r2",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/r2",
- "icon": "cloudflare-r2.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/r2",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "R2 Destination Spec",
- "type": "object",
- "required": [ "account_id", "access_key_id", "secret_access_key", "s3_bucket_name", "s3_bucket_path", "format" ],
- "properties": {
- "account_id": {
- "type": "string",
- "description": "Cloudflare account ID",
- "title": "Cloudflare account ID",
- "examples": [ "12345678aa1a1a11111aaa1234567abc" ],
- "order": 0
- },
- "access_key_id": {
- "type": "string",
- "description": "The access key ID to access the R2 bucket. Airbyte requires Read and Write permissions to the given bucket. Read more here.",
- "title": "R2 Key ID",
- "airbyte_secret": true,
- "examples": [ "A012345678910EXAMPLE" ],
- "order": 1
- },
- "secret_access_key": {
- "type": "string",
- "description": "The corresponding secret to the access key ID. Read more here",
- "title": "R2 Access Key",
- "airbyte_secret": true,
- "examples": [ "a012345678910ABCDEFGHAbCdEfGhEXAMPLEKEY" ],
- "order": 2
- },
- "s3_bucket_name": {
- "title": "R2 Bucket Name",
- "type": "string",
- "description": "The name of the R2 bucket. Read more here.",
- "examples": [ "r2_sync" ],
- "order": 3
- },
- "s3_bucket_path": {
- "title": "R2 Bucket Path",
- "description": "Directory under the R2 bucket where data will be written.",
- "type": "string",
- "examples": [ "data_sync/test" ],
- "order": 4
- },
- "format": {
- "title": "Output Format",
- "type": "object",
- "description": "Format of the data output. See here for more details",
- "oneOf": [ {
- "title": "Avro: Apache Avro",
- "required": [ "format_type", "compression_codec" ],
- "properties": {
- "format_type": {
- "title": "Format Type",
- "type": "string",
- "enum": [ "Avro" ],
- "default": "Avro",
- "order": 0
- },
- "compression_codec": {
- "title": "Compression Codec",
- "description": "The compression algorithm used to compress data. Default to no compression.",
- "type": "object",
- "oneOf": [ {
- "title": "No Compression",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "no compression" ],
- "default": "no compression"
- }
- }
- }, {
- "title": "Deflate",
- "required": [ "codec", "compression_level" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "Deflate" ],
- "default": "Deflate"
- },
- "compression_level": {
- "title": "Deflate Level",
- "description": "0: no compression & fastest, 9: best compression & slowest.",
- "type": "integer",
- "default": 0,
- "minimum": 0,
- "maximum": 9
- }
- }
- }, {
- "title": "bzip2",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "bzip2" ],
- "default": "bzip2"
- }
- }
- }, {
- "title": "xz",
- "required": [ "codec", "compression_level" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "xz" ],
- "default": "xz"
- },
- "compression_level": {
- "title": "Compression Level",
- "description": "See here for details.",
- "type": "integer",
- "default": 6,
- "minimum": 0,
- "maximum": 9
- }
- }
- }, {
- "title": "zstandard",
- "required": [ "codec", "compression_level" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "zstandard" ],
- "default": "zstandard"
- },
- "compression_level": {
- "title": "Compression Level",
- "description": "Negative levels are 'fast' modes akin to lz4 or snappy, levels above 9 are generally for archival purposes, and levels above 18 use a lot of memory.",
- "type": "integer",
- "default": 3,
- "minimum": -5,
- "maximum": 22
- },
- "include_checksum": {
- "title": "Include Checksum",
- "description": "If true, include a checksum with each data block.",
- "type": "boolean",
- "default": false
- }
- }
- }, {
- "title": "snappy",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "snappy" ],
- "default": "snappy"
- }
- }
- } ],
- "order": 1
- }
- }
- }, {
- "title": "CSV: Comma-Separated Values",
- "required": [ "format_type", "flattening" ],
- "properties": {
- "format_type": {
- "title": "Format Type",
- "type": "string",
- "enum": [ "CSV" ],
- "default": "CSV"
- },
- "flattening": {
- "type": "string",
- "title": "Normalization (Flattening)",
- "description": "Whether the input json data should be normalized (flattened) in the output CSV. Please refer to docs for details.",
- "default": "No flattening",
- "enum": [ "No flattening", "Root level flattening" ]
- },
- "compression": {
- "title": "Compression",
- "type": "object",
- "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".csv.gz\").",
- "oneOf": [ {
- "title": "No Compression",
- "requires": [ "compression_type" ],
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "No Compression" ],
- "default": "No Compression"
- }
- }
- }, {
- "title": "GZIP",
- "requires": [ "compression_type" ],
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "GZIP" ],
- "default": "GZIP"
- }
- }
- } ]
- }
- }
- }, {
- "title": "JSON Lines: Newline-delimited JSON",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "title": "Format Type",
- "type": "string",
- "enum": [ "JSONL" ],
- "default": "JSONL"
- },
- "compression": {
- "title": "Compression",
- "type": "object",
- "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".jsonl.gz\").",
- "oneOf": [ {
- "title": "No Compression",
- "requires": "compression_type",
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "No Compression" ],
- "default": "No Compression"
- }
- }
- }, {
- "title": "GZIP",
- "requires": "compression_type",
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "GZIP" ],
- "default": "GZIP"
- }
- }
- } ]
- }
- }
- } ],
- "order": 5
- },
- "s3_path_format": {
- "title": "R2 Path Format",
- "description": "Format string on how data will be organized inside the R2 bucket directory. Read more here",
- "type": "string",
- "examples": [ "${NAMESPACE}/${STREAM_NAME}/${YEAR}_${MONTH}_${DAY}_${EPOCH}_" ],
- "order": 6
- },
- "file_name_pattern": {
- "type": "string",
- "description": "The pattern allows you to set the file-name format for the R2 staging file(s)",
- "title": "R2 Filename pattern",
- "examples": [ "{date}", "{date:yyyy_MM}", "{timestamp}", "{part_number}", "{sync_id}" ],
- "order": 7
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "3eb4d99c-11fa-4561-a259-fc88e0c2f8f4",
- "name": "Convex",
- "dockerRepository": "airbyte/destination-convex",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.io/integrations/destinations/convex",
- "icon": "convex.svg",
- "spec": {
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Convex",
- "type": "object",
- "required": [ "deployment_url", "access_key" ],
- "properties": {
- "deployment_url": {
- "type": "string",
- "title": "Deployment Url",
- "examples": [ "https://murky-swan-635.convex.cloud", "https://cluttered-owl-337.convex.cloud" ]
- },
- "access_key": {
- "type": "string",
- "title": "Access Key",
- "description": "API access key used to retrieve data from Convex.",
- "airbyte_secret": true
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "4528e960-6f7b-4412-8555-7e0097e1da17",
- "name": "Starburst Galaxy",
- "dockerRepository": "airbyte/destination-starburst-galaxy",
- "dockerImageTag": "0.0.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/starburst-galaxy",
- "icon": "starburst-galaxy.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/starburst-galaxy",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Starburst Galaxy Destination Spec",
- "type": "object",
- "required": [ "accept_terms", "server_hostname", "username", "password", "catalog", "staging_object_store" ],
- "properties": {
- "accept_terms": {
- "title": "Agree to the Starburst Galaxy terms & conditions",
- "type": "boolean",
- "description": "You must agree to the Starburst Galaxy terms & conditions to use this connector.",
- "default": false,
- "order": 1
- },
- "server_hostname": {
- "title": "Hostname",
- "type": "string",
- "description": "Starburst Galaxy cluster hostname.",
- "examples": [ "abc-12345678-wxyz.trino.galaxy-demo.io" ],
- "order": 2
- },
- "port": {
- "title": "Port",
- "type": "string",
- "description": "Starburst Galaxy cluster port.",
- "default": "443",
- "examples": [ "443" ],
- "order": 3
- },
- "username": {
- "title": "User",
- "type": "string",
- "description": "Starburst Galaxy user.",
- "examples": [ "user@example.com" ],
- "order": 4
- },
- "password": {
- "title": "Password",
- "type": "string",
- "description": "Starburst Galaxy password for the specified user.",
- "examples": [ "password" ],
- "airbyte_secret": true,
- "order": 5
- },
- "catalog": {
- "title": "Amazon S3 catalog",
- "type": "string",
- "description": "Name of the Starburst Galaxy Amazon S3 catalog.",
- "examples": [ "sample_s3_catalog" ],
- "order": 6
- },
- "catalog_schema": {
- "title": "Amazon S3 catalog schema",
- "type": "string",
- "description": "The default Starburst Galaxy Amazon S3 catalog schema where tables are written to if the source does not specify a namespace. Defaults to \"public\".",
- "default": "public",
- "examples": [ "public" ],
- "order": 7
- },
- "staging_object_store": {
- "title": "Staging object store",
- "type": "object",
- "description": "Temporary storage on which temporary Iceberg table is created.",
- "oneOf": [ {
- "title": "Amazon S3",
- "required": [ "object_store_type", "s3_bucket_name", "s3_bucket_path", "s3_bucket_region", "s3_access_key_id", "s3_secret_access_key" ],
- "properties": {
- "object_store_type": {
- "type": "string",
- "enum": [ "S3" ],
- "default": "S3",
- "order": 1
- },
- "s3_bucket_name": {
- "title": "S3 bucket name",
- "type": "string",
- "description": "Name of the S3 bucket",
- "examples": [ "airbyte_staging" ],
- "order": 1
- },
- "s3_bucket_path": {
- "title": "S3 bucket path",
- "type": "string",
- "description": "Directory in the S3 bucket where staging data is stored.",
- "examples": [ "temp_airbyte__sync/test" ],
- "order": 2
- },
- "s3_bucket_region": {
- "title": "S3 bucket region",
- "type": "string",
- "default": "us-east-1",
- "description": "The region of the S3 bucket.",
- "enum": [ "ap-northeast-1", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "eu-central-1", "eu-west-1", "eu-west-2", "eu-west-3", "us-east-1", "us-east-2", "us-west-1", "us-west-2" ],
- "order": 3
- },
- "s3_access_key_id": {
- "title": "Access key",
- "type": "string",
- "description": "Access key with access to the bucket. Airbyte requires read and write permissions to a given bucket.",
- "examples": [ "A012345678910EXAMPLE" ],
- "airbyte_secret": true,
- "order": 4
- },
- "s3_secret_access_key": {
- "title": "Secret key",
- "type": "string",
- "description": "Secret key used with the specified access key.",
- "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ],
- "airbyte_secret": true,
- "order": 5
- }
- }
- } ],
- "order": 8
- },
- "purge_staging_table": {
- "title": "Purge staging Iceberg table",
- "type": "boolean",
- "description": "Defaults to 'true'. Switch to 'false' for debugging purposes.",
- "default": true,
- "order": 9
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "072d5540-f236-4294-ba7c-ade8fd918496",
- "name": "Databricks Lakehouse",
- "dockerRepository": "airbyte/destination-databricks",
- "dockerImageTag": "1.0.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/databricks",
- "icon": "databricks.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/databricks",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Databricks Lakehouse Destination Spec",
- "type": "object",
- "required": [ "accept_terms", "databricks_server_hostname", "databricks_http_path", "databricks_personal_access_token", "data_source" ],
- "properties": {
- "accept_terms": {
- "title": "Agree to the Databricks JDBC Driver Terms & Conditions",
- "type": "boolean",
- "description": "You must agree to the Databricks JDBC Driver Terms & Conditions to use this connector.",
- "default": false,
- "order": 1
- },
- "databricks_server_hostname": {
- "title": "Server Hostname",
- "type": "string",
- "description": "Databricks Cluster Server Hostname.",
- "examples": [ "abc-12345678-wxyz.cloud.databricks.com" ],
- "order": 2
- },
- "databricks_http_path": {
- "title": "HTTP Path",
- "type": "string",
- "description": "Databricks Cluster HTTP Path.",
- "examples": [ "sql/protocolvx/o/1234567489/0000-1111111-abcd90" ],
- "order": 3
- },
- "databricks_port": {
- "title": "Port",
- "type": "string",
- "description": "Databricks Cluster Port.",
- "default": "443",
- "examples": [ "443" ],
- "order": 4
- },
- "databricks_personal_access_token": {
- "title": "Access Token",
- "type": "string",
- "description": "Databricks Personal Access Token for making authenticated requests.",
- "examples": [ "dapi0123456789abcdefghij0123456789AB" ],
- "airbyte_secret": true,
- "order": 5
- },
- "database": {
- "title": "Databricks catalog",
- "description": "The name of the catalog. If not specified otherwise, the \"hive_metastore\" will be used.",
- "type": "string",
- "order": 6
- },
- "schema": {
- "title": "Default Schema",
- "description": "The default schema tables are written. If not specified otherwise, the \"default\" will be used.",
- "type": "string",
- "examples": [ "default" ],
- "default": "default",
- "order": 7
- },
- "data_source": {
- "title": "Data Source",
- "type": "object",
- "description": "Storage on which the delta lake is built.",
- "default": "MANAGED_TABLES_STORAGE",
- "order": 8,
- "oneOf": [ {
- "title": "[Recommended] Managed tables",
- "required": [ "data_source_type" ],
- "properties": {
- "data_source_type": {
- "type": "string",
- "const": "MANAGED_TABLES_STORAGE",
- "order": 0
- }
- }
- }, {
- "title": "Amazon S3",
- "required": [ "data_source_type", "s3_bucket_name", "s3_bucket_path", "s3_bucket_region", "s3_access_key_id", "s3_secret_access_key" ],
- "properties": {
- "data_source_type": {
- "type": "string",
- "const": "S3_STORAGE",
- "order": 1
- },
- "s3_bucket_name": {
- "title": "S3 Bucket Name",
- "type": "string",
- "description": "The name of the S3 bucket to use for intermittent staging of the data.",
- "examples": [ "airbyte.staging" ],
- "order": 2
- },
- "s3_bucket_path": {
- "title": "S3 Bucket Path",
- "type": "string",
- "description": "The directory under the S3 bucket where data will be written.",
- "examples": [ "data_sync/test" ],
- "order": 3
- },
- "s3_bucket_region": {
- "title": "S3 Bucket Region",
- "type": "string",
- "default": "",
- "description": "The region of the S3 staging bucket to use if utilising a copy strategy.",
- "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
- "order": 4
- },
- "s3_access_key_id": {
- "type": "string",
- "description": "The Access Key Id granting allow one to access the above S3 staging bucket. Airbyte requires Read and Write permissions to the given bucket.",
- "title": "S3 Access Key ID",
- "examples": [ "A012345678910EXAMPLE" ],
- "airbyte_secret": true,
- "order": 5
- },
- "s3_secret_access_key": {
- "title": "S3 Secret Access Key",
- "type": "string",
- "description": "The corresponding secret to the above access key id.",
- "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ],
- "airbyte_secret": true,
- "order": 6
- },
- "file_name_pattern": {
- "type": "string",
- "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
- "title": "S3 Filename pattern",
- "examples": [ "{date}", "{date:yyyy_MM}", "{timestamp}", "{part_number}", "{sync_id}" ],
- "order": 7
- }
- }
- }, {
- "title": "Azure Blob Storage",
- "required": [ "data_source_type", "azure_blob_storage_account_name", "azure_blob_storage_container_name", "azure_blob_storage_sas_token" ],
- "properties": {
- "data_source_type": {
- "type": "string",
- "const": "AZURE_BLOB_STORAGE",
- "order": 0
- },
- "azure_blob_storage_endpoint_domain_name": {
- "title": "Endpoint Domain Name",
- "type": "string",
- "default": "blob.core.windows.net",
- "description": "This is Azure Blob Storage endpoint domain name. Leave default value (or leave it empty if run container from command line) to use Microsoft native from example.",
- "examples": [ "blob.core.windows.net" ],
- "order": 1
- },
- "azure_blob_storage_account_name": {
- "title": "Azure Blob Storage Account Name",
- "type": "string",
- "description": "The account's name of the Azure Blob Storage.",
- "examples": [ "airbyte5storage" ],
- "order": 2
- },
- "azure_blob_storage_container_name": {
- "title": "Azure Blob Storage Container Name",
- "type": "string",
- "description": "The name of the Azure blob storage container.",
- "examples": [ "airbytetestcontainername" ],
- "order": 3
- },
- "azure_blob_storage_sas_token": {
- "title": "SAS Token",
- "type": "string",
- "airbyte_secret": true,
- "description": "Shared access signature (SAS) token to grant limited access to objects in your storage account.",
- "examples": [ "?sv=2016-05-31&ss=b&srt=sco&sp=rwdl&se=2018-06-27T10:05:50Z&st=2017-06-27T02:05:50Z&spr=https,http&sig=bgqQwoXwxzuD2GJfagRg7VOS8hzNr3QLT7rhS8OFRLQ%3D" ],
- "order": 4
- }
- }
- } ]
- },
- "purge_staging_data": {
- "title": "Purge Staging Files and Tables",
- "type": "boolean",
- "description": "Default to 'true'. Switch it to 'false' for debugging purpose.",
- "default": true,
- "order": 9
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "8ccd8909-4e99-4141-b48d-4984b70b2d89",
- "name": "DynamoDB",
- "dockerRepository": "airbyte/destination-dynamodb",
- "dockerImageTag": "0.1.7",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/dynamodb",
- "icon": "dynamodb.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/dynamodb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "DynamoDB Destination Spec",
- "type": "object",
- "required": [ "dynamodb_table_name_prefix", "dynamodb_region", "access_key_id", "secret_access_key" ],
- "additionalProperties": false,
- "properties": {
- "dynamodb_endpoint": {
- "title": "Endpoint",
- "type": "string",
- "default": "",
- "description": "This is your DynamoDB endpoint url.(if you are working with AWS DynamoDB, just leave empty).",
- "examples": [ "http://localhost:9000" ]
- },
- "dynamodb_table_name_prefix": {
- "title": "Table name prefix",
- "type": "string",
- "description": "The prefix to use when naming DynamoDB tables.",
- "examples": [ "airbyte_sync" ]
- },
- "dynamodb_region": {
- "title": "DynamoDB Region",
- "type": "string",
- "default": "",
- "description": "The region of the DynamoDB.",
- "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ]
- },
- "access_key_id": {
- "type": "string",
- "description": "The access key id to access the DynamoDB. Airbyte requires Read and Write permissions to the DynamoDB.",
- "title": "DynamoDB Key Id",
- "airbyte_secret": true,
- "examples": [ "A012345678910EXAMPLE" ]
- },
- "secret_access_key": {
- "type": "string",
- "description": "The corresponding secret to the access key id.",
- "title": "DynamoDB Access Key",
- "airbyte_secret": true,
- "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "2eb65e87-983a-4fd7-b3e3-9d9dc6eb8537",
- "name": "E2E Testing",
- "dockerRepository": "airbyte/destination-e2e-test",
- "dockerImageTag": "0.2.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/e2e-test",
- "icon": "airbyte.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/e2e-test",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "E2E Test Destination Spec",
- "type": "object",
- "oneOf": [ {
- "title": "Logging",
- "required": [ "type", "logging_config" ],
- "properties": {
- "type": {
- "type": "string",
- "const": "LOGGING",
- "default": "LOGGING"
- },
- "logging_config": {
- "title": "Logging Configuration",
- "type": "object",
- "description": "Configurate how the messages are logged.",
- "oneOf": [ {
- "title": "First N Entries",
- "description": "Log first N entries per stream.",
- "type": "object",
- "required": [ "logging_type", "max_entry_count" ],
- "properties": {
- "logging_type": {
- "type": "string",
- "enum": [ "FirstN" ],
- "default": "FirstN"
- },
- "max_entry_count": {
- "title": "N",
- "description": "Number of entries to log. This destination is for testing only. So it won't make sense to log infinitely. The maximum is 1,000 entries.",
- "type": "number",
- "default": 100,
- "examples": [ 100 ],
- "minimum": 1,
- "maximum": 1000
- }
- }
- }, {
- "title": "Every N-th Entry",
- "description": "For each stream, log every N-th entry with a maximum cap.",
- "type": "object",
- "required": [ "logging_type", "nth_entry_to_log", "max_entry_count" ],
- "properties": {
- "logging_type": {
- "type": "string",
- "enum": [ "EveryNth" ],
- "default": "EveryNth"
- },
- "nth_entry_to_log": {
- "title": "N",
- "description": "The N-th entry to log for each stream. N starts from 1. For example, when N = 1, every entry is logged; when N = 2, every other entry is logged; when N = 3, one out of three entries is logged.",
- "type": "number",
- "example": [ 3 ],
- "minimum": 1,
- "maximum": 1000
- },
- "max_entry_count": {
- "title": "Max Log Entries",
- "description": "Max number of entries to log. This destination is for testing only. So it won't make sense to log infinitely. The maximum is 1,000 entries.",
- "type": "number",
- "default": 100,
- "examples": [ 100 ],
- "minimum": 1,
- "maximum": 1000
- }
- }
- }, {
- "title": "Random Sampling",
- "description": "For each stream, randomly log a percentage of the entries with a maximum cap.",
- "type": "object",
- "required": [ "logging_type", "sampling_ratio", "max_entry_count" ],
- "properties": {
- "logging_type": {
- "type": "string",
- "enum": [ "RandomSampling" ],
- "default": "RandomSampling"
- },
- "sampling_ratio": {
- "title": "Sampling Ratio",
- "description": "A positive floating number smaller than 1.",
- "type": "number",
- "default": 0.001,
- "examples": [ 0.001 ],
- "minimum": 0,
- "maximum": 1
- },
- "seed": {
- "title": "Random Number Generator Seed",
- "description": "When the seed is unspecified, the current time millis will be used as the seed.",
- "type": "number",
- "examples": [ 1900 ]
- },
- "max_entry_count": {
- "title": "Max Log Entries",
- "description": "Max number of entries to log. This destination is for testing only. So it won't make sense to log infinitely. The maximum is 1,000 entries.",
- "type": "number",
- "default": 100,
- "examples": [ 100 ],
- "minimum": 1,
- "maximum": 1000
- }
- }
- } ]
- }
- }
- }, {
- "title": "Silent",
- "required": [ "type" ],
- "properties": {
- "type": {
- "type": "string",
- "const": "SILENT",
- "default": "SILENT"
- }
- }
- }, {
- "title": "Throttled",
- "required": [ "type", "millis_per_record" ],
- "properties": {
- "type": {
- "type": "string",
- "const": "THROTTLED",
- "default": "THROTTLED"
- },
- "millis_per_record": {
- "description": "Number of milli-second to pause in between records.",
- "type": "integer"
- }
- }
- }, {
- "title": "Failing",
- "required": [ "type", "num_messages" ],
- "properties": {
- "type": {
- "type": "string",
- "const": "FAILING",
- "default": "FAILING"
- },
- "num_messages": {
- "description": "Number of messages after which to fail.",
- "type": "integer"
- }
- }
- } ]
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false
- }, {
- "destinationDefinitionId": "68f351a7-2745-4bef-ad7f-996b8e51bb8c",
- "name": "ElasticSearch",
- "dockerRepository": "airbyte/destination-elasticsearch",
- "dockerImageTag": "0.1.6",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/elasticsearch",
- "icon": "elasticsearch.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/elasticsearch",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Elasticsearch Connection Configuration",
- "type": "object",
- "required": [ "endpoint" ],
- "additionalProperties": false,
- "properties": {
- "endpoint": {
- "title": "Server Endpoint",
- "type": "string",
- "description": "The full url of the Elasticsearch server"
- },
- "upsert": {
- "type": "boolean",
- "title": "Upsert Records",
- "description": "If a primary key identifier is defined in the source, an upsert will be performed using the primary key value as the elasticsearch doc id. Does not support composite primary keys.",
- "default": true
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true
- },
- "authenticationMethod": {
- "title": "Authentication Method",
- "type": "object",
- "description": "The type of authentication to be used",
- "oneOf": [ {
- "title": "None",
- "additionalProperties": false,
- "description": "No authentication will be used",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "none"
- }
- }
- }, {
- "title": "Api Key/Secret",
- "additionalProperties": false,
- "description": "Use a api key and secret combination to authenticate",
- "required": [ "method", "apiKeyId", "apiKeySecret" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "secret"
- },
- "apiKeyId": {
- "title": "API Key ID",
- "description": "The Key ID to used when accessing an enterprise Elasticsearch instance.",
- "type": "string"
- },
- "apiKeySecret": {
- "title": "API Key Secret",
- "description": "The secret associated with the API Key ID.",
- "type": "string",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Username/Password",
- "additionalProperties": false,
- "description": "Basic auth header with a username and password",
- "required": [ "method", "username", "password" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "basic"
- },
- "username": {
- "title": "Username",
- "description": "Basic auth username to access a secure Elasticsearch server",
- "type": "string"
- },
- "password": {
- "title": "Password",
- "description": "Basic auth password to access a secure Elasticsearch server",
- "type": "string",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ],
- "supportsNamespaces": true
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "bb6071d9-6f34-4766-bec2-d1d4ed81a653",
- "name": "Exasol",
- "dockerRepository": "airbyte/destination-exasol",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/exasol",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/exasol",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Exasol Destination Spec",
- "type": "object",
- "required": [ "host", "port", "username", "schema" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 8563,
- "examples": [ "8563" ],
- "order": 1
- },
- "certificateFingerprint": {
- "title": "Certificate Fingerprint",
- "description": "Fingerprint of the Exasol server's TLS certificate",
- "type": "string",
- "examples": [ "ABC123..." ],
- "order": 2
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "schema": {
- "title": "Schema Name",
- "description": "Schema Name",
- "type": "string",
- "order": 5
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol ';'. (example: key1=value1;key2=value2;key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 6
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "18081484-02a5-4662-8dba-b270b582f321",
- "name": "Firebolt",
- "dockerRepository": "airbyte/destination-firebolt",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/firebolt",
- "icon": "firebolt.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/firebolt",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Firebolt Spec",
- "type": "object",
- "required": [ "username", "password", "database" ],
- "additionalProperties": false,
- "properties": {
- "username": {
- "type": "string",
- "title": "Username",
- "description": "Firebolt email address you use to login.",
- "examples": [ "username@email.com" ],
- "order": 0
- },
- "password": {
- "type": "string",
- "title": "Password",
- "description": "Firebolt password.",
- "airbyte_secret": true,
- "order": 1
- },
- "account": {
- "type": "string",
- "title": "Account",
- "description": "Firebolt account to login."
- },
- "host": {
- "type": "string",
- "title": "Host",
- "description": "The host name of your Firebolt database.",
- "examples": [ "api.app.firebolt.io" ]
- },
- "database": {
- "type": "string",
- "title": "Database",
- "description": "The database to connect to."
- },
- "engine": {
- "type": "string",
- "title": "Engine",
- "description": "Engine name or url to connect to."
- },
- "loading_method": {
- "type": "object",
- "title": "Loading Method",
- "description": "Loading method used to select the way data will be uploaded to Firebolt",
- "oneOf": [ {
- "title": "SQL Inserts",
- "additionalProperties": false,
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "SQL"
- }
- }
- }, {
- "title": "External Table via S3",
- "additionalProperties": false,
- "required": [ "method", "s3_bucket", "s3_region", "aws_key_id", "aws_key_secret" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "S3"
- },
- "s3_bucket": {
- "type": "string",
- "title": "S3 bucket name",
- "description": "The name of the S3 bucket."
- },
- "s3_region": {
- "type": "string",
- "title": "S3 region name",
- "description": "Region name of the S3 bucket.",
- "examples": [ "us-east-1" ]
- },
- "aws_key_id": {
- "type": "string",
- "title": "AWS Key ID",
- "airbyte_secret": true,
- "description": "AWS access key granting read and write access to S3."
- },
- "aws_key_secret": {
- "type": "string",
- "title": "AWS Key Secret",
- "airbyte_secret": true,
- "description": "Corresponding secret part of the AWS Key"
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "supportsDbt": true
- }, {
- "destinationDefinitionId": "ca8f6566-e555-4b40-943a-545bf123117a",
- "name": "Google Cloud Storage (GCS)",
- "dockerRepository": "airbyte/destination-gcs",
- "dockerImageTag": "0.2.16",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/gcs",
- "icon": "googlecloudstorage.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/gcs",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "GCS Destination Spec",
- "type": "object",
- "required": [ "gcs_bucket_name", "gcs_bucket_path", "credential", "format" ],
- "properties": {
- "gcs_bucket_name": {
- "title": "GCS Bucket Name",
- "order": 1,
- "type": "string",
- "description": "You can find the bucket name in the App Engine Admin console Application Settings page, under the label Google Cloud Storage Bucket. Read more here.",
- "examples": [ "airbyte_sync" ]
- },
- "gcs_bucket_path": {
- "title": "GCS Bucket Path",
- "description": "GCS Bucket Path string Subdirectory under the above bucket to sync the data into.",
- "order": 2,
- "type": "string",
- "examples": [ "data_sync/test" ]
- },
- "gcs_bucket_region": {
- "title": "GCS Bucket Region",
- "type": "string",
- "order": 3,
- "default": "us",
- "description": "Select a Region of the GCS Bucket. Read more here.",
- "enum": [ "northamerica-northeast1", "northamerica-northeast2", "us-central1", "us-east1", "us-east4", "us-west1", "us-west2", "us-west3", "us-west4", "southamerica-east1", "southamerica-west1", "europe-central2", "europe-north1", "europe-west1", "europe-west2", "europe-west3", "europe-west4", "europe-west6", "asia-east1", "asia-east2", "asia-northeast1", "asia-northeast2", "asia-northeast3", "asia-south1", "asia-south2", "asia-southeast1", "asia-southeast2", "australia-southeast1", "australia-southeast2", "asia", "eu", "us", "asia1", "eur4", "nam4" ]
- },
- "credential": {
- "title": "Authentication",
- "description": "An HMAC key is a type of credential and can be associated with a service account or a user account in Cloud Storage. Read more here.",
- "type": "object",
- "order": 0,
- "oneOf": [ {
- "title": "HMAC Key",
- "required": [ "credential_type", "hmac_key_access_id", "hmac_key_secret" ],
- "properties": {
- "credential_type": {
- "type": "string",
- "enum": [ "HMAC_KEY" ],
- "default": "HMAC_KEY"
- },
- "hmac_key_access_id": {
- "type": "string",
- "description": "When linked to a service account, this ID is 61 characters long; when linked to a user account, it is 24 characters long. Read more here.",
- "title": "Access ID",
- "airbyte_secret": true,
- "order": 0,
- "examples": [ "1234567890abcdefghij1234" ]
- },
- "hmac_key_secret": {
- "type": "string",
- "description": "The corresponding secret for the access ID. It is a 40-character base-64 encoded string. Read more here.",
- "title": "Secret",
- "airbyte_secret": true,
- "order": 1,
- "examples": [ "1234567890abcdefghij1234567890ABCDEFGHIJ" ]
- }
- }
- } ]
- },
- "format": {
- "title": "Output Format",
- "type": "object",
- "description": "Output data format. One of the following formats must be selected - AVRO format, PARQUET format, CSV format, or JSONL format.",
- "order": 4,
- "oneOf": [ {
- "title": "Avro: Apache Avro",
- "required": [ "format_type", "compression_codec" ],
- "properties": {
- "format_type": {
- "type": "string",
- "enum": [ "Avro" ],
- "default": "Avro"
- },
- "compression_codec": {
- "title": "Compression Codec",
- "description": "The compression algorithm used to compress data. Default to no compression.",
- "type": "object",
- "oneOf": [ {
- "title": "No Compression",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "no compression" ],
- "default": "no compression"
- }
- }
- }, {
- "title": "Deflate",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "Deflate" ],
- "default": "Deflate"
- },
- "compression_level": {
- "title": "Deflate level",
- "description": "0: no compression & fastest, 9: best compression & slowest.",
- "type": "integer",
- "default": 0,
- "minimum": 0,
- "maximum": 9
- }
- }
- }, {
- "title": "bzip2",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "bzip2" ],
- "default": "bzip2"
- }
- }
- }, {
- "title": "xz",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "xz" ],
- "default": "xz"
- },
- "compression_level": {
- "title": "Compression Level",
- "description": "The presets 0-3 are fast presets with medium compression. The presets 4-6 are fairly slow presets with high compression. The default preset is 6. The presets 7-9 are like the preset 6 but use bigger dictionaries and have higher compressor and decompressor memory requirements. Unless the uncompressed size of the file exceeds 8 MiB, 16 MiB, or 32 MiB, it is waste of memory to use the presets 7, 8, or 9, respectively. Read more here for details.",
- "type": "integer",
- "default": 6,
- "minimum": 0,
- "maximum": 9
- }
- }
- }, {
- "title": "zstandard",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "zstandard" ],
- "default": "zstandard"
- },
- "compression_level": {
- "title": "Compression Level",
- "description": "Negative levels are 'fast' modes akin to lz4 or snappy, levels above 9 are generally for archival purposes, and levels above 18 use a lot of memory.",
- "type": "integer",
- "default": 3,
- "minimum": -5,
- "maximum": 22
- },
- "include_checksum": {
- "title": "Include Checksum",
- "description": "If true, include a checksum with each data block.",
- "type": "boolean",
- "default": false
- }
- }
- }, {
- "title": "snappy",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "snappy" ],
- "default": "snappy"
- }
- }
- } ]
- }
- }
- }, {
- "title": "CSV: Comma-Separated Values",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "type": "string",
- "enum": [ "CSV" ],
- "default": "CSV"
- },
- "flattening": {
- "type": "string",
- "title": "Normalization",
- "description": "Whether the input JSON data should be normalized (flattened) in the output CSV. Please refer to docs for details.",
- "default": "No flattening",
- "enum": [ "No flattening", "Root level flattening" ]
- },
- "compression": {
- "title": "Compression",
- "type": "object",
- "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".csv.gz\").",
- "oneOf": [ {
- "title": "No Compression",
- "requires": [ "compression_type" ],
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "No Compression" ],
- "default": "No Compression"
- }
- }
- }, {
- "title": "GZIP",
- "requires": [ "compression_type" ],
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "GZIP" ],
- "default": "GZIP"
- }
- }
- } ]
- }
- }
- }, {
- "title": "JSON Lines: newline-delimited JSON",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "type": "string",
- "enum": [ "JSONL" ],
- "default": "JSONL"
- },
- "compression": {
- "title": "Compression",
- "type": "object",
- "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".jsonl.gz\").",
- "oneOf": [ {
- "title": "No Compression",
- "requires": "compression_type",
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "No Compression" ],
- "default": "No Compression"
- }
- }
- }, {
- "title": "GZIP",
- "requires": "compression_type",
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "GZIP" ],
- "default": "GZIP"
- }
- }
- } ]
- }
- }
- }, {
- "title": "Parquet: Columnar Storage",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "type": "string",
- "enum": [ "Parquet" ],
- "default": "Parquet"
- },
- "compression_codec": {
- "title": "Compression Codec",
- "description": "The compression algorithm used to compress data pages.",
- "type": "string",
- "default": "UNCOMPRESSED",
- "enum": [ "UNCOMPRESSED", "SNAPPY", "GZIP", "LZO", "BROTLI", "LZ4", "ZSTD" ]
- },
- "block_size_mb": {
- "title": "Block Size (Row Group Size) (MB)",
- "description": "This is the size of a row group being buffered in memory. It limits the memory usage when writing. Larger values will improve the IO when reading, but consume more memory when writing. Default: 128 MB.",
- "type": "integer",
- "default": 128,
- "examples": [ 128 ]
- },
- "max_padding_size_mb": {
- "title": "Max Padding Size (MB)",
- "description": "Maximum size allowed as padding to align row groups. This is also the minimum size of a row group. Default: 8 MB.",
- "type": "integer",
- "default": 8,
- "examples": [ 8 ]
- },
- "page_size_kb": {
- "title": "Page Size (KB)",
- "description": "The page size is for compression. A block is composed of pages. A page is the smallest unit that must be read fully to access a single record. If this value is too small, the compression will deteriorate. Default: 1024 KB.",
- "type": "integer",
- "default": 1024,
- "examples": [ 1024 ]
- },
- "dictionary_page_size_kb": {
- "title": "Dictionary Page Size (KB)",
- "description": "There is one dictionary page per column per row group when dictionary encoding is used. The dictionary page size works like the page size but for dictionary. Default: 1024 KB.",
- "type": "integer",
- "default": 1024,
- "examples": [ 1024 ]
- },
- "dictionary_encoding": {
- "title": "Dictionary Encoding",
- "description": "Default: true.",
- "type": "boolean",
- "default": true
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ],
- "$schema": "http://json-schema.org/draft-07/schema#"
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "resourceRequirements": {
- "jobSpecific": [ {
- "jobType": "sync",
- "resourceRequirements": {
- "memory_request": "1Gi",
- "memory_limit": "1Gi"
- }
- } ]
- }
- }, {
- "destinationDefinitionId": "27dc7500-6d1b-40b1-8b07-e2f2aea3c9f4",
- "name": "Google Firestore",
- "dockerRepository": "airbyte/destination-firestore",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/firestore",
- "icon": "firestore.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/firestore",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Google Firestore",
- "type": "object",
- "required": [ "project_id" ],
- "additionalProperties": false,
- "properties": {
- "project_id": {
- "type": "string",
- "description": "The GCP project ID for the project containing the target BigQuery dataset.",
- "title": "Project ID"
- },
- "credentials_json": {
- "type": "string",
- "description": "The contents of the JSON service account key. Check out the docs if you need help generating this key. Default credentials will be used if this field is left empty.",
- "title": "Credentials JSON",
- "airbyte_secret": true
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append", "overwrite" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "356668e2-7e34-47f3-a3b0-67a8a481b692",
- "name": "Google PubSub",
- "dockerRepository": "airbyte/destination-pubsub",
- "dockerImageTag": "0.2.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/pubsub",
- "icon": "googlepubsub.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/pubsub",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Google PubSub Destination Spec",
- "type": "object",
- "required": [ "project_id", "topic_id", "credentials_json", "ordering_enabled", "batching_enabled" ],
- "additionalProperties": true,
- "properties": {
- "project_id": {
- "type": "string",
- "description": "The GCP project ID for the project containing the target PubSub.",
- "title": "Project ID"
- },
- "topic_id": {
- "type": "string",
- "description": "The PubSub topic ID in the given GCP project ID.",
- "title": "PubSub Topic ID"
- },
- "credentials_json": {
- "type": "string",
- "description": "The contents of the JSON service account key. Check out the docs if you need help generating this key.",
- "title": "Credentials JSON",
- "airbyte_secret": true
- },
- "ordering_enabled": {
- "title": "Message Ordering Enabled",
- "description": "If TRUE PubSub publisher will have message ordering enabled. Every message will have an ordering key of stream",
- "type": "boolean",
- "default": false
- },
- "batching_enabled": {
- "type": "boolean",
- "title": "Message Batching Enabled",
- "description": "If TRUE messages will be buffered instead of sending them one by one",
- "default": false
- },
- "batching_delay_threshold": {
- "type": "integer",
- "title": "Message Batching: Delay Threshold",
- "description": "Number of ms before the buffer is flushed",
- "default": 1,
- "minimum": 1
- },
- "batching_element_count_threshold": {
- "type": "integer",
- "title": "Message Batching: Element Count Threshold",
- "description": "Number of messages before the buffer is flushed",
- "default": 1,
- "minimum": 1
- },
- "batching_request_bytes_threshold": {
- "type": "integer",
- "title": "Message Batching: Request Bytes Threshold",
- "description": "Number of bytes before the buffer is flushed",
- "default": 1,
- "minimum": 1
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "9f760101-60ae-462f-9ee6-b7a9dafd454d",
- "name": "Kafka",
- "dockerRepository": "airbyte/destination-kafka",
- "dockerImageTag": "0.1.10",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/kafka",
- "icon": "kafka.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/kafka",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Kafka Destination Spec",
- "type": "object",
- "required": [ "bootstrap_servers", "topic_pattern", "protocol", "acks", "enable_idempotence", "compression_type", "batch_size", "linger_ms", "max_in_flight_requests_per_connection", "client_dns_lookup", "buffer_memory", "max_request_size", "retries", "socket_connection_setup_timeout_ms", "socket_connection_setup_timeout_max_ms", "max_block_ms", "request_timeout_ms", "delivery_timeout_ms", "send_buffer_bytes", "receive_buffer_bytes" ],
- "additionalProperties": true,
- "properties": {
- "bootstrap_servers": {
- "title": "Bootstrap Servers",
- "description": "A list of host/port pairs to use for establishing the initial connection to the Kafka cluster. The client will make use of all servers irrespective of which servers are specified here for bootstrapping—this list only impacts the initial hosts used to discover the full set of servers. This list should be in the form host1:port1,host2:port2,...
. Since these servers are just used for the initial connection to discover the full cluster membership (which may change dynamically), this list need not contain the full set of servers (you may want more than one, though, in case a server is down).",
- "type": "string",
- "examples": [ "kafka-broker1:9092,kafka-broker2:9092" ]
- },
- "topic_pattern": {
- "title": "Topic Pattern",
- "description": "Topic pattern in which the records will be sent. You can use patterns like '{namespace}' and/or '{stream}' to send the message to a specific topic based on these values. Notice that the topic name will be transformed to a standard naming convention.",
- "type": "string",
- "examples": [ "sample.topic", "{namespace}.{stream}.sample" ]
- },
- "test_topic": {
- "title": "Test Topic",
- "description": "Topic to test if Airbyte can produce messages.",
- "type": "string",
- "examples": [ "test.topic" ]
- },
- "sync_producer": {
- "title": "Sync Producer",
- "description": "Wait synchronously until the record has been sent to Kafka.",
- "type": "boolean",
- "default": false
- },
- "protocol": {
- "title": "Protocol",
- "type": "object",
- "description": "Protocol used to communicate with brokers.",
- "oneOf": [ {
- "title": "PLAINTEXT",
- "required": [ "security_protocol" ],
- "properties": {
- "security_protocol": {
- "type": "string",
- "enum": [ "PLAINTEXT" ],
- "default": "PLAINTEXT"
- }
- }
- }, {
- "title": "SASL PLAINTEXT",
- "required": [ "security_protocol", "sasl_mechanism", "sasl_jaas_config" ],
- "properties": {
- "security_protocol": {
- "type": "string",
- "enum": [ "SASL_PLAINTEXT" ],
- "default": "SASL_PLAINTEXT"
- },
- "sasl_mechanism": {
- "title": "SASL Mechanism",
- "description": "SASL mechanism used for client connections. This may be any mechanism for which a security provider is available.",
- "type": "string",
- "default": "PLAIN",
- "enum": [ "PLAIN" ]
- },
- "sasl_jaas_config": {
- "title": "SASL JAAS Config",
- "description": "JAAS login context parameters for SASL connections in the format used by JAAS configuration files.",
- "type": "string",
- "default": "",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "SASL SSL",
- "required": [ "security_protocol", "sasl_mechanism", "sasl_jaas_config" ],
- "properties": {
- "security_protocol": {
- "type": "string",
- "enum": [ "SASL_SSL" ],
- "default": "SASL_SSL"
- },
- "sasl_mechanism": {
- "title": "SASL Mechanism",
- "description": "SASL mechanism used for client connections. This may be any mechanism for which a security provider is available.",
- "type": "string",
- "default": "GSSAPI",
- "enum": [ "GSSAPI", "OAUTHBEARER", "SCRAM-SHA-256", "SCRAM-SHA-512", "PLAIN" ]
- },
- "sasl_jaas_config": {
- "title": "SASL JAAS Config",
- "description": "JAAS login context parameters for SASL connections in the format used by JAAS configuration files.",
- "type": "string",
- "default": "",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "client_id": {
- "title": "Client ID",
- "description": "An ID string to pass to the server when making requests. The purpose of this is to be able to track the source of requests beyond just ip/port by allowing a logical application name to be included in server-side request logging.",
- "type": "string",
- "examples": [ "airbyte-producer" ]
- },
- "acks": {
- "title": "ACKs",
- "description": "The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent.",
- "type": "string",
- "default": "1",
- "enum": [ "0", "1", "all" ]
- },
- "enable_idempotence": {
- "title": "Enable Idempotence",
- "description": "When set to 'true', the producer will ensure that exactly one copy of each message is written in the stream. If 'false', producer retries due to broker failures, etc., may write duplicates of the retried message in the stream.",
- "type": "boolean",
- "default": false
- },
- "compression_type": {
- "title": "Compression Type",
- "description": "The compression type for all data generated by the producer.",
- "type": "string",
- "default": "none",
- "enum": [ "none", "gzip", "snappy", "lz4", "zstd" ]
- },
- "batch_size": {
- "title": "Batch Size",
- "description": "The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition.",
- "type": "integer",
- "examples": [ 16384 ]
- },
- "linger_ms": {
- "title": "Linger ms",
- "description": "The producer groups together any records that arrive in between request transmissions into a single batched request.",
- "type": "string",
- "examples": [ 0 ]
- },
- "max_in_flight_requests_per_connection": {
- "title": "Max in Flight Requests per Connection",
- "description": "The maximum number of unacknowledged requests the client will send on a single connection before blocking. Can be greater than 1, and the maximum value supported with idempotency is 5.",
- "type": "integer",
- "examples": [ 5 ]
- },
- "client_dns_lookup": {
- "title": "Client DNS Lookup",
- "description": "Controls how the client uses DNS lookups. If set to use_all_dns_ips, connect to each returned IP address in sequence until a successful connection is established. After a disconnection, the next IP is used. Once all IPs have been used once, the client resolves the IP(s) from the hostname again. If set to resolve_canonical_bootstrap_servers_only, resolve each bootstrap address into a list of canonical names. After the bootstrap phase, this behaves the same as use_all_dns_ips. If set to default (deprecated), attempt to connect to the first IP address returned by the lookup, even if the lookup returns multiple IP addresses.",
- "type": "string",
- "default": "use_all_dns_ips",
- "enum": [ "default", "use_all_dns_ips", "resolve_canonical_bootstrap_servers_only", "use_all_dns_ips" ]
- },
- "buffer_memory": {
- "title": "Buffer Memory",
- "description": "The total bytes of memory the producer can use to buffer records waiting to be sent to the server.",
- "type": "string",
- "examples": 33554432
- },
- "max_request_size": {
- "title": "Max Request Size",
- "description": "The maximum size of a request in bytes.",
- "type": "integer",
- "examples": [ 1048576 ]
- },
- "retries": {
- "title": "Retries",
- "description": "Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error.",
- "type": "integer",
- "examples": [ 2147483647 ]
- },
- "socket_connection_setup_timeout_ms": {
- "title": "Socket Connection Setup Timeout",
- "description": "The amount of time the client will wait for the socket connection to be established.",
- "type": "string",
- "examples": [ 10000 ]
- },
- "socket_connection_setup_timeout_max_ms": {
- "title": "Socket Connection Setup Max Timeout",
- "description": "The maximum amount of time the client will wait for the socket connection to be established. The connection setup timeout will increase exponentially for each consecutive connection failure up to this maximum.",
- "type": "string",
- "examples": [ 30000 ]
- },
- "max_block_ms": {
- "title": "Max Block ms",
- "description": "The configuration controls how long the KafkaProducer's send(), partitionsFor(), initTransactions(), sendOffsetsToTransaction(), commitTransaction() and abortTransaction() methods will block.",
- "type": "string",
- "examples": [ 60000 ]
- },
- "request_timeout_ms": {
- "title": "Request Timeout",
- "description": "The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted.",
- "type": "integer",
- "examples": [ 30000 ]
- },
- "delivery_timeout_ms": {
- "title": "Delivery Timeout",
- "description": "An upper bound on the time to report success or failure after a call to 'send()' returns.",
- "type": "integer",
- "examples": [ 120000 ]
- },
- "send_buffer_bytes": {
- "title": "Send Buffer bytes",
- "description": "The size of the TCP send buffer (SO_SNDBUF) to use when sending data. If the value is -1, the OS default will be used.",
- "type": "integer",
- "examples": [ 131072 ]
- },
- "receive_buffer_bytes": {
- "title": "Receive Buffer bytes",
- "description": "The size of the TCP receive buffer (SO_RCVBUF) to use when reading data. If the value is -1, the OS default will be used.",
- "type": "integer",
- "examples": [ 32768 ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "6d1d66d4-26ab-4602-8d32-f85894b04955",
- "name": "Kinesis",
- "dockerRepository": "airbyte/destination-kinesis",
- "dockerImageTag": "0.1.5",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/kinesis",
- "icon": "kinesis.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/kinesis",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Kinesis Destination Spec",
- "type": "object",
- "required": [ "endpoint", "region", "shardCount", "accessKey", "privateKey", "bufferSize" ],
- "additionalProperties": true,
- "properties": {
- "endpoint": {
- "title": "Endpoint",
- "description": "AWS Kinesis endpoint.",
- "type": "string",
- "examples": [ "kinesis.us‑west‑1.amazonaws.com" ],
- "order": 0
- },
- "region": {
- "title": "Region",
- "description": "AWS region. Your account determines the Regions that are available to you.",
- "type": "string",
- "examples": [ "us‑west‑1" ],
- "order": 1
- },
- "shardCount": {
- "title": "Shard Count",
- "description": "Number of shards to which the data should be streamed.",
- "type": "integer",
- "default": 5,
- "order": 2
- },
- "accessKey": {
- "title": "Access Key",
- "description": "Generate the AWS Access Key for current user.",
- "airbyte_secret": true,
- "type": "string",
- "order": 3
- },
- "privateKey": {
- "title": "Private Key",
- "description": "The AWS Private Key - a string of numbers and letters that are unique for each account, also known as a \"recovery phrase\".",
- "airbyte_secret": true,
- "type": "string",
- "order": 4
- },
- "bufferSize": {
- "title": "Buffer Size",
- "description": "Buffer size for storing kinesis records before being batch streamed.",
- "type": "integer",
- "minimum": 1,
- "maximum": 500,
- "default": 100,
- "order": 5
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "8be1cf83-fde1-477f-a4ad-318d23c9f3c6",
- "name": "Local CSV",
- "dockerRepository": "airbyte/destination-csv",
- "dockerImageTag": "1.0.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-csv",
- "icon": "file-csv.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-csv",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "CSV Destination Spec",
- "type": "object",
- "required": [ "destination_path" ],
- "additionalProperties": true,
- "properties": {
- "destination_path": {
- "description": "Path to the directory where csv files will be written. The destination uses the local mount \"/local\" and any data files will be placed inside that local mount. For more information check out our docs",
- "type": "string",
- "examples": [ "/local" ]
- },
- "delimiter_type": {
- "type": "object",
- "title": "Delimiter",
- "description": "The character delimiting individual cells in the CSV data.",
- "oneOf": [ {
- "title": "Comma",
- "required": [ "delimiter" ],
- "properties": {
- "delimiter": {
- "type": "string",
- "const": "\\u002c"
- }
- }
- }, {
- "title": "Semicolon",
- "required": [ "delimiter" ],
- "properties": {
- "delimiter": {
- "type": "string",
- "const": "\\u003b"
- }
- }
- }, {
- "title": "Pipe",
- "required": [ "delimiter" ],
- "properties": {
- "delimiter": {
- "type": "string",
- "const": "\\u007c"
- }
- }
- }, {
- "title": "Tab",
- "required": [ "delimiter" ],
- "properties": {
- "delimiter": {
- "type": "string",
- "const": "\\u0009"
- }
- }
- }, {
- "title": "Space",
- "required": [ "delimiter" ],
- "properties": {
- "delimiter": {
- "type": "string",
- "const": "\\u0020"
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "a625d593-bba5-4a1c-a53d-2d246268a816",
- "name": "Local JSON",
- "dockerRepository": "airbyte/destination-local-json",
- "dockerImageTag": "0.2.11",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-json",
- "icon": "file-json.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-json",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Local Json Destination Spec",
- "type": "object",
- "required": [ "destination_path" ],
- "additionalProperties": false,
- "properties": {
- "destination_path": {
- "description": "Path to the directory where json files will be written. The files will be placed inside that local mount. For more information check out our docs",
- "title": "Destination Path",
- "type": "string",
- "examples": [ "/json_data" ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "f3802bc4-5406-4752-9e8d-01e504ca8194",
- "name": "MQTT",
- "dockerRepository": "airbyte/destination-mqtt",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mqtt",
- "icon": "mqtt.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mqtt",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "MQTT Destination Spec",
- "type": "object",
- "required": [ "broker_host", "broker_port", "use_tls", "topic_pattern", "publisher_sync", "connect_timeout", "automatic_reconnect", "clean_session", "message_retained", "message_qos" ],
- "additionalProperties": true,
- "properties": {
- "broker_host": {
- "title": "MQTT broker host",
- "description": "Host of the broker to connect to.",
- "type": "string"
- },
- "broker_port": {
- "title": "MQTT broker port",
- "description": "Port of the broker.",
- "type": "integer"
- },
- "use_tls": {
- "title": "Use TLS",
- "description": "Whether to use TLS encryption on the connection.",
- "type": "boolean",
- "default": false
- },
- "username": {
- "title": "Username",
- "description": "User name to use for the connection.",
- "type": "string"
- },
- "password": {
- "title": "Password",
- "description": "Password to use for the connection.",
- "type": "string",
- "airbyte_secret": true
- },
- "topic_pattern": {
- "title": "Topic pattern",
- "description": "Topic pattern in which the records will be sent. You can use patterns like '{namespace}' and/or '{stream}' to send the message to a specific topic based on these values. Notice that the topic name will be transformed to a standard naming convention.",
- "type": "string",
- "examples": [ "sample.topic", "{namespace}/{stream}/sample" ]
- },
- "topic_test": {
- "title": "Test topic",
- "description": "Topic to test if Airbyte can produce messages.",
- "type": "string",
- "examples": [ "test/topic" ]
- },
- "client": {
- "title": "Client ID",
- "description": "A client identifier that is unique on the server being connected to.",
- "type": "string",
- "examples": [ "airbyte-client1" ]
- },
- "publisher_sync": {
- "title": "Sync publisher",
- "description": "Wait synchronously until the record has been sent to the broker.",
- "type": "boolean",
- "default": false
- },
- "connect_timeout": {
- "title": "Connect timeout",
- "description": " Maximum time interval (in seconds) the client will wait for the network connection to the MQTT server to be established.",
- "type": "integer",
- "default": 30
- },
- "automatic_reconnect": {
- "title": "Automatic reconnect",
- "description": "Whether the client will automatically attempt to reconnect to the server if the connection is lost.",
- "type": "boolean",
- "default": true
- },
- "clean_session": {
- "title": "Clean session",
- "description": "Whether the client and server should remember state across restarts and reconnects.",
- "type": "boolean",
- "default": true
- },
- "message_retained": {
- "title": "Message retained",
- "description": "Whether or not the publish message should be retained by the messaging engine.",
- "type": "boolean",
- "default": false
- },
- "message_qos": {
- "title": "Message QoS",
- "description": "Quality of service used for each message to be delivered.",
- "default": "AT_LEAST_ONCE",
- "enum": [ "AT_MOST_ONCE", "AT_LEAST_ONCE", "EXACTLY_ONCE" ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "d4353156-9217-4cad-8dd7-c108fd4f74cf",
- "name": "MS SQL Server",
- "dockerRepository": "airbyte/destination-mssql",
- "dockerImageTag": "0.1.23",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mssql",
- "icon": "mssql.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mssql",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "MS SQL Server Destination Spec",
- "type": "object",
- "required": [ "host", "port", "username", "database", "schema" ],
- "properties": {
- "host": {
- "title": "Host",
- "description": "The host name of the MSSQL database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "The port of the MSSQL database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 1433,
- "examples": [ "1433" ],
- "order": 1
- },
- "database": {
- "title": "DB Name",
- "description": "The name of the MSSQL database.",
- "type": "string",
- "order": 2
- },
- "schema": {
- "title": "Default Schema",
- "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
- "type": "string",
- "examples": [ "public" ],
- "default": "public",
- "order": 3
- },
- "username": {
- "title": "User",
- "description": "The username which is used to access the database.",
- "type": "string",
- "order": 4
- },
- "password": {
- "title": "Password",
- "description": "The password associated with this username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 5
- },
- "jdbc_url_params": {
- "title": "JDBC URL Params",
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "type": "string",
- "order": 6
- },
- "ssl_method": {
- "title": "SSL Method",
- "type": "object",
- "description": "The encryption method which is used to communicate with the database.",
- "order": 7,
- "oneOf": [ {
- "title": "Unencrypted",
- "description": "The data transfer will not be encrypted.",
- "required": [ "ssl_method" ],
- "type": "object",
- "properties": {
- "ssl_method": {
- "type": "string",
- "const": "unencrypted",
- "enum": [ "unencrypted" ],
- "default": "unencrypted"
- }
- }
- }, {
- "title": "Encrypted (trust server certificate)",
- "description": "Use the certificate provided by the server without verification. (For testing purposes only!)",
- "required": [ "ssl_method" ],
- "type": "object",
- "properties": {
- "ssl_method": {
- "type": "string",
- "const": "encrypted_trust_server_certificate",
- "enum": [ "encrypted_trust_server_certificate" ],
- "default": "encrypted_trust_server_certificate"
- }
- }
- }, {
- "title": "Encrypted (verify certificate)",
- "description": "Verify and use the certificate provided by the server.",
- "required": [ "ssl_method", "trustStoreName", "trustStorePassword" ],
- "type": "object",
- "properties": {
- "ssl_method": {
- "type": "string",
- "const": "encrypted_verify_certificate",
- "enum": [ "encrypted_verify_certificate" ],
- "default": "encrypted_verify_certificate"
- },
- "hostNameInCertificate": {
- "title": "Host Name In Certificate",
- "type": "string",
- "description": "Specifies the host name of the server. The value of this property must match the subject property of the certificate.",
- "order": 8
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "normalizationConfig": {
- "normalizationRepository": "airbyte/normalization-mssql",
- "normalizationTag": "0.4.0",
- "normalizationIntegrationType": "mssql"
- },
- "supportsDbt": true
- }, {
- "destinationDefinitionId": "af7c921e-5892-4ff2-b6c1-4a5ab258fb7e",
- "name": "MeiliSearch",
- "dockerRepository": "airbyte/destination-meilisearch",
- "dockerImageTag": "1.0.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/meilisearch",
- "icon": "meilisearch.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/meilisearch",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Meilisearch",
- "type": "object",
- "required": [ "host" ],
- "additionalProperties": false,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the MeiliSearch instance.",
- "type": "string",
- "order": 0
- },
- "api_key": {
- "title": "API Key",
- "airbyte_secret": true,
- "description": "MeiliSearch API Key. See the docs for more information on how to obtain this key.",
- "type": "string",
- "order": 1
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "8b746512-8c2e-6ac1-4adc-b59faafd473c",
- "name": "MongoDB",
- "dockerRepository": "airbyte/destination-mongodb",
- "dockerImageTag": "0.1.9",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mongodb",
- "icon": "mongodb.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mongodb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "MongoDB Destination Spec",
- "type": "object",
- "required": [ "database", "auth_type" ],
- "properties": {
- "instance_type": {
- "description": "MongoDb instance to connect to. For MongoDB Atlas and Replica Set TLS connection is used by default.",
- "title": "MongoDb Instance Type",
- "type": "object",
- "order": 0,
- "oneOf": [ {
- "title": "Standalone MongoDb Instance",
- "required": [ "instance", "host", "port" ],
- "properties": {
- "instance": {
- "type": "string",
- "enum": [ "standalone" ],
- "default": "standalone"
- },
- "host": {
- "title": "Host",
- "type": "string",
- "description": "The Host of a Mongo database to be replicated.",
- "order": 0
- },
- "port": {
- "title": "Port",
- "type": "integer",
- "description": "The Port of a Mongo database to be replicated.",
- "minimum": 0,
- "maximum": 65536,
- "default": 27017,
- "examples": [ "27017" ],
- "order": 1
- },
- "tls": {
- "title": "TLS Connection",
- "type": "boolean",
- "description": "Indicates whether TLS encryption protocol will be used to connect to MongoDB. It is recommended to use TLS connection if possible. For more information see documentation.",
- "default": false,
- "order": 2
- }
- }
- }, {
- "title": "Replica Set",
- "required": [ "instance", "server_addresses" ],
- "properties": {
- "instance": {
- "type": "string",
- "enum": [ "replica" ],
- "default": "replica"
- },
- "server_addresses": {
- "title": "Server addresses",
- "type": "string",
- "description": "The members of a replica set. Please specify `host`:`port` of each member seperated by comma.",
- "examples": [ "host1:27017,host2:27017,host3:27017" ],
- "order": 0
- },
- "replica_set": {
- "title": "Replica Set",
- "type": "string",
- "description": "A replica set name.",
- "order": 1
- }
- }
- }, {
- "title": "MongoDB Atlas",
- "required": [ "instance", "cluster_url" ],
- "properties": {
- "instance": {
- "type": "string",
- "enum": [ "atlas" ],
- "default": "atlas"
- },
- "cluster_url": {
- "title": "Cluster URL",
- "type": "string",
- "description": "URL of a cluster to connect to.",
- "order": 0
- }
- }
- } ]
- },
- "database": {
- "title": "DB Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 2
- },
- "auth_type": {
- "title": "Authorization type",
- "type": "object",
- "description": "Authorization type.",
- "oneOf": [ {
- "title": "None",
- "description": "None.",
- "required": [ "authorization" ],
- "type": "object",
- "properties": {
- "authorization": {
- "type": "string",
- "const": "none"
- }
- }
- }, {
- "title": "Login/Password",
- "description": "Login/Password.",
- "required": [ "authorization", "username", "password" ],
- "type": "object",
- "properties": {
- "authorization": {
- "type": "string",
- "const": "login/password"
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 1
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 2
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "ca81ee7c-3163-4246-af40-094cc31e5e42",
- "name": "MySQL",
- "dockerRepository": "airbyte/destination-mysql",
- "dockerImageTag": "0.1.20",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mysql",
- "icon": "mysql.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mysql",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "MySQL Destination Spec",
- "type": "object",
- "required": [ "host", "port", "username", "database" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 3306,
- "examples": [ "3306" ],
- "order": 1
- },
- "database": {
- "title": "DB Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 2
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL.",
- "type": "boolean",
- "default": true,
- "order": 5
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 6
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "normalizationConfig": {
- "normalizationRepository": "airbyte/normalization-mysql",
- "normalizationTag": "0.4.0",
- "normalizationIntegrationType": "mysql"
- },
- "supportsDbt": true
- }, {
- "destinationDefinitionId": "3986776d-2319-4de9-8af8-db14c0996e72",
- "name": "Oracle",
- "dockerRepository": "airbyte/destination-oracle",
- "dockerImageTag": "0.1.19",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/oracle",
- "icon": "oracle.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/oracle",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Oracle Destination Spec",
- "type": "object",
- "required": [ "host", "port", "username", "sid" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "The hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "The port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 1521,
- "examples": [ "1521" ],
- "order": 1
- },
- "sid": {
- "title": "SID",
- "description": "The System Identifier uniquely distinguishes the instance from any other instance on the same computer.",
- "type": "string",
- "order": 2
- },
- "username": {
- "title": "User",
- "description": "The username to access the database. This user must have CREATE USER privileges in the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "The password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 5
- },
- "schema": {
- "title": "Default Schema",
- "description": "The default schema is used as the target schema for all statements issued from the connection that do not explicitly specify a schema name. The usual value for this field is \"airbyte\". In Oracle, schemas and users are the same thing, so the \"user\" parameter is used as the login credentials and this is used for the default Airbyte message schema.",
- "type": "string",
- "examples": [ "airbyte" ],
- "default": "airbyte",
- "order": 6
- },
- "encryption": {
- "title": "Encryption",
- "type": "object",
- "description": "The encryption method which is used when communicating with the database.",
- "order": 7,
- "oneOf": [ {
- "title": "Unencrypted",
- "description": "Data transfer will not be encrypted.",
- "required": [ "encryption_method" ],
- "properties": {
- "encryption_method": {
- "type": "string",
- "const": "unencrypted",
- "enum": [ "unencrypted" ],
- "default": "unencrypted"
- }
- }
- }, {
- "title": "Native Network Encryption (NNE)",
- "description": "The native network encryption gives you the ability to encrypt database connections, without the configuration overhead of TCP/IP and SSL/TLS and without the need to open and listen on different ports.",
- "required": [ "encryption_method" ],
- "properties": {
- "encryption_method": {
- "type": "string",
- "const": "client_nne",
- "enum": [ "client_nne" ],
- "default": "client_nne"
- },
- "encryption_algorithm": {
- "type": "string",
- "description": "This parameter defines the database encryption algorithm.",
- "title": "Encryption Algorithm",
- "default": "AES256",
- "enum": [ "AES256", "RC4_56", "3DES168" ]
- }
- }
- }, {
- "title": "TLS Encrypted (verify certificate)",
- "description": "Verify and use the certificate provided by the server.",
- "required": [ "encryption_method", "ssl_certificate" ],
- "properties": {
- "encryption_method": {
- "type": "string",
- "const": "encrypted_verify_certificate",
- "enum": [ "encrypted_verify_certificate" ],
- "default": "encrypted_verify_certificate"
- },
- "ssl_certificate": {
- "title": "SSL PEM file",
- "description": "Privacy Enhanced Mail (PEM) files are concatenated certificate containers frequently used in certificate installations.",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "normalizationConfig": {
- "normalizationRepository": "airbyte/normalization-oracle",
- "normalizationTag": "0.4.0",
- "normalizationIntegrationType": "oracle"
- },
- "supportsDbt": true
- }, {
- "destinationDefinitionId": "25c5221d-dce2-4163-ade9-739ef790f503",
- "name": "Postgres",
- "dockerRepository": "airbyte/destination-postgres",
- "dockerImageTag": "0.3.27",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/postgres",
- "icon": "postgresql.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/postgres",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Postgres Destination Spec",
- "type": "object",
- "required": [ "host", "port", "username", "database", "schema" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 5432,
- "examples": [ "5432" ],
- "order": 1
- },
- "database": {
- "title": "DB Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 2
- },
- "schema": {
- "title": "Default Schema",
- "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
- "type": "string",
- "examples": [ "public" ],
- "default": "public",
- "order": 3
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 4
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 5
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL. When activating SSL, please select one of the connection modes.",
- "type": "boolean",
- "default": false,
- "order": 6
- },
- "ssl_mode": {
- "title": "SSL modes",
- "description": "SSL connection modes. \n disable - Chose this mode to disable encryption of communication between Airbyte and destination database\n allow - Chose this mode to enable encryption only when required by the source database\n prefer - Chose this mode to allow unencrypted connection only if the source database does not support encryption\n require - Chose this mode to always require encryption. If the source database server does not support encryption, connection will fail\n verify-ca - Chose this mode to always require encryption and to verify that the source database server has a valid SSL certificate\n verify-full - This is the most secure mode. Chose this mode to always require encryption and to verify the identity of the source database server\n See more information - in the docs.",
- "type": "object",
- "order": 7,
- "oneOf": [ {
- "title": "disable",
- "additionalProperties": false,
- "description": "Disable SSL.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "disable",
- "enum": [ "disable" ],
- "default": "disable",
- "order": 0
- }
- }
- }, {
- "title": "allow",
- "additionalProperties": false,
- "description": "Allow SSL mode.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "allow",
- "enum": [ "allow" ],
- "default": "allow",
- "order": 0
- }
- }
- }, {
- "title": "prefer",
- "additionalProperties": false,
- "description": "Prefer SSL mode.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "prefer",
- "enum": [ "prefer" ],
- "default": "prefer",
- "order": 0
- }
- }
- }, {
- "title": "require",
- "additionalProperties": false,
- "description": "Require SSL mode.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "require",
- "enum": [ "require" ],
- "default": "require",
- "order": 0
- }
- }
- }, {
- "title": "verify-ca",
- "additionalProperties": false,
- "description": "Verify-ca SSL mode.",
- "required": [ "mode", "ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-ca",
- "enum": [ "verify-ca" ],
- "default": "verify-ca",
- "order": 0
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- },
- "client_key_password": {
- "type": "string",
- "title": "Client key password",
- "description": "Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- }, {
- "title": "verify-full",
- "additionalProperties": false,
- "description": "Verify-full SSL mode.",
- "required": [ "mode", "ca_certificate", "client_certificate", "client_key" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-full",
- "enum": [ "verify-full" ],
- "default": "verify-full",
- "order": 0
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- },
- "client_certificate": {
- "type": "string",
- "title": "Client certificate",
- "description": "Client certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 2
- },
- "client_key": {
- "type": "string",
- "title": "Client key",
- "description": "Client key",
- "airbyte_secret": true,
- "multiline": true,
- "order": 3
- },
- "client_key_password": {
- "type": "string",
- "title": "Client key password",
- "description": "Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 8
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "normalizationConfig": {
- "normalizationRepository": "airbyte/normalization",
- "normalizationTag": "0.4.0",
- "normalizationIntegrationType": "postgres"
- },
- "supportsDbt": true
- }, {
- "destinationDefinitionId": "2340cbba-358e-11ec-8d3d-0242ac130203",
- "name": "Pulsar",
- "dockerRepository": "airbyte/destination-pulsar",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/pulsar",
- "icon": "pulsar.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/pulsar",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Pulsar Destination Spec",
- "type": "object",
- "required": [ "brokers", "use_tls", "topic_type", "topic_tenant", "topic_namespace", "topic_pattern", "compression_type", "send_timeout_ms", "max_pending_messages", "max_pending_messages_across_partitions", "batching_enabled", "batching_max_messages", "batching_max_publish_delay", "block_if_queue_full" ],
- "additionalProperties": true,
- "properties": {
- "brokers": {
- "title": "Pulsar brokers",
- "description": "A list of host/port pairs to use for establishing the initial connection to the Pulsar cluster.",
- "type": "string",
- "examples": [ "broker1:6650,broker2:6650" ]
- },
- "use_tls": {
- "title": "Use TLS",
- "description": "Whether to use TLS encryption on the connection.",
- "type": "boolean",
- "default": false
- },
- "topic_type": {
- "title": "Topic type",
- "description": "It identifies type of topic. Pulsar supports two kind of topics: persistent and non-persistent. In persistent topic, all messages are durably persisted on disk (that means on multiple disks unless the broker is standalone), whereas non-persistent topic does not persist message into storage disk.",
- "type": "string",
- "default": "persistent",
- "enum": [ "persistent", "non-persistent" ]
- },
- "topic_tenant": {
- "title": "Topic tenant",
- "description": "The topic tenant within the instance. Tenants are essential to multi-tenancy in Pulsar, and spread across clusters.",
- "type": "string",
- "default": "public",
- "examples": [ "public" ]
- },
- "topic_namespace": {
- "title": "Topic namespace",
- "description": "The administrative unit of the topic, which acts as a grouping mechanism for related topics. Most topic configuration is performed at the namespace level. Each tenant has one or multiple namespaces.",
- "type": "string",
- "default": "default",
- "examples": [ "default" ]
- },
- "topic_pattern": {
- "title": "Topic pattern",
- "description": "Topic pattern in which the records will be sent. You can use patterns like '{namespace}' and/or '{stream}' to send the message to a specific topic based on these values. Notice that the topic name will be transformed to a standard naming convention.",
- "type": "string",
- "examples": [ "sample.topic", "{namespace}.{stream}.sample" ]
- },
- "topic_test": {
- "title": "Test topic",
- "description": "Topic to test if Airbyte can produce messages.",
- "type": "string",
- "examples": [ "test.topic" ]
- },
- "producer_name": {
- "title": "Producer name",
- "description": "Name for the producer. If not filled, the system will generate a globally unique name which can be accessed with.",
- "type": "string",
- "examples": [ "airbyte-producer" ]
- },
- "producer_sync": {
- "title": "Sync producer",
- "description": "Wait synchronously until the record has been sent to Pulsar.",
- "type": "boolean",
- "default": false
- },
- "compression_type": {
- "title": "Compression type",
- "description": "Compression type for the producer.",
- "type": "string",
- "default": "NONE",
- "enum": [ "NONE", "LZ4", "ZLIB", "ZSTD", "SNAPPY" ]
- },
- "send_timeout_ms": {
- "title": "Message send timeout",
- "description": "If a message is not acknowledged by a server before the send-timeout expires, an error occurs (in ms).",
- "type": "integer",
- "default": 30000
- },
- "max_pending_messages": {
- "title": "Max pending messages",
- "description": "The maximum size of a queue holding pending messages.",
- "type": "integer",
- "default": 1000
- },
- "max_pending_messages_across_partitions": {
- "title": "Max pending messages across partitions",
- "description": "The maximum number of pending messages across partitions.",
- "type": "integer",
- "default": 50000
- },
- "batching_enabled": {
- "title": "Enable batching",
- "description": "Control whether automatic batching of messages is enabled for the producer.",
- "type": "boolean",
- "default": true
- },
- "batching_max_messages": {
- "title": "Batching max messages",
- "description": "Maximum number of messages permitted in a batch.",
- "type": "integer",
- "default": 1000
- },
- "batching_max_publish_delay": {
- "title": "Batching max publish delay",
- "description": " Time period in milliseconds within which the messages sent will be batched.",
- "type": "integer",
- "default": 1
- },
- "block_if_queue_full": {
- "title": "Block if queue is full",
- "description": "If the send operation should block when the outgoing message queue is full.",
- "type": "boolean",
- "default": false
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "e06ad785-ad6f-4647-b2e8-3027a5c59454",
- "name": "RabbitMQ",
- "dockerRepository": "airbyte/destination-rabbitmq",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/rabbitmq",
- "icon": "pulsar.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/rabbitmq",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Rabbitmq",
- "type": "object",
- "required": [ "host", "routing_key" ],
- "additionalProperties": false,
- "properties": {
- "ssl": {
- "type": "boolean",
- "description": "SSL enabled.",
- "default": true
- },
- "host": {
- "type": "string",
- "description": "The RabbitMQ host name."
- },
- "port": {
- "type": "integer",
- "description": "The RabbitMQ port."
- },
- "virtual_host": {
- "type": "string",
- "description": "The RabbitMQ virtual host name."
- },
- "username": {
- "type": "string",
- "description": "The username to connect."
- },
- "password": {
- "type": "string",
- "title": "Password",
- "description": "The password to connect.",
- "airbyte_secret": true
- },
- "exchange": {
- "type": "string",
- "description": "The exchange name."
- },
- "routing_key": {
- "type": "string",
- "description": "The routing key."
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "d4d3fef9-e319-45c2-881a-bd02ce44cc9f",
- "name": "Redis",
- "dockerRepository": "airbyte/destination-redis",
- "dockerImageTag": "0.1.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redis",
- "icon": "redis.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redis",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Redis Destination Spec",
- "type": "object",
- "required": [ "host", "username", "port", "cache_type" ],
- "additionalProperties": false,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Redis host to connect to.",
- "type": "string",
- "examples": [ "localhost,127.0.0.1" ],
- "order": 1
- },
- "port": {
- "title": "Port",
- "description": "Port of Redis.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 6379,
- "order": 2
- },
- "username": {
- "title": "Username",
- "description": "Username associated with Redis.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "Password associated with Redis.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "ssl": {
- "title": "SSL Connection",
- "type": "boolean",
- "description": "Indicates whether SSL encryption protocol will be used to connect to Redis. It is recommended to use SSL connection if possible.",
- "default": false,
- "order": 5
- },
- "ssl_mode": {
- "title": "SSL Modes",
- "description": "SSL connection modes. \n verify-full - This is the most secure mode. Always require encryption and verifies the identity of the source database server",
- "type": "object",
- "order": 6,
- "oneOf": [ {
- "title": "disable",
- "additionalProperties": false,
- "description": "Disable SSL.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "disable",
- "enum": [ "disable" ],
- "default": "disable",
- "order": 0
- }
- }
- }, {
- "title": "verify-full",
- "additionalProperties": false,
- "description": "Verify-full SSL mode.",
- "required": [ "mode", "ca_certificate", "client_certificate", "client_key" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-full",
- "enum": [ "verify-full" ],
- "default": "verify-full",
- "order": 0
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA Certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- },
- "client_certificate": {
- "type": "string",
- "title": "Client Certificate",
- "description": "Client certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 2
- },
- "client_key": {
- "type": "string",
- "title": "Client Key",
- "description": "Client key",
- "airbyte_secret": true,
- "multiline": true,
- "order": 3
- },
- "client_key_password": {
- "type": "string",
- "title": "Client key password",
- "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- },
- "cache_type": {
- "title": "Cache type",
- "type": "string",
- "default": "hash",
- "description": "Redis cache type to store data in.",
- "enum": [ "hash" ],
- "order": 7
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "f7a7d195-377f-cf5b-70a5-be6b819019dc",
- "name": "Redshift",
- "dockerRepository": "airbyte/destination-redshift",
- "dockerImageTag": "0.4.5",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redshift",
- "icon": "redshift.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redshift",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Redshift Destination Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username", "password", "schema" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "description": "Host Endpoint of the Redshift Cluster (must include the cluster-id, region and end with .redshift.amazonaws.com)",
- "type": "string",
- "title": "Host",
- "order": 1
- },
- "port": {
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 5439,
- "examples": [ "5439" ],
- "title": "Port",
- "order": 2
- },
- "username": {
- "description": "Username to use to access the database.",
- "type": "string",
- "title": "Username",
- "order": 3
- },
- "password": {
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "title": "Password",
- "order": 4
- },
- "database": {
- "description": "Name of the database.",
- "type": "string",
- "title": "Database",
- "order": 5
- },
- "schema": {
- "description": "The default schema tables are written to if the source does not specify a namespace. Unless specifically configured, the usual value for this field is \"public\".",
- "type": "string",
- "examples": [ "public" ],
- "default": "public",
- "title": "Default Schema",
- "order": 6
- },
- "jdbc_url_params": {
- "title": "JDBC URL Params",
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "type": "string",
- "order": 7
- },
- "uploading_method": {
- "title": "Uploading Method",
- "type": "object",
- "description": "The method how the data will be uploaded to the database.",
- "order": 8,
- "oneOf": [ {
- "title": "Standard",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "Standard"
- }
- }
- }, {
- "title": "S3 Staging",
- "required": [ "method", "s3_bucket_name", "s3_bucket_region", "access_key_id", "secret_access_key" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "S3 Staging"
- },
- "s3_bucket_name": {
- "title": "S3 Bucket Name",
- "type": "string",
- "description": "The name of the staging S3 bucket to use if utilising a COPY strategy. COPY is recommended for production workloads for better speed and scalability. See AWS docs for more details.",
- "examples": [ "airbyte.staging" ]
- },
- "s3_bucket_path": {
- "title": "S3 Bucket Path",
- "type": "string",
- "description": "The directory under the S3 bucket where data will be written. If not provided, then defaults to the root directory. See path's name recommendations for more details.",
- "examples": [ "data_sync/test" ]
- },
- "s3_bucket_region": {
- "title": "S3 Bucket Region",
- "type": "string",
- "default": "",
- "description": "The region of the S3 staging bucket to use if utilising a COPY strategy. See AWS docs for details.",
- "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1" ]
- },
- "file_name_pattern": {
- "type": "string",
- "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
- "title": "S3 Filename pattern",
- "examples": [ "{date}", "{date:yyyy_MM}", "{timestamp}", "{part_number}", "{sync_id}" ],
- "order": 8
- },
- "access_key_id": {
- "type": "string",
- "description": "This ID grants access to the above S3 staging bucket. Airbyte requires Read and Write permissions to the given bucket. See AWS docs on how to generate an access key ID and secret access key.",
- "title": "S3 Key Id",
- "airbyte_secret": true
- },
- "secret_access_key": {
- "type": "string",
- "description": "The corresponding secret to the above access key id. See AWS docs on how to generate an access key ID and secret access key.",
- "title": "S3 Access Key",
- "airbyte_secret": true
- },
- "purge_staging_data": {
- "title": "Purge Staging Files and Tables",
- "type": "boolean",
- "description": "Whether to delete the staging files from S3 after completing the sync. See docs for details.",
- "default": true
- },
- "encryption": {
- "title": "Encryption",
- "type": "object",
- "description": "How to encrypt the staging data",
- "default": {
- "encryption_type": "none"
- },
- "oneOf": [ {
- "title": "No encryption",
- "description": "Staging data will be stored in plaintext.",
- "type": "object",
- "required": [ "encryption_type" ],
- "properties": {
- "encryption_type": {
- "type": "string",
- "const": "none",
- "enum": [ "none" ],
- "default": "none"
- }
- }
- }, {
- "title": "AES-CBC envelope encryption",
- "description": "Staging data will be encrypted using AES-CBC envelope encryption.",
- "type": "object",
- "required": [ "encryption_type" ],
- "properties": {
- "encryption_type": {
- "type": "string",
- "const": "aes_cbc_envelope",
- "enum": [ "aes_cbc_envelope" ],
- "default": "aes_cbc_envelope"
- },
- "key_encrypting_key": {
- "type": "string",
- "title": "Key",
- "description": "The key, base64-encoded. Must be either 128, 192, or 256 bits. Leave blank to have Airbyte generate an ephemeral key for each sync.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "file_buffer_count": {
- "title": "File Buffer Count",
- "type": "integer",
- "minimum": 10,
- "maximum": 50,
- "default": 10,
- "description": "Number of file buffers allocated for writing data. Increasing this number is beneficial for connections using Change Data Capture (CDC) and up to the number of streams within a connection. Increasing the number of file buffers past the maximum number of streams has deteriorating effects",
- "examples": [ "10" ]
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "resourceRequirements": {
- "jobSpecific": [ {
- "jobType": "sync",
- "resourceRequirements": {
- "memory_request": "1Gi",
- "memory_limit": "1Gi"
- }
- } ]
- },
- "normalizationConfig": {
- "normalizationRepository": "airbyte/normalization-redshift",
- "normalizationTag": "0.4.0",
- "normalizationIntegrationType": "redshift"
- },
- "supportsDbt": true
- }, {
- "destinationDefinitionId": "825c5ee3-ed9a-4dd1-a2b6-79ed722f7b13",
- "name": "Redpanda",
- "dockerRepository": "airbyte/destination-redpanda",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redpanda",
- "icon": "redpanda.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redpanda",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Redpanda destination connector",
- "type": "object",
- "required": [ "bootstrap_servers", "buffer_memory", "compression_type", "retries", "batch_size" ],
- "properties": {
- "bootstrap_servers": {
- "title": "Bootstrap Servers",
- "description": "A list of host/port pairs to use for establishing the initial connection to the Redpanda cluster. The client will make use of all servers irrespective of which servers are specified here for bootstrapping—this list only impacts the initial hosts used to discover the full set of servers. This list should be in the form host1:port1,host2:port2,...
. Since these servers are just used for the initial connection to discover the full cluster membership (which may change dynamically), this list need not contain the full set of servers (you may want more than one, though, in case a server is down).",
- "type": "string",
- "examples": [ "redpanda-broker1:9092,redpanda-broker2:9092" ]
- },
- "buffer_memory": {
- "title": "Buffer Memory",
- "description": "The total bytes of memory the producer can use to buffer records waiting to be sent to the server.",
- "type": "string",
- "examples": 33554432
- },
- "compression_type": {
- "title": "Compression Type",
- "description": "The compression type for all data generated by the producer.",
- "type": "string",
- "default": "none",
- "enum": [ "none", "gzip", "snappy", "lz4", "zstd" ]
- },
- "batch_size": {
- "title": "Batch Size",
- "description": "The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition.",
- "type": "integer",
- "examples": [ 16384 ]
- },
- "retries": {
- "title": "Retries",
- "description": "Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error.",
- "type": "integer",
- "examples": [ 2147483647 ]
- },
- "topic_num_partitions": {
- "title": "Number of topic partitions",
- "description": "The number of topic partitions which will be created on topic creation",
- "type": "integer",
- "examples": [ 10 ]
- },
- "topic_replication_factor": {
- "title": "Topic replication factor",
- "description": "The number of topics to which messages will be replicated",
- "type": "integer",
- "examples": [ 10 ]
- },
- "socket_connection_setup_timeout_ms": {
- "title": "Socket Connection Setup Timeout",
- "description": "The amount of time the client will wait for the socket connection to be established.",
- "type": "integer",
- "examples": [ 10000 ]
- },
- "socket_connection_setup_timeout_max_ms": {
- "title": "Socket Connection Setup Max Timeout",
- "description": "The maximum amount of time the client will wait for the socket connection to be established. The connection setup timeout will increase exponentially for each consecutive connection failure up to this maximum.",
- "type": "integer",
- "examples": [ 30000 ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "2c9d93a7-9a17-4789-9de9-f46f0097eb70",
- "name": "Rockset",
- "dockerRepository": "airbyte/destination-rockset",
- "dockerImageTag": "0.1.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/rockset",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/rockset",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Rockset Destination Spec",
- "type": "object",
- "required": [ "api_key", "workspace" ],
- "additionalProperties": false,
- "properties": {
- "api_key": {
- "title": "Api Key",
- "description": "Rockset api key",
- "type": "string",
- "order": 0,
- "airbyte_secret": true
- },
- "workspace": {
- "title": "Workspace",
- "description": "The Rockset workspace in which collections will be created + written to.",
- "type": "string",
- "examples": [ "commons", "my_workspace" ],
- "default": "commons",
- "airbyte_secret": false,
- "order": 1
- },
- "api_server": {
- "title": "Api Server",
- "description": "Rockset api URL",
- "type": "string",
- "airbyte_secret": false,
- "default": "https://api.rs2.usw2.rockset.com",
- "pattern": "^https:\\/\\/.*.rockset.com$",
- "order": 2
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append", "overwrite" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "4816b78f-1489-44c1-9060-4b19d5fa9362",
- "name": "S3",
- "dockerRepository": "airbyte/destination-s3",
- "dockerImageTag": "0.3.23",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/s3",
- "icon": "s3.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/s3",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "S3 Destination Spec",
- "type": "object",
- "required": [ "s3_bucket_name", "s3_bucket_path", "s3_bucket_region", "format" ],
- "properties": {
- "access_key_id": {
- "type": "string",
- "description": "The access key ID to access the S3 bucket. Airbyte requires Read and Write permissions to the given bucket. Read more here.",
- "title": "S3 Key ID",
- "airbyte_secret": true,
- "examples": [ "A012345678910EXAMPLE" ],
- "order": 0
- },
- "secret_access_key": {
- "type": "string",
- "description": "The corresponding secret to the access key ID. Read more here",
- "title": "S3 Access Key",
- "airbyte_secret": true,
- "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ],
- "order": 1
- },
- "s3_bucket_name": {
- "title": "S3 Bucket Name",
- "type": "string",
- "description": "The name of the S3 bucket. Read more here.",
- "examples": [ "airbyte_sync" ],
- "order": 2
- },
- "s3_bucket_path": {
- "title": "S3 Bucket Path",
- "description": "Directory under the S3 bucket where data will be written. Read more here",
- "type": "string",
- "examples": [ "data_sync/test" ],
- "order": 3
- },
- "s3_bucket_region": {
- "title": "S3 Bucket Region",
- "type": "string",
- "default": "",
- "description": "The region of the S3 bucket. See here for all region codes.",
- "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
- "order": 4
- },
- "format": {
- "title": "Output Format",
- "type": "object",
- "description": "Format of the data output. See here for more details",
- "oneOf": [ {
- "title": "Avro: Apache Avro",
- "required": [ "format_type", "compression_codec" ],
- "properties": {
- "format_type": {
- "title": "Format Type",
- "type": "string",
- "enum": [ "Avro" ],
- "default": "Avro",
- "order": 0
- },
- "compression_codec": {
- "title": "Compression Codec",
- "description": "The compression algorithm used to compress data. Default to no compression.",
- "type": "object",
- "oneOf": [ {
- "title": "No Compression",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "no compression" ],
- "default": "no compression"
- }
- }
- }, {
- "title": "Deflate",
- "required": [ "codec", "compression_level" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "Deflate" ],
- "default": "Deflate"
- },
- "compression_level": {
- "title": "Deflate Level",
- "description": "0: no compression & fastest, 9: best compression & slowest.",
- "type": "integer",
- "default": 0,
- "minimum": 0,
- "maximum": 9
- }
- }
- }, {
- "title": "bzip2",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "bzip2" ],
- "default": "bzip2"
- }
- }
- }, {
- "title": "xz",
- "required": [ "codec", "compression_level" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "xz" ],
- "default": "xz"
- },
- "compression_level": {
- "title": "Compression Level",
- "description": "See here for details.",
- "type": "integer",
- "default": 6,
- "minimum": 0,
- "maximum": 9
- }
- }
- }, {
- "title": "zstandard",
- "required": [ "codec", "compression_level" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "zstandard" ],
- "default": "zstandard"
- },
- "compression_level": {
- "title": "Compression Level",
- "description": "Negative levels are 'fast' modes akin to lz4 or snappy, levels above 9 are generally for archival purposes, and levels above 18 use a lot of memory.",
- "type": "integer",
- "default": 3,
- "minimum": -5,
- "maximum": 22
- },
- "include_checksum": {
- "title": "Include Checksum",
- "description": "If true, include a checksum with each data block.",
- "type": "boolean",
- "default": false
- }
- }
- }, {
- "title": "snappy",
- "required": [ "codec" ],
- "properties": {
- "codec": {
- "type": "string",
- "enum": [ "snappy" ],
- "default": "snappy"
- }
- }
- } ],
- "order": 1
- }
- }
- }, {
- "title": "CSV: Comma-Separated Values",
- "required": [ "format_type", "flattening" ],
- "properties": {
- "format_type": {
- "title": "Format Type",
- "type": "string",
- "enum": [ "CSV" ],
- "default": "CSV"
- },
- "flattening": {
- "type": "string",
- "title": "Flattening",
- "description": "Whether the input json data should be normalized (flattened) in the output CSV. Please refer to docs for details.",
- "default": "No flattening",
- "enum": [ "No flattening", "Root level flattening" ]
- },
- "compression": {
- "title": "Compression",
- "type": "object",
- "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".csv.gz\").",
- "oneOf": [ {
- "title": "No Compression",
- "requires": [ "compression_type" ],
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "No Compression" ],
- "default": "No Compression"
- }
- }
- }, {
- "title": "GZIP",
- "requires": [ "compression_type" ],
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "GZIP" ],
- "default": "GZIP"
- }
- }
- } ]
- }
- }
- }, {
- "title": "JSON Lines: Newline-delimited JSON",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "title": "Format Type",
- "type": "string",
- "enum": [ "JSONL" ],
- "default": "JSONL"
- },
- "flattening": {
- "type": "string",
- "title": "Flattening",
- "description": "Whether the input json data should be normalized (flattened) in the output JSON Lines. Please refer to docs for details.",
- "default": "No flattening",
- "enum": [ "No flattening", "Root level flattening" ]
- },
- "compression": {
- "title": "Compression",
- "type": "object",
- "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".jsonl.gz\").",
- "oneOf": [ {
- "title": "No Compression",
- "requires": "compression_type",
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "No Compression" ],
- "default": "No Compression"
- }
- }
- }, {
- "title": "GZIP",
- "requires": "compression_type",
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "GZIP" ],
- "default": "GZIP"
- }
- }
- } ]
- }
- }
- }, {
- "title": "Parquet: Columnar Storage",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "title": "Format Type",
- "type": "string",
- "enum": [ "Parquet" ],
- "default": "Parquet"
- },
- "compression_codec": {
- "title": "Compression Codec",
- "description": "The compression algorithm used to compress data pages.",
- "type": "string",
- "enum": [ "UNCOMPRESSED", "SNAPPY", "GZIP", "LZO", "BROTLI", "LZ4", "ZSTD" ],
- "default": "UNCOMPRESSED"
- },
- "block_size_mb": {
- "title": "Block Size (Row Group Size) (MB)",
- "description": "This is the size of a row group being buffered in memory. It limits the memory usage when writing. Larger values will improve the IO when reading, but consume more memory when writing. Default: 128 MB.",
- "type": "integer",
- "default": 128,
- "examples": [ 128 ]
- },
- "max_padding_size_mb": {
- "title": "Max Padding Size (MB)",
- "description": "Maximum size allowed as padding to align row groups. This is also the minimum size of a row group. Default: 8 MB.",
- "type": "integer",
- "default": 8,
- "examples": [ 8 ]
- },
- "page_size_kb": {
- "title": "Page Size (KB)",
- "description": "The page size is for compression. A block is composed of pages. A page is the smallest unit that must be read fully to access a single record. If this value is too small, the compression will deteriorate. Default: 1024 KB.",
- "type": "integer",
- "default": 1024,
- "examples": [ 1024 ]
- },
- "dictionary_page_size_kb": {
- "title": "Dictionary Page Size (KB)",
- "description": "There is one dictionary page per column per row group when dictionary encoding is used. The dictionary page size works like the page size but for dictionary. Default: 1024 KB.",
- "type": "integer",
- "default": 1024,
- "examples": [ 1024 ]
- },
- "dictionary_encoding": {
- "title": "Dictionary Encoding",
- "description": "Default: true.",
- "type": "boolean",
- "default": true
- }
- }
- } ],
- "order": 5
- },
- "s3_endpoint": {
- "title": "Endpoint",
- "type": "string",
- "default": "",
- "description": "Your S3 endpoint url. Read more here",
- "examples": [ "http://localhost:9000" ],
- "order": 6
- },
- "s3_path_format": {
- "title": "S3 Path Format",
- "description": "Format string on how data will be organized inside the S3 bucket directory. Read more here",
- "type": "string",
- "examples": [ "${NAMESPACE}/${STREAM_NAME}/${YEAR}_${MONTH}_${DAY}_${EPOCH}_" ],
- "order": 7
- },
- "file_name_pattern": {
- "type": "string",
- "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
- "title": "S3 Filename pattern",
- "examples": [ "{date}", "{date:yyyy_MM}", "{timestamp}", "{part_number}", "{sync_id}" ],
- "order": 8
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "resourceRequirements": {
- "jobSpecific": [ {
- "jobType": "sync",
- "resourceRequirements": {
- "memory_request": "1Gi",
- "memory_limit": "1Gi"
- }
- } ]
- }
- }, {
- "destinationDefinitionId": "471e5cab-8ed1-49f3-ba11-79c687784737",
- "name": "S3 Glue",
- "dockerRepository": "airbyte/destination-s3-glue",
- "dockerImageTag": "0.1.6",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/s3-glue",
- "icon": "s3-glue.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/s3-glue",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "S3 Destination Spec",
- "type": "object",
- "required": [ "s3_bucket_name", "s3_bucket_path", "s3_bucket_region", "format", "glue_database", "glue_serialization_library" ],
- "properties": {
- "access_key_id": {
- "type": "string",
- "description": "The access key ID to access the S3 bucket. Airbyte requires Read and Write permissions to the given bucket. Read more here.",
- "title": "S3 Key ID",
- "airbyte_secret": true,
- "examples": [ "A012345678910EXAMPLE" ],
- "order": 0
- },
- "secret_access_key": {
- "type": "string",
- "description": "The corresponding secret to the access key ID. Read more here",
- "title": "S3 Access Key",
- "airbyte_secret": true,
- "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ],
- "order": 1
- },
- "s3_bucket_name": {
- "title": "S3 Bucket Name",
- "type": "string",
- "description": "The name of the S3 bucket. Read more here.",
- "examples": [ "airbyte_sync" ],
- "order": 2
- },
- "s3_bucket_path": {
- "title": "S3 Bucket Path",
- "description": "Directory under the S3 bucket where data will be written. Read more here",
- "type": "string",
- "examples": [ "data_sync/test" ],
- "order": 3
- },
- "s3_bucket_region": {
- "title": "S3 Bucket Region",
- "type": "string",
- "default": "",
- "description": "The region of the S3 bucket. See here for all region codes.",
- "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
- "order": 4
- },
- "format": {
- "title": "Output Format",
- "type": "object",
- "description": "Format of the data output. See here for more details",
- "oneOf": [ {
- "title": "JSON Lines: Newline-delimited JSON",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "title": "Format Type",
- "type": "string",
- "enum": [ "JSONL" ],
- "default": "JSONL"
- },
- "compression": {
- "title": "Compression",
- "type": "object",
- "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".jsonl.gz\").",
- "oneOf": [ {
- "title": "No Compression",
- "requires": "compression_type",
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "No Compression" ],
- "default": "No Compression"
- }
- }
- }, {
- "title": "GZIP",
- "requires": "compression_type",
- "properties": {
- "compression_type": {
- "type": "string",
- "enum": [ "GZIP" ],
- "default": "GZIP"
- }
- }
- } ]
- },
- "flattening": {
- "type": "string",
- "title": "Flattening",
- "description": "Whether the input json data should be normalized (flattened) in the output JSON Lines. Please refer to docs for details.",
- "default": "Root level flattening",
- "enum": [ "No flattening", "Root level flattening" ]
- }
- }
- } ],
- "order": 5
- },
- "s3_endpoint": {
- "title": "Endpoint",
- "type": "string",
- "default": "",
- "description": "Your S3 endpoint url. Read more here",
- "examples": [ "http://localhost:9000" ],
- "order": 6
- },
- "s3_path_format": {
- "title": "S3 Path Format",
- "description": "Format string on how data will be organized inside the S3 bucket directory. Read more here",
- "type": "string",
- "examples": [ "${NAMESPACE}/${STREAM_NAME}/${YEAR}_${MONTH}_${DAY}_${EPOCH}_" ],
- "order": 7
- },
- "file_name_pattern": {
- "type": "string",
- "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
- "title": "S3 Filename pattern",
- "examples": [ "{date}", "{date:yyyy_MM}", "{timestamp}", "{part_number}", "{sync_id}" ],
- "order": 8
- },
- "glue_database": {
- "type": "string",
- "description": "Name of the glue database for creating the tables, leave blank if no integration",
- "title": "Glue database name",
- "examples": [ "airbyte_database" ],
- "order": 9
- },
- "glue_serialization_library": {
- "title": "Serialization Library",
- "description": "The library that your query engine will use for reading and writing data in your lake.",
- "type": "string",
- "enum": [ "org.openx.data.jsonserde.JsonSerDe", "org.apache.hive.hcatalog.data.JsonSerDe" ],
- "default": "org.openx.data.jsonserde.JsonSerDe",
- "order": 10
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "50a559a7-6323-4e33-8aa0-51dfd9dfadac",
- "name": "SelectDB",
- "dockerRepository": "airbyte/destination-selectdb",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/selectdb",
- "icon": "select.db",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/selectdb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "SelectDB Destination Spec",
- "type": "object",
- "required": [ "load_url", "jdbc_url", "cluster_name", "user_name", "password", "database" ],
- "properties": {
- "load_url": {
- "title": "loadURL",
- "description": "load host and port: xxx.privatelink.aliyun.com:47057",
- "type": "string",
- "order": 0
- },
- "jdbc_url": {
- "title": "jdbcURL",
- "description": "jdbc host and port: xxx.privatelink.aliyun.com:30523",
- "type": "string",
- "order": 1
- },
- "cluster_name": {
- "title": "ClusterName",
- "description": "clusterName of SelectDB",
- "type": "string",
- "order": 2
- },
- "user_name": {
- "title": "UserName",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "database": {
- "title": "DataBase Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 5
- }
- }
- },
- "supportsIncremental": false,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append", "overwrite" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "e9810f61-4bab-46d2-bb22-edfc902e0644",
- "name": "SFTP-JSON",
- "dockerRepository": "airbyte/destination-sftp-json",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/sftp-json",
- "icon": "sftp.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/sftp-json",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination SFTP JSON",
- "type": "object",
- "required": [ "host", "username", "password", "destination_path" ],
- "additionalProperties": false,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the SFTP server.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "Port of the SFTP server.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ 22 ],
- "order": 1
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the SFTP server.",
- "type": "string",
- "order": 2
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 3
- },
- "destination_path": {
- "title": "Destination path",
- "type": "string",
- "description": "Path to the directory where json files will be written.",
- "examples": [ "/json_data" ],
- "order": 4
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "424892c4-daac-4491-b35d-c6688ba547ba",
- "name": "Snowflake",
- "dockerRepository": "airbyte/destination-snowflake",
- "dockerImageTag": "0.4.61",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/snowflake",
- "icon": "snowflake.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/snowflake",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Snowflake Destination Spec",
- "type": "object",
- "required": [ "host", "role", "warehouse", "database", "schema", "username" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "description": "Enter your Snowflake account's locator (in the format ...snowflakecomputing.com)",
- "examples": [ "accountname.us-east-2.aws.snowflakecomputing.com", "accountname.snowflakecomputing.com" ],
- "type": "string",
- "title": "Host",
- "pattern": "^(http(s)?:\\/\\/)?([^./?#]+\\.)?([^./?#]+\\.)?([^./?#]+\\.)?([^./?#]+\\.snowflakecomputing\\.com)$",
- "pattern_descriptor": "{account_name}.snowflakecomputing.com or {accountname}.{aws_location}.aws.snowflakecomputing.com",
- "order": 0
- },
- "role": {
- "description": "Enter the role that you want to use to access Snowflake",
- "examples": [ "AIRBYTE_ROLE" ],
- "type": "string",
- "title": "Role",
- "order": 1
- },
- "warehouse": {
- "description": "Enter the name of the warehouse that you want to sync data into",
- "examples": [ "AIRBYTE_WAREHOUSE" ],
- "type": "string",
- "title": "Warehouse",
- "order": 2
- },
- "database": {
- "description": "Enter the name of the database you want to sync data into",
- "examples": [ "AIRBYTE_DATABASE" ],
- "type": "string",
- "title": "Database",
- "order": 3
- },
- "schema": {
- "description": "Enter the name of the default schema",
- "examples": [ "AIRBYTE_SCHEMA" ],
- "type": "string",
- "title": "Default Schema",
- "order": 4
- },
- "username": {
- "description": "Enter the name of the user you want to use to access the database",
- "examples": [ "AIRBYTE_USER" ],
- "type": "string",
- "title": "Username",
- "order": 5
- },
- "credentials": {
- "title": "Authorization Method",
- "description": "",
- "type": "object",
- "oneOf": [ {
- "title": "OAuth2.0",
- "type": "object",
- "order": 0,
- "required": [ "access_token", "refresh_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "OAuth2.0",
- "enum": [ "OAuth2.0" ],
- "default": "OAuth2.0",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "Enter your application's Client ID",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "Enter your application's Client secret",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Enter you application's Access Token",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "Enter your application's Refresh Token",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Key Pair Authentication",
- "type": "object",
- "order": 1,
- "required": [ "private_key" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Key Pair Authentication",
- "enum": [ "Key Pair Authentication" ],
- "default": "Key Pair Authentication",
- "order": 0
- },
- "private_key": {
- "type": "string",
- "title": "Private Key",
- "description": "RSA Private key to use for Snowflake connection. See the docs for more information on how to obtain this key.",
- "multiline": true,
- "airbyte_secret": true
- },
- "private_key_password": {
- "type": "string",
- "title": "Passphrase",
- "description": "Passphrase for private key",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Username and Password",
- "type": "object",
- "required": [ "password" ],
- "order": 2,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Username and Password",
- "enum": [ "Username and Password" ],
- "default": "Username and Password",
- "order": 0
- },
- "password": {
- "description": "Enter the password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "title": "Password",
- "order": 1
- }
- }
- } ],
- "order": 6
- },
- "jdbc_url_params": {
- "description": "Enter the additional properties to pass to the JDBC URL string when connecting to the database (formatted as key=value pairs separated by the symbol &). Example: key1=value1&key2=value2&key3=value3",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 7
- },
- "loading_method": {
- "type": "object",
- "title": "Data Staging Method",
- "description": "Select a data staging method",
- "order": 8,
- "oneOf": [ {
- "title": "Select another option",
- "description": "Select another option",
- "required": [ "method" ],
- "properties": {
- "method": {
- "title": "",
- "description": "",
- "type": "string",
- "enum": [ "Standard" ],
- "default": "Standard"
- }
- }
- }, {
- "title": "[Recommended] Internal Staging",
- "description": "Recommended for large production workloads for better speed and scalability.",
- "required": [ "method" ],
- "properties": {
- "method": {
- "title": "",
- "description": "",
- "type": "string",
- "enum": [ "Internal Staging" ],
- "default": "Internal Staging"
- }
- }
- }, {
- "title": "AWS S3 Staging",
- "description": "Recommended for large production workloads for better speed and scalability.",
- "required": [ "method", "s3_bucket_name", "access_key_id", "secret_access_key" ],
- "properties": {
- "method": {
- "title": "",
- "description": "",
- "type": "string",
- "enum": [ "S3 Staging" ],
- "default": "S3 Staging",
- "order": 0
- },
- "s3_bucket_name": {
- "title": "S3 Bucket Name",
- "type": "string",
- "description": "Enter your S3 bucket name",
- "examples": [ "airbyte.staging" ],
- "order": 1
- },
- "s3_bucket_region": {
- "title": "S3 Bucket Region",
- "type": "string",
- "default": "",
- "description": "Enter the region where your S3 bucket resides",
- "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-west-1", "eu-west-2", "eu-west-3", "eu-south-1", "eu-north-1", "sa-east-1", "me-south-1" ],
- "order": 2
- },
- "access_key_id": {
- "type": "string",
- "description": "Enter your AWS access key ID. Airbyte requires Read and Write permissions on your S3 bucket ",
- "title": "AWS access key ID",
- "airbyte_secret": true,
- "order": 3
- },
- "secret_access_key": {
- "type": "string",
- "description": "Enter your AWS secret access key",
- "title": "AWS secret access key",
- "airbyte_secret": true,
- "order": 4
- },
- "purge_staging_data": {
- "title": "Purge Staging Files and Tables",
- "type": "boolean",
- "description": "Toggle to delete staging files from the S3 bucket after a successful sync",
- "default": true,
- "order": 5
- },
- "encryption": {
- "title": "Encryption",
- "type": "object",
- "description": "Choose a data encryption method for the staging data",
- "default": {
- "encryption_type": "none"
- },
- "order": 6,
- "oneOf": [ {
- "title": "No encryption",
- "description": "Staging data will be stored in plaintext.",
- "type": "object",
- "required": [ "encryption_type" ],
- "properties": {
- "encryption_type": {
- "type": "string",
- "const": "none",
- "enum": [ "none" ],
- "default": "none"
- }
- }
- }, {
- "title": "AES-CBC envelope encryption",
- "description": "Staging data will be encrypted using AES-CBC envelope encryption.",
- "type": "object",
- "required": [ "encryption_type" ],
- "properties": {
- "encryption_type": {
- "type": "string",
- "const": "aes_cbc_envelope",
- "enum": [ "aes_cbc_envelope" ],
- "default": "aes_cbc_envelope"
- },
- "key_encrypting_key": {
- "type": "string",
- "title": "Key",
- "description": "The key, base64-encoded. Must be either 128, 192, or 256 bits. Leave blank to have Airbyte generate an ephemeral key for each sync.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "file_name_pattern": {
- "type": "string",
- "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
- "title": "S3 Filename pattern",
- "examples": [ "{date}", "{date:yyyy_MM}", "{timestamp}", "{part_number}", "{sync_id}" ],
- "order": 7
- }
- }
- }, {
- "title": "Google Cloud Storage Staging",
- "description": "Recommended for large production workloads for better speed and scalability.",
- "required": [ "method", "project_id", "bucket_name", "credentials_json" ],
- "properties": {
- "method": {
- "title": "",
- "description": "",
- "type": "string",
- "enum": [ "GCS Staging" ],
- "default": "GCS Staging",
- "order": 0
- },
- "project_id": {
- "title": "Google Cloud project ID",
- "type": "string",
- "description": "Enter the Google Cloud project ID",
- "examples": [ "my-project" ],
- "order": 1
- },
- "bucket_name": {
- "title": "Cloud Storage bucket name",
- "type": "string",
- "description": "Enter the Cloud Storage bucket name",
- "examples": [ "airbyte-staging" ],
- "order": 2
- },
- "credentials_json": {
- "title": "Google Application Credentials",
- "type": "string",
- "description": "Enter your Google Cloud service account key in the JSON format with read/write access to your Cloud Storage staging bucket",
- "airbyte_secret": true,
- "multiline": true,
- "order": 3
- }
- }
- }, {
- "title": "Azure Blob Storage Staging",
- "description": "Recommended for large production workloads for better speed and scalability.",
- "required": [ "method", "azure_blob_storage_account_name", "azure_blob_storage_container_name", "azure_blob_storage_sas_token" ],
- "properties": {
- "method": {
- "title": "",
- "description": "",
- "type": "string",
- "enum": [ "Azure Blob Staging" ],
- "default": "Azure Blob Staging",
- "order": 0
- },
- "azure_blob_storage_endpoint_domain_name": {
- "title": "Azure Blob Storage Endpoint",
- "type": "string",
- "default": "blob.core.windows.net",
- "description": "Enter the Azure Blob Storage endpoint domain name",
- "examples": [ "blob.core.windows.net" ],
- "order": 1
- },
- "azure_blob_storage_account_name": {
- "title": "Azure Blob Storage account name",
- "type": "string",
- "description": "Enter your Azure Blob Storage account name",
- "examples": [ "airbyte5storage" ],
- "order": 2
- },
- "azure_blob_storage_container_name": {
- "title": "Azure Blob Storage Container Name",
- "type": "string",
- "description": "Enter your Azure Blob Storage container name",
- "examples": [ "airbytetestcontainername" ],
- "order": 3
- },
- "azure_blob_storage_sas_token": {
- "title": "SAS Token",
- "type": "string",
- "airbyte_secret": true,
- "description": "Enter the Shared access signature (SAS) token to grant Snowflake limited access to objects in your Azure Blob Storage account",
- "examples": [ "?sv=2016-05-31&ss=b&srt=sco&sp=rwdl&se=2018-06-27T10:05:50Z&st=2017-06-27T02:05:50Z&spr=https,http&sig=bgqQwoXwxzuD2GJfagRg7VOS8hzNr3QLT7rhS8OFRLQ%3D" ],
- "order": 4
- }
- }
- } ]
- },
- "file_buffer_count": {
- "title": "File Buffer Count",
- "type": "integer",
- "minimum": 10,
- "maximum": 50,
- "default": 10,
- "description": "Number of file buffers allocated for writing data. Increasing this number is beneficial for connections using Change Data Capture (CDC) and up to the number of streams within a connection. Increasing the number of file buffers past the maximum number of streams has deteriorating effects",
- "examples": [ "10" ],
- "order": 9
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "OAuth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "properties": {
- "host": {
- "type": "string",
- "path_in_connector_config": [ "host" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- },
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "resourceRequirements": {
- "jobSpecific": [ {
- "jobType": "sync",
- "resourceRequirements": {
- "memory_request": "1Gi",
- "memory_limit": "1Gi"
- }
- } ]
- },
- "normalizationConfig": {
- "normalizationRepository": "airbyte/normalization-snowflake",
- "normalizationTag": "0.4.0",
- "normalizationIntegrationType": "snowflake"
- },
- "supportsDbt": true
- }, {
- "destinationDefinitionId": "294a4790-429b-40ae-9516-49826b9702e1",
- "name": "MariaDB ColumnStore",
- "dockerRepository": "airbyte/destination-mariadb-columnstore",
- "dockerImageTag": "0.1.7",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mariadb-columnstore",
- "icon": "mariadb.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mariadb-columnstore",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "MariaDB Columnstore Destination Spec",
- "type": "object",
- "required": [ "host", "port", "username", "database" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "The Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "The Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 3306,
- "examples": [ "3306" ],
- "order": 1
- },
- "database": {
- "title": "Database",
- "description": "Name of the database.",
- "type": "string",
- "order": 2
- },
- "username": {
- "title": "Username",
- "description": "The Username which is used to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "The Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 5
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "eebd85cf-60b2-4af6-9ba0-edeca01437b0",
- "name": "Streamr",
- "dockerRepository": "ghcr.io/devmate-cloud/streamr-airbyte-connectors",
- "dockerImageTag": "0.0.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/streamr",
- "icon": "streamr.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/streamr",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Streamr",
- "type": "object",
- "required": [ "privateKey", "streamId" ],
- "additionalProperties": false,
- "properties": {
- "privateKey": {
- "type": "string",
- "description": "You private key on Streamr",
- "airbyte_secret": true
- },
- "streamId": {
- "type": "string",
- "description": "Your full Stream ID",
- "examples": [ "0x0d0102474519cd2fc1b3e3f962a87e39cbcbead2/test-streamr" ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append", "append_dedup" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "3dc6f384-cd6b-4be3-ad16-a41450899bf0",
- "name": "Scylla",
- "dockerRepository": "airbyte/destination-scylla",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/scylla",
- "icon": "scylla.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/scylla",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Scylla Destination Spec",
- "type": "object",
- "required": [ "keyspace", "username", "password", "address", "port" ],
- "additionalProperties": true,
- "properties": {
- "keyspace": {
- "title": "Keyspace",
- "description": "Default Scylla keyspace to create data in.",
- "type": "string",
- "order": 0
- },
- "username": {
- "title": "Username",
- "description": "Username to use to access Scylla.",
- "type": "string",
- "order": 1
- },
- "password": {
- "title": "Password",
- "description": "Password associated with Scylla.",
- "type": "string",
- "airbyte_secret": true,
- "order": 2
- },
- "address": {
- "title": "Address",
- "description": "Address to connect to.",
- "type": "string",
- "order": 3
- },
- "port": {
- "title": "Port",
- "description": "Port of Scylla.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 9042,
- "order": 4
- },
- "replication": {
- "title": "Replication factor",
- "type": "integer",
- "description": "Indicates to how many nodes the data should be replicated to.",
- "default": 1,
- "order": 5
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "a4cbd2d1-8dbe-4818-b8bc-b90ad782d12a",
- "name": "Google Sheets",
- "dockerRepository": "airbyte/destination-google-sheets",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/google-sheets",
- "icon": "google-sheets.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/google-sheets",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Google Sheets",
- "type": "object",
- "required": [ "spreadsheet_id", "credentials" ],
- "additionalProperties": false,
- "properties": {
- "spreadsheet_id": {
- "type": "string",
- "title": "Spreadsheet Link",
- "description": "The link to your spreadsheet. See this guide for more details.",
- "examples": [ "https://docs.google.com/spreadsheets/d/1hLd9Qqti3UyLXZB2aFfUWDT7BG/edit" ]
- },
- "credentials": {
- "type": "object",
- "title": "Authentication via Google (OAuth)",
- "description": "Google API Credentials for connecting to Google Sheets and Google Drive APIs",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Google Sheets developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Google Sheets developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "The token for obtaining new access token.",
- "airbyte_secret": true
- }
- }
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "b76be0a6-27dc-4560-95f6-2623da0bd7b6",
- "name": "Local SQLite",
- "dockerRepository": "airbyte/destination-sqlite",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-sqlite",
- "icon": "sqlite.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/sqlite",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Sqlite",
- "type": "object",
- "required": [ "destination_path" ],
- "additionalProperties": false,
- "properties": {
- "destination_path": {
- "type": "string",
- "description": "Path to the sqlite.db file. The file will be placed inside that local mount. For more information check out our docs",
- "example": "/local/sqlite.db"
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "06ec60c7-7468-45c0-91ac-174f6e1a788b",
- "name": "TiDB",
- "dockerRepository": "airbyte/destination-tidb",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/tidb",
- "icon": "tidb.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/tidb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "TiDB Destination Spec",
- "type": "object",
- "required": [ "host", "port", "username", "database" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 4000,
- "examples": [ "4000" ],
- "order": 1
- },
- "database": {
- "title": "Database",
- "description": "Name of the database.",
- "type": "string",
- "order": 2
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "default": "",
- "order": 4
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL.",
- "type": "boolean",
- "default": false,
- "order": 5
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 6
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "normalizationConfig": {
- "normalizationRepository": "airbyte/normalization-tidb",
- "normalizationTag": "0.4.0",
- "normalizationIntegrationType": "tidb"
- },
- "supportsDbt": true
- }, {
- "destinationDefinitionId": "36be8dc6-9851-49af-b776-9d4c30e4ab6a",
- "name": "Typesense",
- "dockerRepository": "airbyte/destination-typesense",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/typesense",
- "icon": "typesense.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/typesense",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Typesense",
- "type": "object",
- "required": [ "api_key", "host" ],
- "additionalProperties": false,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Typesense API Key",
- "order": 0
- },
- "host": {
- "title": "Host",
- "type": "string",
- "description": "Hostname of the Typesense instance without protocol.",
- "order": 1
- },
- "port": {
- "title": "Port",
- "type": "string",
- "description": "Port of the Typesense instance. Ex: 8108, 80, 443. Default is 443",
- "order": 2
- },
- "protocol": {
- "title": "Protocol",
- "type": "string",
- "description": "Protocol of the Typesense instance. Ex: http or https. Default is https",
- "order": 3
- },
- "batch_size": {
- "title": "Batch size",
- "type": "string",
- "description": "How many documents should be imported together. Default 1000",
- "order": 4
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "2300fdcf-a532-419f-9f24-a014336e7966",
- "name": "YugabyteDB",
- "dockerRepository": "airbyte/destination-yugabytedb",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/yugabytedb",
- "icon": "yugabytedb.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/destinations/yugabytedb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Yugabytedb destination spec",
- "type": "object",
- "required": [ "host", "port", "username", "database", "schema" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "The Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "The Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 3306,
- "examples": [ "3306" ],
- "order": 1
- },
- "database": {
- "title": "Database",
- "description": "Name of the database.",
- "type": "string",
- "order": 2
- },
- "username": {
- "title": "Username",
- "description": "The Username which is used to access the database.",
- "type": "string",
- "order": 4
- },
- "schema": {
- "title": "Default Schema",
- "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
- "type": "string",
- "examples": [ "public" ],
- "default": "public",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "The Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 5
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 6
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "302e4d8e-08d3-4098-acd4-ac67ca365b88",
- "name": "Databend",
- "dockerRepository": "airbyte/destination-databend",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/databend",
- "icon": "databend.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/databend",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Databend",
- "type": "object",
- "required": [ "host", "username", "database" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 443,
- "examples": [ "443" ],
- "order": 2
- },
- "database": {
- "title": "DB Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 3
- },
- "table": {
- "title": "Default Table",
- "description": "The default table was written to.",
- "type": "string",
- "examples": [ "default" ],
- "default": "default",
- "order": 4
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 5
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 6
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "58e6f9da-904e-11ed-a1eb-0242ac120002",
- "name": "Teradata Vantage",
- "dockerRepository": "airbyte/destination-teradata",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.io/integrations/destinations/teradata",
- "icon": "teradata.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/destinations/teradata",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Teradata Destination Spec",
- "type": "object",
- "required": [ "host", "username" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 1
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 2
- },
- "schema": {
- "title": "Default Schema",
- "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
- "type": "string",
- "examples": [ "airbyte_td" ],
- "default": "airbyte_td",
- "order": 3
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL. When activating SSL, please select one of the connection modes.",
- "type": "boolean",
- "default": false,
- "order": 5
- },
- "ssl_mode": {
- "title": "SSL modes",
- "description": "SSL connection modes. \n disable - Chose this mode to disable encryption of communication between Airbyte and destination database\n allow - Chose this mode to enable encryption only when required by the destination database\n prefer - Chose this mode to allow unencrypted connection only if the destination database does not support encryption\n require - Chose this mode to always require encryption. If the destination database server does not support encryption, connection will fail\n verify-ca - Chose this mode to always require encryption and to verify that the destination database server has a valid SSL certificate\n verify-full - This is the most secure mode. Chose this mode to always require encryption and to verify the identity of the destination database server\n See more information - in the docs.",
- "type": "object",
- "order": 6,
- "oneOf": [ {
- "title": "disable",
- "additionalProperties": false,
- "description": "Disable SSL.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "disable",
- "enum": [ "disable" ],
- "default": "disable",
- "order": 0
- }
- }
- }, {
- "title": "allow",
- "additionalProperties": false,
- "description": "Allow SSL mode.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "allow",
- "enum": [ "allow" ],
- "default": "allow",
- "order": 0
- }
- }
- }, {
- "title": "prefer",
- "additionalProperties": false,
- "description": "Prefer SSL mode.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "prefer",
- "enum": [ "prefer" ],
- "default": "prefer",
- "order": 0
- }
- }
- }, {
- "title": "require",
- "additionalProperties": false,
- "description": "Require SSL mode.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "require",
- "enum": [ "require" ],
- "default": "require",
- "order": 0
- }
- }
- }, {
- "title": "verify-ca",
- "additionalProperties": false,
- "description": "Verify-ca SSL mode.",
- "required": [ "mode", "ssl_ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-ca",
- "enum": [ "verify-ca" ],
- "default": "verify-ca",
- "order": 0
- },
- "ssl_ca_certificate": {
- "type": "string",
- "title": "CA certificate",
- "description": "Specifies the file name of a PEM file that contains Certificate Authority (CA) certificates for use with SSLMODE=verify-ca.\n See more information - in the docs.",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- }
- }
- }, {
- "title": "verify-full",
- "additionalProperties": false,
- "description": "Verify-full SSL mode.",
- "required": [ "mode", "ssl_ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-full",
- "enum": [ "verify-full" ],
- "default": "verify-full",
- "order": 0
- },
- "ssl_ca_certificate": {
- "type": "string",
- "title": "CA certificate",
- "description": "Specifies the file name of a PEM file that contains Certificate Authority (CA) certificates for use with SSLMODE=verify-full.\n See more information - in the docs.",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- }
- }
- } ]
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 7
- }
- }
- },
- "supportsIncremental": false,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "7b7d7a0d-954c-45a0-bcfc-39a634b97736",
- "name": "Weaviate",
- "dockerRepository": "airbyte/destination-weaviate",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/weaviate",
- "icon": "weaviate.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/weaviate",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Destination Weaviate",
- "type": "object",
- "required": [ "url" ],
- "additionalProperties": false,
- "properties": {
- "url": {
- "type": "string",
- "description": "The URL to the weaviate instance",
- "examples": [ "http://localhost:8080", "https://your-instance.semi.network" ]
- },
- "username": {
- "type": "string",
- "description": "Username used with OIDC authentication",
- "examples": [ "xyz@weaviate.io" ]
- },
- "password": {
- "type": "string",
- "description": "Password used with OIDC authentication",
- "airbyte_secret": true
- },
- "batch_size": {
- "type": "integer",
- "description": "Batch size for writing to Weaviate",
- "default": 100
- },
- "vectors": {
- "type": "string",
- "description": "Comma separated list of strings of `stream_name.vector_column_name` to specify which field holds the vectors.",
- "examples": [ "my_table.my_vector_column, another_table.vector", "mytable.vector" ]
- },
- "id_schema": {
- "type": "string",
- "description": "Comma separated list of strings of `stream_name.id_column_name` to specify which field holds the ID of the record.",
- "examples": [ "my_table.my_id_column, another_table.id", "users.user_id" ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append", "overwrite" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "destinationDefinitionId": "94bd199c-2ff0-4aa2-b98e-17f0acb72610",
- "name": "DuckDB",
- "dockerRepository": "airbyte/destination-duckdb",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.io/integrations/destinations/duckdb",
- "icon": "duckdb.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/destinations/duckdb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "DuckDB Destination Spec",
- "type": "object",
- "required": [ "destination_path" ],
- "additionalProperties": false,
- "properties": {
- "destination_path": {
- "type": "string",
- "description": "Path to the destination.duckdb file. The file will be placed inside that local mount. For more information check out our docs",
- "example": "/local/destination.duckdb"
- },
- "schema": {
- "type": "string",
- "description": "database schema, default for duckdb is main",
- "example": "main"
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ "overwrite", "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- } ],
- "sources": [ {
- "sourceDefinitionId": "9f32dab3-77cb-45a1-9d33-347aa5fbe363",
- "name": "ActiveCampaign",
- "dockerRepository": "airbyte/source-activecampaign",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/activecampaign",
- "icon": "activecampaign.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/activecampaign",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Activecampaign Spec",
- "type": "object",
- "required": [ "api_key", "account_username" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true
- },
- "account_username": {
- "type": "string",
- "description": "Account Username"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d3b7fa46-111b-419a-998a-d7f046f6d66d",
- "name": "Adjust",
- "dockerRepository": "airbyte/source-adjust",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/adjust",
- "icon": "adjust.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://raw.githubusercontent.com/appchoose/airbyte/feature/source-adjust/docs/integrations/sources/adjust.md",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "description": "Adjust reporting API connector.",
- "properties": {
- "additional_metrics": {
- "description": "Metrics names that are not pre-defined, such as cohort metrics or app specific metrics.",
- "items": {
- "type": "string"
- },
- "order": 3,
- "title": "Additional metrics for ingestion",
- "type": "array"
- },
- "api_token": {
- "airbyte_secret": true,
- "description": "Adjust API key, see https://help.adjust.com/en/article/report-service-api-authentication",
- "order": 0,
- "title": "API Token",
- "type": "string"
- },
- "dimensions": {
- "description": "Dimensions allow a user to break down metrics into groups using one or several parameters. For example, the number of installs by date, country and network. See https://help.adjust.com/en/article/reports-endpoint#dimensions for more information about the dimensions.",
- "items": {
- "enum": [ "os_name", "device_type", "app", "app_token", "store_id", "store_type", "app_network", "currency", "currency_code", "network", "campaign", "campaign_network", "campaign_id_network", "adgroup", "adgroup_network", "adgroup_id_network", "source_network", "source_id_network", "creative", "creative_network", "creative_id_network", "country", "country_code", "region", "partner_name", "partner_id" ],
- "type": "string"
- },
- "minItems": 1,
- "order": 4,
- "title": "Dimensions",
- "type": "array",
- "uniqueItems": true
- },
- "ingest_start": {
- "description": "Data ingest start date.",
- "format": "date",
- "order": 1,
- "title": "Ingest Start Date",
- "type": "string"
- },
- "metrics": {
- "description": "Select at least one metric to query.",
- "items": {
- "enum": [ "network_cost", "network_cost_diff", "network_clicks", "network_impressions", "network_installs", "network_installs_diff", "network_ecpc", "network_ecpi", "network_ecpm", "arpdau_ad", "arpdau", "arpdau_iap", "ad_impressions", "ad_rpm", "ad_revenue", "cohort_ad_revenue", "cost", "adjust_cost", "all_revenue", "cohort_all_revenue", "daus", "maus", "waus", "base_sessions", "ctr", "click_conversion_rate", "click_cost", "clicks", "paid_clicks", "deattributions", "ecpc", "gdpr_forgets", "gross_profit", "cohort_gross_profit", "impression_conversion_rate", "impression_cost", "impressions", "paid_impressions", "install_cost", "installs", "paid_installs", "installs_per_mile", "limit_ad_tracking_installs", "limit_ad_tracking_install_rate", "limit_ad_tracking_reattribution_rate", "limit_ad_tracking_reattributions", "non_organic_installs", "organic_installs", "roas_ad", "roas", "roas_iap", "reattributions", "return_on_investment", "revenue", "cohort_revenue", "revenue_events", "revenue_to_cost", "sessions", "events", "ecpi_all", "ecpi", "ecpm" ],
- "type": "string"
- },
- "minItems": 1,
- "order": 2,
- "title": "Metrics to ingest",
- "type": "array",
- "uniqueItems": true
- },
- "until_today": {
- "default": false,
- "description": "Syncs data up until today. Useful when running daily incremental syncs, and duplicates are not desired.",
- "order": 5,
- "title": "Until Today",
- "type": "boolean"
- }
- },
- "required": [ "api_token", "ingest_start", "metrics", "dimensions" ],
- "title": "Adjust Spec",
- "type": "object"
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "912eb6b7-a893-4a5b-b1c0-36ebbe2de8cd",
- "name": "Aircall",
- "dockerRepository": "airbyte/source-aircall",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/aircall",
- "icon": "aircall.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/aircall",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Aircall Spec",
- "type": "object",
- "required": [ "api_id", "api_token", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_id": {
- "title": "API ID",
- "type": "string",
- "description": "App ID found at settings https://dashboard.aircall.io/integrations/api-keys",
- "airbyte_secret": true
- },
- "api_token": {
- "title": "API Token",
- "type": "string",
- "description": "App token found at settings (Ref- https://dashboard.aircall.io/integrations/api-keys)",
- "airbyte_secret": true
- },
- "start_date": {
- "title": "Date-From Filter",
- "type": "string",
- "description": "Date time filter for incremental filter, Specify which date to extract from.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
- "examples": [ "2022-03-01T00:00:00.000Z" ],
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "14c6e7ea-97ed-4f5e-a7b5-25e9a80b8212",
- "name": "Airtable",
- "dockerRepository": "airbyte/source-airtable",
- "dockerImageTag": "3.0.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/airtable",
- "icon": "airtable.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/airtable",
- "connectionSpecification": {
- "$schema": "https://json-schema.org/draft-07/schema#",
- "title": "Airtable Source Spec",
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authentication",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "oauth2.0"
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The client ID of the Airtable developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client secret",
- "description": "The client secret the Airtable developer application.",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true
- },
- "token_expiry_date": {
- "type": "string",
- "description": "The date-time when the access token should be refreshed.",
- "format": "date-time"
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh token",
- "description": "The key to refresh the expired access token.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Personal Access Token",
- "type": "object",
- "required": [ "api_key" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "api_key"
- },
- "api_key": {
- "type": "string",
- "description": "The Personal Access Token for the Airtable account. See the Support Guide for more information on how to obtain this token.",
- "title": "Personal Access Token",
- "airbyte_secret": true,
- "examples": [ "key1234567890" ]
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_method" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- },
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- },
- "token_expiry_date": {
- "type": "string",
- "format": "date-time",
- "path_in_connector_config": [ "credentials", "token_expiry_date" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.airtable.com", "airtable.com" ]
- }
- }, {
- "sourceDefinitionId": "81ca39dc-4534-4dd2-b848-b0cfd2c11fce",
- "name": "Aha",
- "dockerRepository": "airbyte/source-aha",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/aha",
- "icon": "aha.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/aha",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Aha Spec",
- "type": "object",
- "required": [ "api_key", "url" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API Key",
- "title": "API Bearer Token"
- },
- "url": {
- "type": "string",
- "description": "URL",
- "title": "Aha Url Instance"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "db385323-9333-4fec-bec3-9e0ca9326c90",
- "name": "Alpha Vantage",
- "dockerRepository": "airbyte/source-alpha-vantage",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/alpha-vantage",
- "icon": "alpha-vantage.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/alpha-vantage",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Alpha Vantage Spec",
- "type": "object",
- "required": [ "api_key", "symbol" ],
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true,
- "order": 0
- },
- "symbol": {
- "title": "Symbol",
- "type": "string",
- "description": "Stock symbol (with exchange code)",
- "examples": [ "AAPL", "TSCO.LON" ],
- "order": 1
- },
- "interval": {
- "title": "Interval",
- "type": "string",
- "description": "Time-series data point interval. Required for intraday endpoints.\n",
- "enum": [ "1min", "5min", "15min", "30min", "60min" ],
- "default": "1min",
- "order": 2
- },
- "adjusted": {
- "title": "Adjusted?",
- "type": "boolean",
- "description": "Whether to return adjusted data. Only applicable to intraday endpoints.\n",
- "default": false,
- "order": 3
- },
- "outputsize": {
- "title": "Output Size",
- "type": "string",
- "description": "Whether to return full or compact data (the last 100 data points).\n",
- "enum": [ "compact", "full" ],
- "default": "compact",
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "1fa90628-2b9e-11ed-a261-0242ac120002",
- "name": "AlloyDB for PostgreSQL",
- "dockerRepository": "airbyte/source-alloydb",
- "dockerImageTag": "2.0.23",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/alloydb",
- "icon": "alloydb.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/postgres",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Postgres Source Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username" ],
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0,
- "group": "db"
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 5432,
- "examples": [ "5432" ],
- "order": 1,
- "group": "db"
- },
- "database": {
- "title": "Database Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 2,
- "group": "db"
- },
- "schemas": {
- "title": "Schemas",
- "description": "The list of schemas (case sensitive) to sync from. Defaults to public.",
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 0,
- "uniqueItems": true,
- "default": [ "public" ],
- "order": 3,
- "group": "db"
- },
- "username": {
- "title": "Username",
- "description": "Username to access the database.",
- "type": "string",
- "order": 4,
- "group": "auth"
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 5,
- "group": "auth",
- "always_show": true
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (Eg. key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
- "title": "JDBC URL Parameters (Advanced)",
- "type": "string",
- "order": 6,
- "group": "advanced",
- "pattern_descriptor": "key1=value1&key2=value2"
- },
- "ssl_mode": {
- "title": "SSL Modes",
- "description": "SSL connection modes. \n Read more in the docs.",
- "type": "object",
- "order": 8,
- "group": "security",
- "oneOf": [ {
- "title": "disable",
- "additionalProperties": true,
- "description": "Disables encryption of communication between Airbyte and source database.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "disable",
- "order": 0
- }
- }
- }, {
- "title": "allow",
- "additionalProperties": true,
- "description": "Enables encryption only when required by the source database.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "allow",
- "order": 0
- }
- }
- }, {
- "title": "prefer",
- "additionalProperties": true,
- "description": "Allows unencrypted connection only if the source database does not support encryption.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "prefer",
- "order": 0
- }
- }
- }, {
- "title": "require",
- "additionalProperties": true,
- "description": "Always require encryption. If the source database server does not support encryption, connection will fail.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "require",
- "order": 0
- }
- }
- }, {
- "title": "verify-ca",
- "additionalProperties": true,
- "description": "Always require encryption and verifies that the source database server has a valid SSL certificate.",
- "required": [ "mode", "ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-ca",
- "order": 0
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA Certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- },
- "client_certificate": {
- "type": "string",
- "title": "Client Certificate",
- "description": "Client certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 2,
- "always_show": true
- },
- "client_key": {
- "type": "string",
- "title": "Client Key",
- "description": "Client key",
- "airbyte_secret": true,
- "multiline": true,
- "order": 3,
- "always_show": true
- },
- "client_key_password": {
- "type": "string",
- "title": "Client key password",
- "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- }, {
- "title": "verify-full",
- "additionalProperties": true,
- "description": "This is the most secure mode. Always require encryption and verifies the identity of the source database server.",
- "required": [ "mode", "ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-full",
- "order": 0
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA Certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- },
- "client_certificate": {
- "type": "string",
- "title": "Client Certificate",
- "description": "Client certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 2,
- "always_show": true
- },
- "client_key": {
- "type": "string",
- "title": "Client Key",
- "description": "Client key",
- "airbyte_secret": true,
- "multiline": true,
- "order": 3,
- "always_show": true
- },
- "client_key_password": {
- "type": "string",
- "title": "Client key password",
- "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- },
- "replication_method": {
- "type": "object",
- "title": "Replication Method",
- "description": "Replication method for extracting data from the database.",
- "order": 9,
- "group": "advanced",
- "oneOf": [ {
- "title": "Standard",
- "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "Standard",
- "order": 0
- }
- }
- }, {
- "title": "Logical Replication (CDC)",
- "description": "Logical replication uses the Postgres write-ahead log (WAL) to detect inserts, updates, and deletes. This needs to be configured on the source database itself. Only available on Postgres 10 and above. Read the docs.",
- "required": [ "method", "replication_slot", "publication" ],
- "additionalProperties": true,
- "properties": {
- "method": {
- "type": "string",
- "const": "CDC",
- "order": 1
- },
- "plugin": {
- "type": "string",
- "title": "Plugin",
- "description": "A logical decoding plugin installed on the PostgreSQL server.",
- "enum": [ "pgoutput" ],
- "default": "pgoutput",
- "order": 2
- },
- "replication_slot": {
- "type": "string",
- "title": "Replication Slot",
- "description": "A plugin logical replication slot. Read about replication slots.",
- "order": 3
- },
- "publication": {
- "type": "string",
- "title": "Publication",
- "description": "A Postgres publication used for consuming changes. Read about publications and replication identities.",
- "order": 4
- },
- "initial_waiting_seconds": {
- "type": "integer",
- "title": "Initial Waiting Time in Seconds (Advanced)",
- "description": "The amount of time the connector will wait when it launches to determine if there is new data to sync or not. Defaults to 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about initial waiting time.",
- "default": 300,
- "order": 5,
- "min": 120,
- "max": 1200
- },
- "lsn_commit_behaviour": {
- "type": "string",
- "title": "LSN commit behaviour",
- "description": "Determines when Airbtye should flush the LSN of processed WAL logs in the source database. `After loading Data in the destination` is default. If `While reading Data` is selected, in case of a downstream failure (while loading data into the destination), next sync would result in a full sync.",
- "enum": [ "While reading Data", "After loading Data in the destination" ],
- "default": "After loading Data in the destination",
- "order": 6
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ],
- "group": "security"
- }
- },
- "groups": [ {
- "id": "db"
- }, {
- "id": "auth"
- }, {
- "id": "security",
- "title": "Security"
- }, {
- "id": "advanced",
- "title": "Advanced"
- } ]
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
- }
- }, {
- "sourceDefinitionId": "6ff047c0-f5d5-4ce5-8c81-204a830fa7e1",
- "name": "AWS CloudTrail",
- "dockerRepository": "airbyte/source-aws-cloudtrail",
- "dockerImageTag": "0.1.5",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/aws-cloudtrail",
- "icon": "awscloudtrail.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/aws-cloudtrail",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Aws CloudTrail Spec",
- "type": "object",
- "required": [ "aws_key_id", "aws_secret_key", "aws_region_name", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "aws_key_id": {
- "type": "string",
- "title": "Key ID",
- "description": "AWS CloudTrail Access Key ID. See the docs for more information on how to obtain this key.",
- "airbyte_secret": true
- },
- "aws_secret_key": {
- "type": "string",
- "title": "Secret Key",
- "description": "AWS CloudTrail Access Key ID. See the docs for more information on how to obtain this key.",
- "airbyte_secret": true
- },
- "aws_region_name": {
- "type": "string",
- "title": "Region Name",
- "description": "The default AWS Region to use, for example, us-west-1 or us-west-2. When specifying a Region inline during client initialization, this property is named region_name."
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date you would like to replicate data. Data in AWS CloudTrail is available for last 90 days only. Format: YYYY-MM-DD.",
- "examples": [ "2021-01-01" ],
- "default": "1970-01-01",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "format": "date"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "c6b0a29e-1da9-4512-9002-7bfd0cba2246",
- "name": "Amazon Ads",
- "dockerRepository": "airbyte/source-amazon-ads",
- "dockerImageTag": "1.0.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-ads",
- "icon": "amazonads.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-ads",
- "connectionSpecification": {
- "title": "Amazon Ads Spec",
- "type": "object",
- "properties": {
- "auth_type": {
- "title": "Auth Type",
- "const": "oauth2.0",
- "order": 0,
- "type": "string"
- },
- "client_id": {
- "title": "Client ID",
- "description": "The client ID of your Amazon Ads developer application. See the docs for more information.",
- "order": 1,
- "type": "string"
- },
- "client_secret": {
- "title": "Client Secret",
- "description": "The client secret of your Amazon Ads developer application. See the docs for more information.",
- "airbyte_secret": true,
- "order": 2,
- "type": "string"
- },
- "refresh_token": {
- "title": "Refresh Token",
- "description": "Amazon Ads refresh token. See the docs for more information on how to obtain this token.",
- "airbyte_secret": true,
- "order": 3,
- "type": "string"
- },
- "region": {
- "title": "Region",
- "description": "Region to pull data from (EU/NA/FE). See docs for more details.",
- "enum": [ "NA", "EU", "FE" ],
- "type": "string",
- "default": "NA",
- "order": 4
- },
- "start_date": {
- "title": "Start Date",
- "description": "The Start date for collecting reports, should not be more than 60 days in the past. In YYYY-MM-DD format",
- "examples": [ "2022-10-10", "2022-10-22" ],
- "order": 5,
- "type": "string"
- },
- "profiles": {
- "title": "Profile IDs",
- "description": "Profile IDs you want to fetch data for. See docs for more details.",
- "order": 6,
- "type": "array",
- "items": {
- "type": "integer"
- }
- },
- "state_filter": {
- "title": "State Filter",
- "description": "Reflects the state of the Display, Product, and Brand Campaign streams as enabled, paused, or archived. If you do not populate this field, it will be ignored completely.",
- "items": {
- "type": "string",
- "enum": [ "enabled", "paused", "archived" ]
- },
- "type": "array",
- "uniqueItems": true,
- "order": 7
- },
- "look_back_window": {
- "title": "Look Back Window",
- "description": "The amount of days to go back in time to get the updated data from Amazon Ads",
- "examples": [ 3, 10 ],
- "type": "integer",
- "default": 3,
- "order": 8
- },
- "report_record_types": {
- "title": "Report Record Types",
- "description": "Optional configuration which accepts an array of string of record types. Leave blank for default behaviour to pull all report types. Use this config option only if you want to pull specific report type(s). See docs for more details",
- "items": {
- "type": "string",
- "enum": [ "adGroups", "asins", "asins_keywords", "asins_targets", "campaigns", "keywords", "productAds", "targets" ]
- },
- "type": "array",
- "uniqueItems": true,
- "order": 9
- }
- },
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "additionalProperties": true
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "auth_type" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.amazon.com", "advertising-api.amazon.com", "advertising-api-eu.amazon.com", "advertising-api-fe.amazon.com" ]
- }
- }, {
- "sourceDefinitionId": "e55879a8-0ef8-4557-abcf-ab34c53ec460",
- "name": "Amazon Seller Partner",
- "dockerRepository": "airbyte/source-amazon-seller-partner",
- "dockerImageTag": "1.0.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-seller-partner",
- "icon": "amazonsellerpartner.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-seller-partner",
- "changelogUrl": "https://docs.airbyte.com/integrations/sources/amazon-seller-partner",
- "connectionSpecification": {
- "title": "Amazon Seller Partner Spec",
- "type": "object",
- "properties": {
- "app_id": {
- "title": "App Id",
- "description": "Your Amazon App ID",
- "airbyte_secret": true,
- "order": 0,
- "type": "string"
- },
- "auth_type": {
- "title": "Auth Type",
- "const": "oauth2.0",
- "order": 1,
- "type": "string"
- },
- "lwa_app_id": {
- "title": "LWA Client Id",
- "description": "Your Login with Amazon Client ID.",
- "order": 2,
- "type": "string"
- },
- "lwa_client_secret": {
- "title": "LWA Client Secret",
- "description": "Your Login with Amazon Client Secret.",
- "airbyte_secret": true,
- "order": 3,
- "type": "string"
- },
- "refresh_token": {
- "title": "Refresh Token",
- "description": "The Refresh Token obtained via OAuth flow authorization.",
- "airbyte_secret": true,
- "order": 4,
- "type": "string"
- },
- "aws_access_key": {
- "title": "AWS Access Key",
- "description": "Specifies the AWS access key used as part of the credentials to authenticate the user.",
- "airbyte_secret": true,
- "order": 5,
- "type": "string"
- },
- "aws_secret_key": {
- "title": "AWS Secret Access Key",
- "description": "Specifies the AWS secret key used as part of the credentials to authenticate the user.",
- "airbyte_secret": true,
- "order": 6,
- "type": "string"
- },
- "role_arn": {
- "title": "Role ARN",
- "description": "Specifies the Amazon Resource Name (ARN) of an IAM role that you want to use to perform operations requested using this profile. (Needs permission to 'Assume Role' STS).",
- "airbyte_secret": true,
- "order": 7,
- "type": "string"
- },
- "replication_start_date": {
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "order": 8,
- "type": "string"
- },
- "replication_end_date": {
- "title": "End Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data after this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$|^$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "order": 9,
- "type": "string"
- },
- "period_in_days": {
- "title": "Period In Days",
- "description": "Will be used for stream slicing for initial full_refresh sync when no updated state is present for reports that support sliced incremental sync.",
- "default": 90,
- "maximum": 90,
- "examples": [ "1", "10", "30", "60", "90" ],
- "order": 10,
- "type": "integer"
- },
- "report_options": {
- "title": "Report Options",
- "description": "Additional information passed to reports. This varies by report type. Must be a valid json string.",
- "examples": [ "{\"GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT\": {\"reportPeriod\": \"WEEK\"}}", "{\"GET_SOME_REPORT\": {\"custom\": \"true\"}}" ],
- "order": 11,
- "type": "string"
- },
- "max_wait_seconds": {
- "title": "Max wait time for reports (in seconds)",
- "description": "Sometimes report can take up to 30 minutes to generate. This will set the limit for how long to wait for a successful report.",
- "default": 500,
- "examples": [ "500", "1980" ],
- "order": 12,
- "type": "integer"
- },
- "aws_environment": {
- "title": "AWSEnvironment",
- "description": "An enumeration.",
- "enum": [ "PRODUCTION", "SANDBOX" ],
- "type": "string"
- },
- "region": {
- "title": "AWSRegion",
- "description": "An enumeration.",
- "enum": [ "AE", "AU", "BE", "BR", "CA", "DE", "EG", "ES", "FR", "GB", "IN", "IT", "JP", "MX", "NL", "PL", "SA", "SE", "SG", "TR", "UK", "US" ],
- "type": "string"
- }
- },
- "required": [ "app_id", "lwa_app_id", "lwa_client_secret", "refresh_token", "replication_start_date", "aws_environment", "region" ],
- "additionalProperties": true,
- "definitions": {
- "AWSEnvironment": {
- "title": "AWSEnvironment",
- "description": "An enumeration.",
- "enum": [ "PRODUCTION", "SANDBOX" ],
- "type": "string"
- },
- "AWSRegion": {
- "title": "AWSRegion",
- "description": "An enumeration.",
- "enum": [ "AE", "AU", "BE", "BR", "CA", "DE", "EG", "ES", "FR", "GB", "IN", "IT", "JP", "MX", "NL", "PL", "SA", "SE", "SG", "TR", "UK", "US" ],
- "type": "string"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "auth_type" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "app_id": {
- "type": "string",
- "path_in_connector_config": [ "app_id" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "lwa_app_id": {
- "type": "string"
- },
- "lwa_client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "lwa_app_id": {
- "type": "string",
- "path_in_connector_config": [ "lwa_app_id" ]
- },
- "lwa_client_secret": {
- "type": "string",
- "path_in_connector_config": [ "lwa_client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "983fd355-6bf3-4709-91b5-37afa391eeb6",
- "name": "Amazon SQS",
- "dockerRepository": "airbyte/source-amazon-sqs",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-sqs",
- "icon": "awssqs.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-sqs",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Amazon SQS Source Spec",
- "type": "object",
- "required": [ "queue_url", "region", "delete_messages" ],
- "additionalProperties": false,
- "properties": {
- "queue_url": {
- "title": "Queue URL",
- "description": "URL of the SQS Queue",
- "type": "string",
- "examples": [ "https://sqs.eu-west-1.amazonaws.com/1234567890/my-example-queue" ],
- "order": 0
- },
- "region": {
- "title": "AWS Region",
- "description": "AWS Region of the SQS Queue",
- "type": "string",
- "enum": [ "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ],
- "order": 1
- },
- "delete_messages": {
- "title": "Delete Messages After Read",
- "description": "If Enabled, messages will be deleted from the SQS Queue after being read. If Disabled, messages are left in the queue and can be read more than once. WARNING: Enabling this option can result in data loss in cases of failure, use with caution, see documentation for more detail. ",
- "type": "boolean",
- "default": false,
- "order": 2
- },
- "max_batch_size": {
- "title": "Max Batch Size",
- "description": "Max amount of messages to get in one batch (10 max)",
- "type": "integer",
- "examples": [ "5" ],
- "order": 3
- },
- "max_wait_time": {
- "title": "Max Wait Time",
- "description": "Max amount of time in seconds to wait for messages in a single poll (20 max)",
- "type": "integer",
- "examples": [ "5" ],
- "order": 4
- },
- "attributes_to_return": {
- "title": "Message Attributes To Return",
- "description": "Comma separated list of Mesage Attribute names to return",
- "type": "string",
- "examples": [ "attr1,attr2" ],
- "order": 5
- },
- "visibility_timeout": {
- "title": "Message Visibility Timeout",
- "description": "Modify the Visibility Timeout of the individual message from the Queue's default (seconds).",
- "type": "integer",
- "examples": [ "15" ],
- "order": 6
- },
- "access_key": {
- "title": "AWS IAM Access Key ID",
- "description": "The Access Key ID of the AWS IAM Role to use for pulling messages",
- "type": "string",
- "examples": [ "xxxxxHRNxxx3TBxxxxxx" ],
- "airbyte_secret": true,
- "order": 7
- },
- "secret_key": {
- "title": "AWS IAM Secret Key",
- "description": "The Secret Key of the AWS IAM Role to use for pulling messages",
- "type": "string",
- "examples": [ "hu+qE5exxxxT6o/ZrKsxxxxxxBhxxXLexxxxxVKz" ],
- "airbyte_secret": true,
- "order": 8
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "fa9f58c6-2d03-4237-aaa4-07d75e0c1396",
- "name": "Amplitude",
- "dockerRepository": "airbyte/source-amplitude",
- "dockerImageTag": "0.2.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/amplitude",
- "icon": "amplitude.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/amplitude",
- "connectionSpecification": {
- "$schema": "https://json-schema.org/draft-07/schema#",
- "title": "Amplitude Spec",
- "type": "object",
- "required": [ "api_key", "secret_key", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "data_region": {
- "type": "string",
- "title": "Data region",
- "description": "Amplitude data region server",
- "enum": [ "Standard Server", "EU Residency Server" ],
- "default": "Standard Server"
- },
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Amplitude API Key. See the setup guide for more information on how to obtain this key.",
- "airbyte_secret": true
- },
- "secret_key": {
- "type": "string",
- "title": "Secret Key",
- "description": "Amplitude Secret Key. See the setup guide for more information on how to obtain this key.",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Replication Start Date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2021-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2021-01-25T00:00:00Z" ]
- },
- "request_time_range": {
- "type": "integer",
- "title": "Request time range",
- "description": "According to Considerations too big time range in request can cause a timeout error. In this case, set shorter time interval in hours.",
- "default": 24,
- "minimum": 1,
- "maximum": 8760
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "amplitude.com", "analytics.eu.amplitude.com" ]
- }
- }, {
- "sourceDefinitionId": "47f17145-fe20-4ef5-a548-e29b048adf84",
- "name": "Apify Dataset",
- "dockerRepository": "airbyte/source-apify-dataset",
- "dockerImageTag": "0.1.11",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/apify-dataset",
- "icon": "apify.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/apify-dataset",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Apify Dataset Spec",
- "type": "object",
- "required": [ "datasetId" ],
- "additionalProperties": false,
- "properties": {
- "datasetId": {
- "type": "string",
- "title": "Dataset ID",
- "description": "ID of the dataset you would like to load to Airbyte."
- },
- "clean": {
- "type": "boolean",
- "title": "Clean",
- "description": "If set to true, only clean items will be downloaded from the dataset. See description of what clean means in Apify API docs. If not sure, set clean to false."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "b4375641-e270-41d3-9c20-4f9cecad87a8",
- "name": "Appfollow",
- "dockerRepository": "airbyte/source-appfollow",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/appfollow",
- "icon": "appfollow.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/appfollow",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Appfollow Spec",
- "type": "object",
- "required": [ "ext_id", "country", "cid", "api_secret" ],
- "additionalProperties": true,
- "properties": {
- "ext_id": {
- "type": "string",
- "title": "app external id",
- "description": "for App Store — this is 9-10 digits identification number; for Google Play — this is bundle name;"
- },
- "cid": {
- "type": "string",
- "title": "client id",
- "description": "client id provided by Appfollow"
- },
- "api_secret": {
- "type": "string",
- "title": "api secret",
- "description": "api secret provided by Appfollow",
- "airbyte_secret": true
- },
- "country": {
- "type": "string",
- "title": "country",
- "description": "getting data by Country"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "e59c8416-c2fa-4bd3-9e95-52677ea281c1",
- "name": "Apple Search Ads",
- "dockerRepository": "airbyte/source-apple-search-ads",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/apple-search-ads",
- "icon": "apple.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/apple-search-ads",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Apple Search Ads Spec",
- "type": "object",
- "required": [ "org_id", "client_id", "client_secret", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "org_id": {
- "type": "integer",
- "title": "Org Id",
- "description": "The identifier of the organization that owns the campaign. Your Org Id is the same as your account in the Apple Search Ads UI."
- },
- "client_id": {
- "type": "string",
- "title": "Client Id",
- "description": "A user identifier for the token request. See here",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "A string that authenticates the user’s setup request. See here",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "Start getting data from that date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "2020-01-01" ]
- },
- "end_date": {
- "type": "string",
- "title": "End Date",
- "description": "Data is retrieved until that date (included)",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "2021-01-01" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "16447954-e6a8-4593-b140-43dea13bc457",
- "name": "AppsFlyer",
- "dockerRepository": "airbyte/source-appsflyer",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/appsflyer",
- "icon": "appsflyer.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Appsflyer Spec",
- "type": "object",
- "required": [ "app_id", "api_token", "start_date" ],
- "additionalProperties": false,
- "properties": {
- "app_id": {
- "type": "string",
- "description": "App identifier as found in AppsFlyer."
- },
- "api_token": {
- "type": "string",
- "description": "Pull API token for authentication. If you change the account admin, the token changes, and you must update scripts with the new token. Get the API token in the Dashboard.",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "description": "The default value to use if no bookmark exists for an endpoint. Raw Reports historical lookback is limited to 90 days.",
- "examples": [ "2021-11-16", "2021-11-16 15:00:00" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}( [0-9]{2}:[0-9]{2}:[0-9]{2})?$"
- },
- "timezone": {
- "type": "string",
- "description": "Time zone in which date times are stored. The project timezone may be found in the App settings in the AppsFlyer console.",
- "default": "UTC",
- "examples": [ "US/Pacific", "UTC" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "2af123bf-0aaf-4e0d-9784-cb497f23741a",
- "name": "Appstore",
- "dockerRepository": "airbyte/source-appstore-singer",
- "dockerImageTag": "0.2.6",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/appstore",
- "icon": "appstore.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/appstore",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Appstore Singer Spec",
- "type": "object",
- "required": [ "key_id", "private_key", "issuer_id", "vendor", "start_date" ],
- "additionalProperties": false,
- "properties": {
- "key_id": {
- "type": "string",
- "title": "Key ID",
- "description": "Appstore Key ID. See the docs for more information on how to obtain this key."
- },
- "private_key": {
- "type": "string",
- "title": "Private Key",
- "description": "Appstore Private Key. See the docs for more information on how to obtain this key.",
- "airbyte_secret": true,
- "multiline": true
- },
- "issuer_id": {
- "type": "string",
- "title": "Issuer ID",
- "description": "Appstore Issuer ID. See the docs for more information on how to obtain this ID."
- },
- "vendor": {
- "type": "string",
- "title": "Vendor ID",
- "description": "Appstore Vendor ID. See the docs for more information on how to obtain this ID."
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2020-11-16T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d0243522-dccf-4978-8ba0-37ed47a0bdbf",
- "name": "Asana",
- "dockerRepository": "airbyte/source-asana",
- "dockerImageTag": "0.1.5",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/asana",
- "icon": "asana.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Asana Spec",
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authentication mechanism",
- "description": "Choose how to authenticate to Github",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "Authenticate with Personal Access Token",
- "required": [ "personal_access_token" ],
- "properties": {
- "option_title": {
- "type": "string",
- "title": "Credentials title",
- "description": "PAT Credentials",
- "const": "PAT Credentials"
- },
- "personal_access_token": {
- "type": "string",
- "title": "Personal Access Token",
- "description": "Asana Personal Access Token (generate yours here).",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Authenticate via Asana (Oauth)",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "option_title": {
- "type": "string",
- "title": "Credentials title",
- "description": "OAuth Credentials",
- "const": "OAuth Credentials"
- },
- "client_id": {
- "type": "string",
- "title": "",
- "description": "",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "",
- "description": "",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "",
- "description": "",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "1" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta"
- }, {
- "sourceDefinitionId": "4e8c9fa0-3634-499b-b948-11581b5c3efa",
- "name": "Ashby",
- "dockerRepository": "airbyte/source-ashby",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/ashby",
- "icon": "ashby.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://developers.ashbyhq.com/reference/introduction",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Ashby Spec",
- "type": "object",
- "required": [ "api_key", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "Ashby API key",
- "description": "The Ashby API Key, see doc here.",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2017-01-25T00:00:00Z" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6c504e48-14aa-4221-9a72-19cf5ff1ae78",
- "name": "Auth0",
- "dockerRepository": "airbyte/source-auth0",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/auth0",
- "icon": "auth0.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://auth0.com/docs/api/management/v2/",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Auth0 Management API Spec",
- "type": "object",
- "required": [ "base_url", "credentials" ],
- "additionalProperties": true,
- "properties": {
- "base_url": {
- "type": "string",
- "title": "Base URL",
- "examples": [ "https://dev-yourOrg.us.auth0.com/" ],
- "description": "The Authentication API is served over HTTPS. All URLs referenced in the documentation have the following base `https://YOUR_DOMAIN`"
- },
- "credentials": {
- "title": "Authentication Method",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2 Confidential Application",
- "required": [ "auth_type", "client_id", "client_secret", "audience" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "title": "Authentication Method",
- "const": "oauth2_confidential_application",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "description": "Your application's Client ID. You can find this value on the application's settings tab after you login the admin portal.",
- "type": "string",
- "examples": [ "Client_ID" ]
- },
- "client_secret": {
- "title": "Client Secret",
- "description": "Your application's Client Secret. You can find this value on the application's settings tab after you login the admin portal.",
- "type": "string",
- "examples": [ "Client_Secret" ],
- "airbyte_secret": true
- },
- "audience": {
- "title": "Audience",
- "description": "The audience for the token, which is your API. You can find this in the Identifier field on your API's settings tab",
- "type": "string",
- "examples": [ "https://dev-yourOrg.us.auth0.com/api/v2/" ]
- }
- }
- }, {
- "type": "object",
- "title": "OAuth2 Access Token",
- "required": [ "access_token", "auth_type" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "title": "Authentication Method",
- "const": "oauth2_access_token",
- "order": 0
- },
- "access_token": {
- "title": "OAuth2 Access Token",
- "description": "Also called API Access Token The access token used to call the Auth0 Management API Token. It's a JWT that contains specific grant permissions knowns as scopes.",
- "type": "string",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "798ae795-5189-42b6-b64e-3cb91db93338",
- "name": "Azure Table Storage",
- "dockerRepository": "airbyte/source-azure-table",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/azure-table",
- "icon": "azureblobstorage.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Azure Data Table Spec",
- "type": "object",
- "required": [ "storage_account_name", "storage_access_key" ],
- "properties": {
- "storage_account_name": {
- "title": "Account Name",
- "type": "string",
- "description": "The name of your storage account.",
- "order": 0,
- "airbyte_secret": false
- },
- "storage_access_key": {
- "title": "Access Key",
- "type": "string",
- "description": "Azure Table Storage Access Key. See the docs for more information on how to obtain this key.",
- "order": 1,
- "airbyte_secret": true
- },
- "storage_endpoint_suffix": {
- "title": "Endpoint Suffix",
- "type": "string",
- "description": "Azure Table Storage service account URL suffix. See the docs for more information on how to obtain endpoint suffix",
- "order": 2,
- "default": "core.windows.net",
- "examples": [ "core.windows.net", "core.chinacloudapi.cn" ],
- "airbyte_secret": false
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "fdaaba68-4875-4ed9-8fcd-4ae1e0a25093",
- "name": "Azure Blob Storage",
- "dockerRepository": "airbyte/source-azure-blob-storage",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/azure-blob-storage",
- "icon": "azureblobstorage.svg",
- "sourceType": "file",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/azureblobstorage",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "AzureBlobStorage Source Spec",
- "type": "object",
- "required": [ "azure_blob_storage_account_name", "azure_blob_storage_account_key", "azure_blob_storage_container_name", "format" ],
- "additionalProperties": true,
- "properties": {
- "azure_blob_storage_endpoint": {
- "title": "Endpoint Domain Name",
- "type": "string",
- "default": "blob.core.windows.net",
- "description": "This is Azure Blob Storage endpoint domain name. Leave default value (or leave it empty if run container from command line) to use Microsoft native from example.",
- "examples": [ "blob.core.windows.net" ]
- },
- "azure_blob_storage_container_name": {
- "title": "Azure blob storage container (Bucket) Name",
- "type": "string",
- "description": "The name of the Azure blob storage container.",
- "examples": [ "airbytetescontainername" ]
- },
- "azure_blob_storage_account_name": {
- "title": "Azure Blob Storage account name",
- "type": "string",
- "description": "The account's name of the Azure Blob Storage.",
- "examples": [ "airbyte5storage" ]
- },
- "azure_blob_storage_account_key": {
- "title": "Azure Blob Storage account key",
- "description": "The Azure blob storage account key.",
- "airbyte_secret": true,
- "type": "string",
- "examples": [ "Z8ZkZpteggFx394vm+PJHnGTvdRncaYS+JhLKdj789YNmD+iyGTnG+PV+POiuYNhBg/ACS+LKjd%4FG3FHGN12Nd==" ]
- },
- "azure_blob_storage_blobs_prefix": {
- "title": "Azure Blob Storage blobs prefix",
- "description": "The Azure blob storage prefix to be applied",
- "type": "string",
- "examples": [ "FolderA/FolderB/" ]
- },
- "azure_blob_storage_schema_inference_limit": {
- "title": "Azure Blob Storage schema inference limit",
- "description": "The Azure blob storage blobs to scan for inferring the schema, useful on large amounts of data with consistent structure",
- "type": "integer",
- "examples": [ "500" ]
- },
- "format": {
- "title": "Input Format",
- "type": "object",
- "description": "Input data format",
- "oneOf": [ {
- "title": "JSON Lines: newline-delimited JSON",
- "required": [ "format_type" ],
- "properties": {
- "format_type": {
- "type": "string",
- "const": "JSONL"
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "971c3e1e-78a5-411e-ad56-c4052b50876b",
- "name": "Babelforce",
- "dockerRepository": "airbyte/source-babelforce",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/babelforce",
- "icon": "babelforce.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Babelforce Spec",
- "type": "object",
- "required": [ "region", "access_key_id", "access_token" ],
- "additionalProperties": false,
- "properties": {
- "region": {
- "type": "string",
- "title": "Region",
- "default": "services",
- "description": "Babelforce region",
- "enum": [ "services", "us-east", "ap-southeast" ],
- "order": 1
- },
- "access_key_id": {
- "type": "string",
- "title": "Access Key ID",
- "description": "The Babelforce access key ID",
- "airbyte_secret": true,
- "order": 2
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The Babelforce access token",
- "airbyte_secret": true,
- "order": 3
- },
- "date_created_from": {
- "type": "integer",
- "title": "Date Created from",
- "description": "Timestamp in Unix the replication from Babelforce API will start from. For example 1651363200 which corresponds to 2022-05-01 00:00:00.",
- "examples": [ 1651363200 ],
- "order": 4
- },
- "date_created_to": {
- "type": "integer",
- "title": "Date Created to",
- "description": "Timestamp in Unix the replication from Babelforce will be up to. For example 1651363200 which corresponds to 2022-05-01 00:00:00.",
- "examples": [ 1651363200 ],
- "order": 5
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "90916976-a132-4ce9-8bce-82a03dd58788",
- "name": "BambooHR",
- "dockerRepository": "airbyte/source-bamboo-hr",
- "dockerImageTag": "0.2.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/bamboo-hr",
- "icon": "bamboohr.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/bamboo-hr",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Bamboo HR Spec",
- "type": "object",
- "required": [ "subdomain", "api_key" ],
- "additionalProperties": true,
- "properties": {
- "subdomain": {
- "type": "string",
- "description": "Sub Domain of bamboo hr"
- },
- "api_key": {
- "type": "string",
- "description": "Api key of bamboo hr",
- "airbyte_secret": true
- },
- "custom_reports_fields": {
- "type": "string",
- "default": "",
- "description": "Comma-separated list of fields to include in custom reports."
- },
- "custom_reports_include_default_fields": {
- "type": "boolean",
- "default": true,
- "description": "If true, the custom reports endpoint will include the default fields defined here: https://documentation.bamboohr.com/docs/list-of-field-names."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "59c5501b-9f95-411e-9269-7143c939adbd",
- "name": "BigCommerce",
- "dockerRepository": "airbyte/source-bigcommerce",
- "dockerImageTag": "0.1.10",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/bigcommerce",
- "icon": "bigcommerce.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/bigcommerce",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "BigCommerce Source CDK Specifications",
- "type": "object",
- "required": [ "start_date", "store_hash", "access_token" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date you would like to replicate data. Format: YYYY-MM-DD.",
- "examples": [ "2021-01-01" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
- },
- "store_hash": {
- "type": "string",
- "title": "Store Hash",
- "description": "The hash code of the store. For https://api.bigcommerce.com/stores/HASH_CODE/v3/, The store's hash code is 'HASH_CODE'."
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "bfd1ddf8-ae8a-4620-b1d7-55597d2ba08c",
- "name": "BigQuery",
- "dockerRepository": "airbyte/source-bigquery",
- "dockerImageTag": "0.2.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/bigquery",
- "icon": "bigquery.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/bigquery",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "BigQuery Source Spec",
- "type": "object",
- "required": [ "project_id", "credentials_json" ],
- "properties": {
- "project_id": {
- "type": "string",
- "description": "The GCP project ID for the project containing the target BigQuery dataset.",
- "title": "Project ID"
- },
- "dataset_id": {
- "type": "string",
- "description": "The dataset ID to search for tables and views. If you are only loading data from one dataset, setting this option could result in much faster schema discovery.",
- "title": "Default Dataset ID"
- },
- "credentials_json": {
- "type": "string",
- "description": "The contents of your Service Account Key JSON file. See the docs for more information on how to obtain this key.",
- "title": "Credentials JSON",
- "airbyte_secret": true
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": true,
- "supportsDBT": true,
- "supported_destination_sync_modes": [ ],
- "supported_sync_modes": [ "overwrite", "append", "append_dedup" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "47f25999-dd5e-4636-8c39-e7cea2453331",
- "name": "Bing Ads",
- "dockerRepository": "airbyte/source-bing-ads",
- "dockerImageTag": "0.1.20",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/bing-ads",
- "icon": "bingads.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/bing-ads",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Bing Ads Spec",
- "type": "object",
- "required": [ "developer_token", "client_id", "refresh_token", "reports_start_date" ],
- "additionalProperties": true,
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "oauth2.0"
- },
- "tenant_id": {
- "type": "string",
- "title": "Tenant ID",
- "description": "The Tenant ID of your Microsoft Advertising developer application. Set this to \"common\" unless you know you need a different value.",
- "airbyte_secret": true,
- "default": "common",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your Microsoft Advertising developer application.",
- "airbyte_secret": true,
- "order": 1
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your Microsoft Advertising developer application.",
- "default": "",
- "airbyte_secret": true,
- "order": 2
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "Refresh Token to renew the expired Access Token.",
- "airbyte_secret": true,
- "order": 3
- },
- "developer_token": {
- "type": "string",
- "title": "Developer Token",
- "description": "Developer token associated with user. See more info in the docs.",
- "airbyte_secret": true,
- "order": 4
- },
- "reports_start_date": {
- "type": "string",
- "title": "Reports replication start date",
- "format": "date",
- "default": "2020-01-01",
- "description": "The start date from which to begin replicating report data. Any data generated before this date will not be replicated in reports. This is a UTC date in YYYY-MM-DD format.",
- "order": 5
- },
- "lookback_window": {
- "title": "Lookback window",
- "description": "Also known as attribution or conversion window. How far into the past to look for records (in days). If your conversion window has an hours/minutes granularity, round it up to the number of days exceeding. Used only for performance report streams in incremental mode.",
- "type": "integer",
- "default": 0,
- "minimum": 0,
- "maximum": 90,
- "order": 6
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "auth_method" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "tenant_id": {
- "type": "string",
- "path_in_connector_config": [ "tenant_id" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "bingads.microsoft.com", "login.microsoftonline.com", "login.live.com", "login.windows-ppe.net", "ads.microsoft.com", "api.ads.microsoft.com" ]
- }
- }, {
- "sourceDefinitionId": "63cea06f-1c75-458d-88fe-ad48c7cb27fd",
- "name": "Braintree",
- "dockerRepository": "airbyte/source-braintree",
- "dockerImageTag": "0.1.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/braintree",
- "icon": "braintree.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/braintree",
- "connectionSpecification": {
- "title": "Braintree Spec",
- "type": "object",
- "properties": {
- "merchant_id": {
- "title": "Merchant ID",
- "description": "The unique identifier for your entire gateway account. See the docs for more information on how to obtain this ID.",
- "name": "Merchant ID",
- "type": "string"
- },
- "public_key": {
- "title": "Public Key",
- "description": "Braintree Public Key. See the docs for more information on how to obtain this key.",
- "name": "Public Key",
- "type": "string"
- },
- "private_key": {
- "title": "Private Key",
- "description": "Braintree Private Key. See the docs for more information on how to obtain this key.",
- "name": "Private Key",
- "airbyte_secret": true,
- "type": "string"
- },
- "start_date": {
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "name": "Start Date",
- "examples": [ "2020", "2020-12-30", "2020-11-22 20:20:05" ],
- "type": "string",
- "format": "date-time"
- },
- "environment": {
- "title": "Environment",
- "description": "Environment specifies where the data will come from.",
- "name": "Environment",
- "examples": [ "sandbox", "production", "qa", "development" ],
- "enum": [ "Development", "Sandbox", "Qa", "Production" ],
- "type": "string"
- }
- },
- "required": [ "merchant_id", "public_key", "private_key", "environment" ]
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "7c37685e-8512-4901-addf-9afbef6c0de9",
- "name": "Breezometer",
- "dockerRepository": "airbyte/source-breezometer",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/breezometer",
- "icon": "breezometer.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/breezometer",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Breezometer Spec",
- "type": "object",
- "required": [ "api_key", "latitude", "longitude" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "tittle": "API Key",
- "description": "Your API Access Key. See here.",
- "airbyte_secret": true
- },
- "latitude": {
- "type": "string",
- "tittle": "Latitude",
- "description": "Latitude of the monitored location.",
- "examples": [ "54.675003" ]
- },
- "longitude": {
- "type": "string",
- "tittle": "Longitude",
- "description": "Longitude of the monitored location.",
- "examples": [ "-113.550282" ]
- },
- "days_to_forecast": {
- "type": "integer",
- "tittle": "Days to Forecast",
- "description": "Number of days to forecast. Minimum 1, maximum 3. Valid for Polen and Weather Forecast streams.",
- "examples": [ 3 ]
- },
- "hours_to_forecast": {
- "type": "integer",
- "tittle": "Hours to Forecast",
- "description": "Number of hours to forecast. Minimum 1, maximum 96. Valid for Air Quality Forecast stream.",
- "examples": [ 30 ]
- },
- "historic_hours": {
- "type": "integer",
- "tittle": "Historic Hours",
- "description": "Number of hours retireve from Air Quality History stream. Minimum 1, maximum 720.",
- "examples": [ 30 ]
- },
- "radius": {
- "type": "integer",
- "tittle": "Radius",
- "description": "Desired radius from the location provided. Minimum 5, maximum 100. Valid for Wildfires streams.",
- "examples": [ 50 ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "dc98a6ad-2dd1-47b6-9529-2ec35820f9c6",
- "name": "CallRail",
- "dockerRepository": "airbyte/source-callrail",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/callrail",
- "icon": "callrail.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/callrail",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Call Rail Spec",
- "type": "object",
- "required": [ "api_key", "account_id", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API access key",
- "airbyte_secret": true
- },
- "account_id": {
- "type": "string",
- "description": "Account ID",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "description": "Start getting data from that date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "%Y-%m-%d" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "bb1a6d31-6879-4819-a2bd-3eed299ea8e2",
- "name": "Cart.com",
- "dockerRepository": "airbyte/source-cart",
- "dockerImageTag": "0.2.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/cart",
- "icon": "cart.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/cart",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Cart.com Spec",
- "type": "object",
- "required": [ "start_date" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authorization Method",
- "description": "",
- "type": "object",
- "oneOf": [ {
- "title": "Central API Router",
- "type": "object",
- "order": 0,
- "required": [ "auth_type", "user_name", "user_secret", "site_id" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "CENTRAL_API_ROUTER",
- "order": 0
- },
- "user_name": {
- "type": "string",
- "title": "User Name",
- "description": "Enter your application's User Name",
- "airbyte_secret": true,
- "order": 1
- },
- "user_secret": {
- "type": "string",
- "title": "User Secret",
- "description": "Enter your application's User Secret",
- "airbyte_secret": true,
- "order": 2
- },
- "site_id": {
- "type": "string",
- "title": "Site ID",
- "description": "You can determine a site provisioning site Id by hitting https://site.com/store/sitemonitor.aspx and reading the response param PSID",
- "airbyte_secret": true,
- "order": 3
- }
- }
- }, {
- "title": "Single Store Access Token",
- "type": "object",
- "order": 1,
- "required": [ "auth_type", "access_token", "store_name" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "SINGLE_STORE_ACCESS_TOKEN",
- "order": 0
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "airbyte_secret": true,
- "order": 1,
- "description": "Access Token for making authenticated requests."
- },
- "store_name": {
- "type": "string",
- "title": "Store Name",
- "order": 2,
- "description": "The name of Cart.com Online Store. All API URLs start with https://[mystorename.com]/api/v1/, where [mystorename.com] is the domain name of your store."
- }
- }
- } ]
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "The date from which you'd like to replicate the data",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2021-01-01T00:00:00Z" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "686473f1-76d9-4994-9cc7-9b13da46147c",
- "name": "Chargebee",
- "dockerRepository": "airbyte/source-chargebee",
- "dockerImageTag": "0.2.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/chargebee",
- "icon": "chargebee.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://apidocs.chargebee.com/docs/api",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Chargebee Spec",
- "type": "object",
- "required": [ "site", "site_api_key", "start_date", "product_catalog" ],
- "additionalProperties": true,
- "properties": {
- "site_api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Chargebee API Key. See the docs for more information on how to obtain this key.",
- "airbyte_secret": true,
- "order": 0
- },
- "site": {
- "type": "string",
- "title": "Site",
- "description": "The site prefix for your Chargebee instance.",
- "examples": [ "airbyte-test" ],
- "order": 1
- },
- "start_date": {
- "type": "string",
- "format": "date-time",
- "title": "Start Date",
- "description": "UTC date and time in the format 2021-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2021-01-25T00:00:00Z" ],
- "order": 2
- },
- "product_catalog": {
- "type": "string",
- "title": "Product Catalog",
- "description": "Product Catalog version of your Chargebee site. Instructions on how to find your version you may find here under `API Version` section.",
- "enum": [ "1.0", "2.0" ],
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*.chargebee.com" ]
- }
- }, {
- "sourceDefinitionId": "9b2d3607-7222-4709-9fa2-c2abdebbdd88",
- "name": "Chargify",
- "dockerRepository": "airbyte/source-chargify",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/chargify",
- "icon": "chargify.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/chargify",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Chargify Spec",
- "type": "object",
- "required": [ "api_key", "domain" ],
- "additionalProperties": false,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "Chargify API Key.",
- "airbyte_secret": true
- },
- "domain": {
- "type": "string",
- "description": "Chargify domain. Normally this domain follows the following format companyname.chargify.com"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "b6604cbd-1b12-4c08-8767-e140d0fb0877",
- "name": "Chartmogul",
- "dockerRepository": "airbyte/source-chartmogul",
- "dockerImageTag": "0.2.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/chartmogul",
- "icon": "chartmogul.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/chartmogul",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Chartmogul Spec",
- "type": "object",
- "required": [ "api_key", "start_date", "interval" ],
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API key",
- "description": "Your Chartmogul API key. See the docs for info on how to obtain this.",
- "airbyte_secret": true,
- "order": 0
- },
- "start_date": {
- "type": "string",
- "title": "Start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. When feasible, any data before this date will not be replicated.",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "order": 1,
- "format": "date-time"
- },
- "interval": {
- "type": "string",
- "title": "Interval",
- "description": "Some APIs such as Metrics require intervals to cluster data.",
- "enum": [ "day", "week", "month", "quarter" ],
- "default": "month",
- "order": 2
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.chartmogul.com" ]
- }
- }, {
- "sourceDefinitionId": "bad83517-5e54-4a3d-9b53-63e85fbd4d7c",
- "name": "ClickHouse",
- "dockerRepository": "airbyte/source-clickhouse",
- "dockerImageTag": "0.1.17",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/clickhouse",
- "icon": "clickhouse.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/clickhouse",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "ClickHouse Source Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username" ],
- "properties": {
- "host": {
- "description": "The host endpoint of the Clickhouse cluster.",
- "title": "Host",
- "type": "string",
- "order": 0
- },
- "port": {
- "description": "The port of the database.",
- "title": "Port",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 8123,
- "examples": [ "8123" ],
- "order": 1
- },
- "database": {
- "description": "The name of the database.",
- "title": "Database",
- "type": "string",
- "examples": [ "default" ],
- "order": 2
- },
- "username": {
- "description": "The username which is used to access the database.",
- "title": "Username",
- "type": "string",
- "order": 3
- },
- "password": {
- "description": "The password associated with this username.",
- "title": "Password",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (Eg. key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
- "title": "JDBC URL Parameters (Advanced)",
- "type": "string",
- "order": 5
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL.",
- "type": "boolean",
- "default": true,
- "order": 6
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
- }
- }, {
- "sourceDefinitionId": "311a7a27-3fb5-4f7e-8265-5e4afe258b66",
- "name": "ClickUp",
- "dockerRepository": "airbyte/source-clickup-api",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/click-up",
- "icon": "clickup.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "ClickUp Api Spec",
- "type": "object",
- "required": [ "api_token" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "type": "string",
- "description": "Every ClickUp API call required authentication. This field is your personal API token. See here.",
- "airbyte_secret": true
- },
- "team_id": {
- "type": "string",
- "description": "The ID of your team in ClickUp. Retrieve it from the `/team` of the ClickUp API. See here."
- },
- "space_id": {
- "type": "string",
- "description": "The ID of your space in your workspace. Retrieve it from the `/team/{team_id}/space` of the ClickUp API. See here."
- },
- "folder_id": {
- "type": "string",
- "description": "The ID of your folder in your space. Retrieve it from the `/space/{space_id}/folder` of the ClickUp API. See here."
- },
- "list_id": {
- "type": "string",
- "description": "The ID of your list in your folder. Retrieve it from the `/folder/{folder_id}/list` of the ClickUp API. See here."
- },
- "include_closed_tasks": {
- "title": "Include Closed Tasks",
- "type": "boolean",
- "default": false,
- "description": "Include or exclude closed tasks. By default, they are excluded. See here."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "dfffecb7-9a13-43e9-acdc-b92af7997ca9",
- "name": "Close.com",
- "dockerRepository": "airbyte/source-close-com",
- "dockerImageTag": "0.2.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/close-com",
- "icon": "close.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/close-com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Close.com Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "Close.com API key (usually starts with 'api_'; find yours here).",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "description": "The start date to sync data. Leave blank for full sync. Format: YYYY-MM-DD.",
- "examples": [ "2021-01-01" ],
- "default": "2021-01-01",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.close.com" ]
- }
- }, {
- "sourceDefinitionId": "9cdd4183-d0ba-40c3-aad3-6f46d4103974",
- "name": "CoinGecko Coins",
- "dockerRepository": "airbyte/source-coingecko-coins",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/coingecko-coins",
- "icon": "coingeckocoins.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "CoinGecko Coins Spec",
- "type": "object",
- "required": [ "coin_id", "vs_currency", "days", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API Key (for pro users)",
- "airbyte_secret": true,
- "order": 0
- },
- "coin_id": {
- "type": "string",
- "description": "CoinGecko coin ID (e.g. bitcoin). Can be retrieved from the\n`/coins/list` endpoint.\n",
- "order": 1
- },
- "vs_currency": {
- "type": "string",
- "description": "The target currency of market data (e.g. usd, eur, jpy, etc.)\n",
- "order": 2
- },
- "days": {
- "type": "string",
- "description": "The number of days of data for market chart.\n",
- "enum": [ "1", "7", "14", "30", "90", "180", "365", "max" ],
- "default": "30",
- "order": 3
- },
- "start_date": {
- "type": "string",
- "description": "The start date for the historical data stream in dd-mm-yyyy format.\n",
- "format": "date",
- "pattern": "^[0-9]{2}-[0-9]{2}-[0-9]{4}$",
- "order": 4
- },
- "end_date": {
- "type": "string",
- "description": "The end date for the historical data stream in dd-mm-yyyy format.\n",
- "format": "date",
- "pattern": "^[0-9]{2}-[0-9]{2}-[0-9]{4}$",
- "order": 5
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "9fa5862c-da7c-11eb-8d19-0242ac130003",
- "name": "Cockroachdb",
- "dockerRepository": "airbyte/source-cockroachdb",
- "dockerImageTag": "0.1.22",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/cockroachdb",
- "icon": "cockroachdb.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/cockroachdb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Cockroach Source Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username" ],
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 5432,
- "examples": [ "5432" ],
- "order": 1
- },
- "database": {
- "title": "DB Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 2
- },
- "username": {
- "title": "User",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (Eg. key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
- "title": "JDBC URL Parameters (Advanced)",
- "type": "string",
- "order": 5
- },
- "ssl": {
- "title": "Connect using SSL",
- "description": "Encrypt client/server communications for increased security.",
- "type": "boolean",
- "default": false,
- "order": 6
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "${host}" ]
- }
- }, {
- "sourceDefinitionId": "27f910fd-f832-4b2e-bcfd-6ab342e434d8",
- "name": "Coda",
- "dockerRepository": "airbyte/source-coda",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/coda",
- "icon": "coda.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/coda",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Required attributes for hitting apis",
- "type": "object",
- "required": [ "auth_token" ],
- "additionalProperties": true,
- "properties": {
- "auth_token": {
- "title": "Authentication token",
- "type": "string",
- "description": "Bearer token",
- "airbyte_secret": true,
- "order": 0
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "919984ef-53a2-479b-8ffe-9c1ddb9fc3f3",
- "name": "Coin API",
- "dockerRepository": "airbyte/source-coin-api",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/coin-api",
- "icon": "coinapi.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/coin-api",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Coin API Spec",
- "type": "object",
- "required": [ "api_key", "environment", "symbol_id", "period", "start_date" ],
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true,
- "order": 0
- },
- "environment": {
- "type": "string",
- "description": "The environment to use. Either sandbox or production.\n",
- "enum": [ "sandbox", "production" ],
- "default": "sandbox",
- "order": 1
- },
- "symbol_id": {
- "type": "string",
- "description": "The symbol ID to use. See the documentation for a list.\nhttps://docs.coinapi.io/#list-all-symbols-get\n",
- "order": 2
- },
- "period": {
- "type": "string",
- "description": "The period to use. See the documentation for a list. https://docs.coinapi.io/#list-all-periods-get",
- "examples": [ "5SEC", "2MTH" ]
- },
- "start_date": {
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
- "description": "The start date in ISO 8601 format.",
- "examples": [ "2019-01-01T00:00:00" ]
- },
- "end_date": {
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
- "description": "The end date in ISO 8601 format. If not supplied, data will be returned\nfrom the start date to the current time, or when the count of result\nelements reaches its limit.\n",
- "examples": [ "2019-01-01T00:00:00" ]
- },
- "limit": {
- "type": "integer",
- "description": "The maximum number of elements to return. If not supplied, the default\nis 100. For numbers larger than 100, each 100 items is counted as one\nrequest for pricing purposes. Maximum value is 100000.\n",
- "minimum": 1,
- "maximum": 100000,
- "default": 100
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "239463f5-64bb-4d88-b4bd-18ce673fd572",
- "name": "CoinMarketCap",
- "dockerRepository": "airbyte/source-coinmarketcap",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/coinmarketcap",
- "icon": "coinmarketcap.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/coinmarketcap",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Coinmarketcap Spec",
- "type": "object",
- "required": [ "api_key", "data_type" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Your API Key. See here. The token is case sensitive.",
- "airbyte_secret": true
- },
- "data_type": {
- "title": "Data type",
- "type": "string",
- "enum": [ "latest", "historical" ],
- "description": "/latest: Latest market ticker quotes and averages for cryptocurrencies and exchanges. /historical: Intervals of historic market data like OHLCV data or data for use in charting libraries. See here."
- },
- "symbols": {
- "title": "Symbol",
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "Cryptocurrency symbols. (only used for quotes stream)",
- "minItems": 1,
- "examples": [ "AVAX", "BTC" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "008b2e26-11a3-11ec-82a8-0242ac130003",
- "name": "Commercetools",
- "dockerRepository": "airbyte/source-commercetools",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/commercetools",
- "icon": "commercetools.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/commercetools",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Commercetools Source CDK Specifications",
- "type": "object",
- "required": [ "region", "start_date", "host", "project_key", "client_id", "client_secret" ],
- "additionalProperties": false,
- "properties": {
- "region": {
- "type": "string",
- "description": "The region of the platform.",
- "examples": [ "us-central1", "australia-southeast1" ]
- },
- "host": {
- "type": "string",
- "enum": [ "gcp", "aws" ],
- "description": "The cloud provider your shop is hosted. See: https://docs.commercetools.com/api/authorization"
- },
- "start_date": {
- "type": "string",
- "description": "The date you would like to replicate data. Format: YYYY-MM-DD.",
- "examples": [ "2021-01-01" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
- },
- "project_key": {
- "type": "string",
- "description": "The project key"
- },
- "client_id": {
- "type": "string",
- "description": "Id of API Client.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "description": "The password of secret of API Client.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "4fd7565c-8b99-439b-80d0-2d965e1d958c",
- "name": "ConfigCat",
- "dockerRepository": "airbyte/source-configcat",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/configcat",
- "icon": "configcat.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/configcat",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Configcat Spec",
- "type": "object",
- "required": [ "username", "password" ],
- "additionalProperties": true,
- "properties": {
- "username": {
- "title": "Username",
- "type": "string",
- "description": "Basic auth user name. See here."
- },
- "password": {
- "title": "Password",
- "type": "string",
- "description": "Basic auth password. See here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "cf40a7f8-71f8-45ce-a7fa-fca053e4028c",
- "name": "Confluence",
- "dockerRepository": "airbyte/source-confluence",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/confluence",
- "icon": "confluence.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Confluence Spec",
- "type": "object",
- "required": [ "api_token", "domain_name", "email" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "title": "API Token",
- "type": "string",
- "description": "Please follow the Jira confluence for generating an API token: generating an API token.",
- "airbyte_secret": true
- },
- "domain_name": {
- "title": "Domain name",
- "type": "string",
- "description": "Your Confluence domain name",
- "examples": [ "example.atlassian.net" ]
- },
- "email": {
- "title": "Email",
- "type": "string",
- "description": "Your Confluence login email",
- "examples": [ "abc@example.com" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "${subdomain}.atlassian.net" ]
- }
- }, {
- "sourceDefinitionId": "be9ee02f-6efe-4970-979b-95f797a37188",
- "name": "ConvertKit",
- "dockerRepository": "airbyte/source-convertkit",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/convertkit",
- "icon": "convertkit.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/convertkit",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Convertkit Spec",
- "type": "object",
- "required": [ "api_secret" ],
- "additionalProperties": true,
- "properties": {
- "api_secret": {
- "type": "string",
- "description": "API Secret",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "f39208dc-7e1c-48b8-919b-5006360cc27f",
- "name": "Commcare",
- "dockerRepository": "airbyte/source-commcare",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/commcare",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Commcare Source Spec",
- "type": "object",
- "required": [ "api_key", "app_id", "start_date" ],
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Commcare API Key",
- "airbyte_secret": true,
- "order": 0
- },
- "project_space": {
- "type": "string",
- "title": "Project Space",
- "description": "Project Space for commcare",
- "order": 1
- },
- "app_id": {
- "type": "string",
- "title": "Application ID",
- "description": "The Application ID we are interested in",
- "airbyte_secret": true,
- "order": 2
- },
- "start_date": {
- "type": "string",
- "title": "Start date for extracting records",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "default": "2022-10-01T00:00:00Z",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Only records after this date will be replicated.",
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "44f3002f-2df9-4f6d-b21c-02cd3b47d0dc",
- "name": "Copper",
- "dockerRepository": "airbyte/source-copper",
- "dockerImageTag": "0.2.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/copper",
- "icon": "copper.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/copper",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Copper Spec",
- "type": "object",
- "required": [ "api_key", "user_email" ],
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Copper API key",
- "airbyte_secret": true
- },
- "user_email": {
- "type": "string",
- "title": "User email",
- "description": "user email used to login in to Copper"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "c332628c-f55c-4017-8222-378cfafda9b2",
- "name": "Convex",
- "dockerRepository": "airbyte/source-convex",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/convex",
- "icon": "convex.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/convex",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Convex Source Spec",
- "type": "object",
- "required": [ "deployment_url", "access_key" ],
- "properties": {
- "deployment_url": {
- "type": "string",
- "title": "Deployment Url",
- "examples": [ "https://murky-swan-635.convex.cloud", "https://cluttered-owl-337.convex.cloud" ]
- },
- "access_key": {
- "type": "string",
- "title": "Access Key",
- "description": "API access key used to retrieve data from Convex.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "0541b2cd-2367-4986-b5f1-b79ff55439e4",
- "name": "Courier",
- "dockerRepository": "airbyte/source-courier",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/courier",
- "icon": "courier.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/courier",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Courier Source Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "Courier API Key to retrieve your data.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "e71aae8a-5143-11ed-bdc3-0242ac120002",
- "name": "Clockify",
- "dockerRepository": "airbyte/source-clockify",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/clockify",
- "icon": "clockify.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/clockify",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Clockify Spec",
- "type": "object",
- "required": [ "workspace_id", "api_key" ],
- "additionalProperties": true,
- "properties": {
- "workspace_id": {
- "title": "Workspace Id",
- "description": "WorkSpace Id",
- "type": "string"
- },
- "api_key": {
- "title": "API Key",
- "description": "You can get your api access_key here This API is Case Sensitive.",
- "type": "string",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "c47d6804-8b98-449f-970a-5ddb5cb5d7aa",
- "name": "Customer.io",
- "dockerRepository": "farosai/airbyte-customer-io-source",
- "dockerImageTag": "0.1.23",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/customer-io",
- "icon": "customer-io.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.faros.ai",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Customer.io Spec",
- "type": "object",
- "required": [ "app_api_key" ],
- "additionalProperties": false,
- "properties": {
- "app_api_key": {
- "type": "string",
- "title": "Customer.io App API Key",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "1cfc30c7-82db-43f4-9fd7-ac1b42312cda",
- "name": "Datadog",
- "dockerRepository": "airbyte/source-datadog",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/datadog",
- "icon": "datadog.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/datadog",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Datadog Source Spec",
- "type": "object",
- "required": [ "api_key", "application_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "description": "Datadog API key",
- "type": "string",
- "airbyte_secret": true,
- "order": 1
- },
- "application_key": {
- "title": "Application Key",
- "description": "Datadog application key",
- "type": "string",
- "airbyte_secret": true,
- "order": 2
- },
- "query": {
- "title": "Query",
- "description": "The search query. This just applies to Incremental syncs. If empty, it'll collect all logs.",
- "type": "string",
- "order": 3
- },
- "max_records_per_request": {
- "type": "integer",
- "title": "Max records per requests",
- "default": 5000,
- "minimum": 1,
- "maximum": 5000,
- "description": "Maximum number of records to collect per request.",
- "order": 4
- },
- "start_date": {
- "title": "Start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. This just applies to Incremental syncs.",
- "type": "string",
- "examples": [ "2022-10-01T00:00:00Z" ],
- "order": 5
- },
- "end_date": {
- "title": "End date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Data after this date will not be replicated. An empty value will represent the current datetime for each execution. This just applies to Incremental syncs.",
- "examples": [ "2022-10-01T00:00:00Z" ],
- "type": "string",
- "order": 6
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "8e1ae2d2-4790-44d3-9d83-75b3fc3940ff",
- "name": "Datascope",
- "dockerRepository": "airbyte/source-datascope",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/datascope",
- "icon": "datascope.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/datascope",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Datascope Spec",
- "type": "object",
- "required": [ "api_key", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "Start date for the data to be replicated",
- "examples": [ "dd/mm/YYYY HH:MM" ],
- "pattern": "^[0-9]{2}/[0-9]{2}/[0-9]{4} [0-9]{2}:[0-9]{2}$"
- },
- "api_key": {
- "title": "Authorization",
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "cc88c43f-6f53-4e8a-8c4d-b284baaf9635",
- "name": "Delighted",
- "dockerRepository": "airbyte/source-delighted",
- "dockerImageTag": "0.2.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/delighted",
- "icon": "delighted.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Delighted Spec",
- "type": "object",
- "required": [ "since", "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "Delighted API Key",
- "type": "string",
- "description": "A Delighted API key.",
- "airbyte_secret": true,
- "order": 0
- },
- "since": {
- "title": "Date Since",
- "type": "string",
- "description": "The date from which you'd like to replicate the data",
- "examples": [ "2022-05-30T04:50:23Z", "2022-05-30 04:50:23" ],
- "pattern": "^\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z?$",
- "order": 1,
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.delighted.com" ]
- }
- }, {
- "sourceDefinitionId": "0b5c867e-1b12-4d02-ab74-97b2184ff6d7",
- "name": "Dixa",
- "dockerRepository": "airbyte/source-dixa",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/dixa",
- "icon": "dixa.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/dixa",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Dixa Spec",
- "type": "object",
- "required": [ "api_token", "start_date" ],
- "additionalProperties": false,
- "properties": {
- "api_token": {
- "type": "string",
- "description": "Dixa API token",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "description": "The connector pulls records updated from this date onwards.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ]
- },
- "batch_size": {
- "type": "integer",
- "description": "Number of days to batch into one request. Max 31.",
- "pattern": "^[0-9]{1,2}$",
- "examples": [ 1, 31 ],
- "default": 31
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "72d405a3-56d8-499f-a571-667c03406e43",
- "name": "Dockerhub",
- "dockerRepository": "airbyte/source-dockerhub",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/dockerhub",
- "icon": "dockerhub.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/dockerhub",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Dockerhub Spec",
- "type": "object",
- "required": [ "docker_username" ],
- "additionalProperties": false,
- "properties": {
- "docker_username": {
- "type": "string",
- "description": "Username of DockerHub person or organization (for https://hub.docker.com/v2/repositories/USERNAME/ API call)",
- "pattern": "^[a-z0-9_\\-]+$",
- "examples": [ "airbyte" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d99e9ace-8621-46c2-9144-76ae4751d64b",
- "name": "Dremio",
- "dockerRepository": "airbyte/source-dremio",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/dremio",
- "icon": "dremio.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/dremio",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Dremio Spec",
- "type": "object",
- "additionalProperties": true,
- "required": [ "api_key", "base_url" ],
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API Key that is generated when you authenticate to Dremio API",
- "airbyte_secret": true
- },
- "base_url": {
- "type": "string",
- "description": "URL of your Dremio instance",
- "default": "https://app.dremio.cloud"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "445831eb-78db-4b1f-8f1f-0d96ad8739e2",
- "name": "Drift",
- "dockerRepository": "airbyte/source-drift",
- "dockerImageTag": "0.2.6",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/drift",
- "icon": "drift.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/drift",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Drift Spec",
- "type": "object",
- "required": [ ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "client_id", "client_secret", "access_token", "refresh_token" ],
- "properties": {
- "credentials": {
- "type": "string",
- "const": "oauth2.0",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your Drift developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your Drift developer application.",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "Refresh Token to renew the expired Access Token.",
- "default": "",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Access Token",
- "type": "object",
- "required": [ "access_token" ],
- "properties": {
- "credentials": {
- "type": "string",
- "const": "access_token",
- "order": 0
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Drift Access Token. See the docs for more information on how to generate this key.",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "access_token" ], [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "driftapi.com" ]
- }
- }, {
- "sourceDefinitionId": "1356e1d9-977f-4057-ad4b-65f25329cf61",
- "name": "DV 360",
- "dockerRepository": "airbyte/source-dv-360",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/dv-360",
- "icon": "dv360.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Display & Video 360 Spec",
- "type": "object",
- "required": [ "credentials", "partner_id", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "type": "object",
- "description": "Oauth2 credentials",
- "order": 0,
- "required": [ "access_token", "refresh_token", "token_uri", "client_id", "client_secret" ],
- "properties": {
- "access_token": {
- "type": "string",
- "description": "Access token",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "description": "Refresh token",
- "airbyte_secret": true
- },
- "token_uri": {
- "type": "string",
- "description": "Token URI",
- "airbyte_secret": true
- },
- "client_id": {
- "type": "string",
- "description": "Client ID",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "description": "Client secret",
- "airbyte_secret": true
- }
- }
- },
- "partner_id": {
- "type": "integer",
- "description": "Partner ID",
- "order": 1
- },
- "start_date": {
- "type": "string",
- "description": "UTC date and time in the format 2017-01-25. Any data before this date will not be replicated",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 2
- },
- "end_date": {
- "type": "string",
- "description": "UTC date and time in the format 2017-01-25. Any data after this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 3
- },
- "filters": {
- "type": "array",
- "description": "filters for the dimensions. each filter object had 2 keys: 'type' for the name of the dimension to be used as. and 'value' for the value of the filter",
- "default": [ ],
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "50401137-8871-4c5a-abb7-1f5fda35545a",
- "name": "DynamoDB",
- "dockerRepository": "airbyte/source-dynamodb",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/dynamodb",
- "icon": "dynamodb.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/dynamodb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Dynamodb Source Spec",
- "type": "object",
- "required": [ "access_key_id", "secret_access_key" ],
- "additionalProperties": false,
- "properties": {
- "endpoint": {
- "title": "Dynamodb Endpoint",
- "type": "string",
- "default": "",
- "description": "the URL of the Dynamodb database",
- "examples": [ "https://{aws_dynamo_db_url}.com" ]
- },
- "region": {
- "title": "Dynamodb Region",
- "type": "string",
- "default": "",
- "description": "The region of the Dynamodb database",
- "enum": [ "", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "cn-north-1", "cn-northwest-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "me-south-1", "us-gov-east-1", "us-gov-west-1" ]
- },
- "access_key_id": {
- "title": "Dynamodb Key Id",
- "type": "string",
- "description": "The access key id to access Dynamodb. Airbyte requires read permissions to the database",
- "airbyte_secret": true,
- "examples": [ "A012345678910EXAMPLE" ]
- },
- "secret_access_key": {
- "title": "Dynamodb Access Key",
- "type": "string",
- "description": "The corresponding secret to the access key id.",
- "airbyte_secret": true,
- "examples": [ "a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY" ]
- },
- "reserved_attribute_names": {
- "title": "Reserved attribute names",
- "type": "string",
- "description": "Comma separated reserved attribute names present in your tables",
- "airbyte_secret": true,
- "examples": [ "name, field_name, field-name" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d53f9084-fa6b-4a5a-976c-5b8392f4ad8a",
- "name": "E2E Testing",
- "dockerRepository": "airbyte/source-e2e-test",
- "dockerImageTag": "2.1.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/e2e-test",
- "icon": "airbyte.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/e2e-test",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "E2E Test Source Spec",
- "additionalProperties": true,
- "type": "object",
- "oneOf": [ {
- "title": "Legacy Infinite Feed",
- "description": "This mode is used for Platform acceptance tests. The catalog has one \"data\" stream, which has one string field \"column1\". This mode will emit messages infinitely.",
- "required": [ "type", "max_records" ],
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "type": {
- "type": "string",
- "const": "INFINITE_FEED",
- "default": "INFINITE_FEED"
- },
- "max_records": {
- "title": "Max Records",
- "description": "Number of records to emit. If not set, defaults to infinity.",
- "type": "integer"
- },
- "message_interval": {
- "title": "Message Interval",
- "description": "Interval between messages in ms.",
- "type": "integer"
- }
- }
- }, {
- "title": "Legacy Exception After N",
- "description": "This mode is used for Platform acceptance tests. The catalog has one \"data\" stream, which has one string field \"column1\". This mode will throw an exception after N messages.",
- "required": [ "type", "throw_after_n_records" ],
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "type": {
- "type": "string",
- "const": "EXCEPTION_AFTER_N",
- "default": "EXCEPTION_AFTER_N"
- },
- "throw_after_n_records": {
- "title": "Throw After N Records",
- "description": "Number of records to emit before throwing an exception. Min 1.",
- "type": "integer",
- "min": 1
- }
- }
- }, {
- "title": "Continuous Feed",
- "type": "object",
- "required": [ "type", "max_messages", "mock_catalog" ],
- "additionalProperties": true,
- "properties": {
- "type": {
- "type": "string",
- "const": "CONTINUOUS_FEED",
- "default": "CONTINUOUS_FEED",
- "order": 10
- },
- "max_messages": {
- "title": "Max Records",
- "description": "Number of records to emit per stream. Min 1. Max 100 billion.",
- "type": "integer",
- "default": 100,
- "min": 1,
- "max": 100000000000,
- "order": 20
- },
- "seed": {
- "title": "Random Seed",
- "description": "When the seed is unspecified, the current time millis will be used as the seed. Range: [0, 1000000].",
- "type": "integer",
- "default": 0,
- "examples": [ 42 ],
- "min": 0,
- "max": 1000000,
- "order": 30
- },
- "message_interval_ms": {
- "title": "Message Interval (ms)",
- "description": "Interval between messages in ms. Min 0 ms. Max 60000 ms (1 minute).",
- "type": "integer",
- "min": 0,
- "max": 60000,
- "default": 0,
- "order": 40
- },
- "mock_catalog": {
- "title": "Mock Catalog",
- "type": "object",
- "order": 50,
- "oneOf": [ {
- "title": "Single Schema",
- "description": "A catalog with one or multiple streams that share the same schema.",
- "type": "object",
- "required": [ "type", "stream_name", "stream_schema" ],
- "properties": {
- "type": {
- "type": "string",
- "const": "SINGLE_STREAM",
- "default": "SINGLE_STREAM"
- },
- "stream_name": {
- "title": "Stream Name",
- "description": "Name of the data stream.",
- "type": "string",
- "default": "data_stream"
- },
- "stream_schema": {
- "title": "Stream Schema",
- "description": "A Json schema for the stream. The schema should be compatible with draft-07. See this doc for examples.",
- "type": "string",
- "default": "{ \"type\": \"object\", \"properties\": { \"column1\": { \"type\": \"string\" } } }"
- },
- "stream_duplication": {
- "title": "Duplicate the stream N times",
- "description": "Duplicate the stream for easy load testing. Each stream name will have a number suffix. For example, if the stream name is \"ds\", the duplicated streams will be \"ds_0\", \"ds_1\", etc.",
- "type": "integer",
- "default": 1,
- "min": 1,
- "max": 10000
- }
- }
- }, {
- "title": "Multi Schema",
- "type": "object",
- "description": "A catalog with multiple data streams, each with a different schema.",
- "required": [ "type", "stream_schemas" ],
- "properties": {
- "type": {
- "type": "string",
- "const": "MULTI_STREAM",
- "default": "MULTI_STREAM"
- },
- "stream_schemas": {
- "title": "Streams and Schemas",
- "description": "A Json object specifying multiple data streams and their schemas. Each key in this object is one stream name. Each value is the schema for that stream. The schema should be compatible with draft-07. See this doc for examples.",
- "type": "string",
- "default": "{ \"stream1\": { \"type\": \"object\", \"properties\": { \"field1\": { \"type\": \"string\" } } }, \"stream2\": { \"type\": \"object\", \"properties\": { \"field1\": { \"type\": \"boolean\" } } } }"
- }
- }
- } ]
- }
- }
- }, {
- "title": "Benchmark",
- "description": "This mode is used for speed benchmarks. Specifically, it should be used for testing the throughput of the platform and destination. It optimizes for emitting records very quickly, so that it should never be the bottleneck.",
- "type": "object",
- "required": [ "type", "schema", "terminationCondition" ],
- "additionalProperties": true,
- "properties": {
- "type": {
- "type": "string",
- "const": "BENCHMARK",
- "default": "BENCHMARK"
- },
- "schema": {
- "title": "Schema",
- "description": "schema of the data in the benchmark.",
- "type": "string",
- "enum": [ "FIVE_STRING_COLUMNS" ]
- },
- "terminationCondition": {
- "title": "Termination Condition",
- "description": "when does the benchmark stop?",
- "type": "object",
- "oneOf": [ {
- "title": "max records",
- "type": "object",
- "required": [ "type", "max" ],
- "properties": {
- "type": {
- "type": "string",
- "const": "MAX_RECORDS",
- "default": "MAX_RECORDS"
- },
- "max": {
- "type": "number"
- }
- }
- } ]
- }
- }
- } ]
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "protocol_version": "0.2.1"
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "46b25e70-c980-4590-a811-8deaf50ee09f",
- "name": "EmailOctopus",
- "dockerRepository": "airbyte/source-emailoctopus",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/emailoctopus",
- "icon": "emailoctopus.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/emailoctopus",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "EmailOctopus Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "EmailOctopus API key",
- "description": "EmailOctopus API Key. See the docs for information on how to generate this key.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "e2b40e36-aa0e-4bed-b41b-bcea6fa348b1",
- "name": "Exchange Rates Api",
- "dockerRepository": "airbyte/source-exchange-rates",
- "dockerImageTag": "1.2.8",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/exchangeratesapi",
- "icon": "exchangeratesapi.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/exchangeratesapi",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "exchangeratesapi.io Source Spec",
- "type": "object",
- "required": [ "start_date", "access_key" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "description": "Start getting data from that date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ],
- "format": "date"
- },
- "access_key": {
- "type": "string",
- "description": "Your API Key. See here. The key is case sensitive.",
- "airbyte_secret": true
- },
- "base": {
- "type": "string",
- "description": "ISO reference currency. See here. Free plan doesn't support Source Currency Switching, default base currency is EUR",
- "examples": [ "EUR", "USD" ]
- },
- "ignore_weekends": {
- "type": "boolean",
- "description": "Ignore weekends? (Exchanges don't run on weekends)",
- "default": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "${subdomain}.apilayer.com", "apilayer.com" ]
- }
- }, {
- "sourceDefinitionId": "6babfc42-c734-4ef6-a817-6eca15f0f9b7",
- "name": "Everhour",
- "dockerRepository": "airbyte/source-everhour",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/everhour",
- "icon": "everhour.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/everhour",
- "connectionSpecification": {
- "title": "Everhour Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Everhour API Key. See the docs for information on how to generate this key.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "api.everhour.com" ]
- }
- }, {
- "sourceDefinitionId": "e7778cfc-e97c-4458-9ecb-b4f2bba8946c",
- "name": "Facebook Marketing",
- "dockerRepository": "airbyte/source-facebook-marketing",
- "dockerImageTag": "0.3.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/facebook-marketing",
- "icon": "facebook.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/facebook-marketing",
- "changelogUrl": "https://docs.airbyte.com/integrations/sources/facebook-marketing",
- "connectionSpecification": {
- "title": "Source Facebook Marketing",
- "type": "object",
- "properties": {
- "account_id": {
- "title": "Account ID",
- "description": "The Facebook Ad account ID to use when pulling data from the Facebook Marketing API. Open your Meta Ads Manager. The Ad account ID number is in the account dropdown menu or in your browser's address bar. See the docs for more information.",
- "order": 0,
- "examples": [ "111111111111111" ],
- "type": "string"
- },
- "start_date": {
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for all incremental streams, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "order": 1,
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "type": "string",
- "format": "date-time"
- },
- "end_date": {
- "title": "End Date",
- "description": "The date until which you'd like to replicate data for all incremental streams, in the format YYYY-MM-DDT00:00:00Z. All data generated between the start date and this end date will be replicated. Not setting this option will result in always syncing the latest data.",
- "order": 2,
- "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-26T00:00:00Z" ],
- "type": "string"
- },
- "access_token": {
- "title": "Access Token",
- "description": "The value of the generated access token. From your App’s Dashboard, click on \"Marketing API\" then \"Tools\". Select permissions ads_management, ads_read, read_insights, business_management. Then click on \"Get token\". See the docs for more information.",
- "order": 3,
- "airbyte_secret": true,
- "type": "string"
- },
- "include_deleted": {
- "title": "Include Deleted Campaigns, Ads, and AdSets",
- "description": "Set to active if you want to include data from deleted Campaigns, Ads, and AdSets.",
- "default": false,
- "order": 4,
- "type": "boolean"
- },
- "fetch_thumbnail_images": {
- "title": "Fetch Thumbnail Images from Ad Creative",
- "description": "Set to active if you want to fetch the thumbnail_url and store the result in thumbnail_data_url for each Ad Creative.",
- "default": false,
- "order": 5,
- "type": "boolean"
- },
- "custom_insights": {
- "title": "Custom Insights",
- "description": "A list which contains ad statistics entries, each entry must have a name and can contains fields, breakdowns or action_breakdowns. Click on \"add\" to fill this field.",
- "order": 6,
- "type": "array",
- "items": {
- "title": "InsightConfig",
- "description": "Config for custom insights",
- "type": "object",
- "properties": {
- "name": {
- "title": "Name",
- "description": "The name value of insight",
- "type": "string"
- },
- "level": {
- "title": "Level",
- "description": "Chosen level for API",
- "default": "ad",
- "enum": [ "ad", "adset", "campaign", "account" ],
- "type": "string"
- },
- "fields": {
- "title": "Fields",
- "description": "A list of chosen fields for fields parameter",
- "default": [ ],
- "type": "array",
- "items": {
- "title": "ValidEnums",
- "description": "Generic enumeration.\n\nDerive from this class to define new enumerations.",
- "enum": [ "account_currency", "account_id", "account_name", "action_values", "actions", "ad_bid_value", "ad_click_actions", "ad_id", "ad_impression_actions", "ad_name", "adset_bid_value", "adset_end", "adset_id", "adset_name", "adset_start", "age_targeting", "attribution_setting", "auction_bid", "auction_competitiveness", "auction_max_competitor_bid", "buying_type", "campaign_id", "campaign_name", "canvas_avg_view_percent", "canvas_avg_view_time", "catalog_segment_actions", "catalog_segment_value", "catalog_segment_value_mobile_purchase_roas", "catalog_segment_value_omni_purchase_roas", "catalog_segment_value_website_purchase_roas", "clicks", "conversion_rate_ranking", "conversion_values", "conversions", "converted_product_quantity", "converted_product_value", "cost_per_15_sec_video_view", "cost_per_2_sec_continuous_video_view", "cost_per_action_type", "cost_per_ad_click", "cost_per_conversion", "cost_per_dda_countby_convs", "cost_per_estimated_ad_recallers", "cost_per_inline_link_click", "cost_per_inline_post_engagement", "cost_per_one_thousand_ad_impression", "cost_per_outbound_click", "cost_per_thruplay", "cost_per_unique_action_type", "cost_per_unique_click", "cost_per_unique_conversion", "cost_per_unique_inline_link_click", "cost_per_unique_outbound_click", "cpc", "cpm", "cpp", "created_time", "ctr", "date_start", "date_stop", "dda_countby_convs", "dda_results", "engagement_rate_ranking", "estimated_ad_recall_rate", "estimated_ad_recall_rate_lower_bound", "estimated_ad_recall_rate_upper_bound", "estimated_ad_recallers", "estimated_ad_recallers_lower_bound", "estimated_ad_recallers_upper_bound", "frequency", "full_view_impressions", "full_view_reach", "gender_targeting", "impressions", "inline_link_click_ctr", "inline_link_clicks", "inline_post_engagement", "instant_experience_clicks_to_open", "instant_experience_clicks_to_start", "instant_experience_outbound_clicks", "interactive_component_tap", "labels", "location", "mobile_app_purchase_roas", "objective", "optimization_goal", "outbound_clicks", "outbound_clicks_ctr", "place_page_name", "purchase_roas", "qualifying_question_qualify_answer_rate", "quality_ranking", "quality_score_ectr", "quality_score_ecvr", "quality_score_organic", "reach", "social_spend", "spend", "total_postbacks", "total_postbacks_detailed", "unique_actions", "unique_clicks", "unique_conversions", "unique_ctr", "unique_inline_link_click_ctr", "unique_inline_link_clicks", "unique_link_clicks_ctr", "unique_outbound_clicks", "unique_outbound_clicks_ctr", "unique_video_continuous_2_sec_watched_actions", "unique_video_view_15_sec", "updated_time", "video_15_sec_watched_actions", "video_30_sec_watched_actions", "video_avg_time_watched_actions", "video_continuous_2_sec_watched_actions", "video_p100_watched_actions", "video_p25_watched_actions", "video_p50_watched_actions", "video_p75_watched_actions", "video_p95_watched_actions", "video_play_actions", "video_play_curve_actions", "video_play_retention_0_to_15s_actions", "video_play_retention_20_to_60s_actions", "video_play_retention_graph_actions", "video_thruplay_watched_actions", "video_time_watched_actions", "website_ctr", "website_purchase_roas", "wish_bid" ]
- }
- },
- "breakdowns": {
- "title": "Breakdowns",
- "description": "A list of chosen breakdowns for breakdowns",
- "default": [ ],
- "type": "array",
- "items": {
- "title": "ValidBreakdowns",
- "description": "Generic enumeration.\n\nDerive from this class to define new enumerations.",
- "enum": [ "ad_format_asset", "age", "app_id", "body_asset", "call_to_action_asset", "country", "description_asset", "device_platform", "dma", "frequency_value", "gender", "hourly_stats_aggregated_by_advertiser_time_zone", "hourly_stats_aggregated_by_audience_time_zone", "image_asset", "impression_device", "is_conversion_id_modeled", "link_url_asset", "mmm", "place_page_id", "platform_position", "product_id", "publisher_platform", "region", "skan_campaign_id", "skan_conversion_id", "title_asset", "video_asset" ]
- }
- },
- "action_breakdowns": {
- "title": "Action Breakdowns",
- "description": "A list of chosen action_breakdowns for action_breakdowns",
- "default": [ ],
- "type": "array",
- "items": {
- "title": "ValidActionBreakdowns",
- "description": "Generic enumeration.\n\nDerive from this class to define new enumerations.",
- "enum": [ "action_canvas_component_name", "action_carousel_card_id", "action_carousel_card_name", "action_destination", "action_device", "action_reaction", "action_target_id", "action_type", "action_video_sound", "action_video_type" ]
- }
- },
- "time_increment": {
- "title": "Time Increment",
- "description": "Time window in days by which to aggregate statistics. The sync will be chunked into N day intervals, where N is the number of days you specified. For example, if you set this value to 7, then all statistics will be reported as 7-day aggregates by starting from the start_date. If the start and end dates are October 1st and October 30th, then the connector will output 5 records: 01 - 06, 07 - 13, 14 - 20, 21 - 27, and 28 - 30 (3 days only).",
- "default": 1,
- "exclusiveMaximum": 90,
- "exclusiveMinimum": 0,
- "type": "integer"
- },
- "start_date": {
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for this stream, in the format YYYY-MM-DDT00:00:00Z.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "type": "string",
- "format": "date-time"
- },
- "end_date": {
- "title": "End Date",
- "description": "The date until which you'd like to replicate data for this stream, in the format YYYY-MM-DDT00:00:00Z. All data generated between the start date and this end date will be replicated. Not setting this option will result in always syncing the latest data.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-26T00:00:00Z" ],
- "type": "string",
- "format": "date-time"
- },
- "insights_lookback_window": {
- "title": "Custom Insights Lookback Window",
- "description": "The attribution window",
- "default": 28,
- "maximum": 28,
- "mininum": 1,
- "exclusiveMinimum": 0,
- "type": "integer"
- }
- },
- "required": [ "name" ]
- }
- },
- "page_size": {
- "title": "Page Size of Requests",
- "description": "Page size used when sending requests to Facebook API to specify number of records per page when response has pagination. Most users do not need to set this field unless they specifically need to tune the connector to address specific issues or use cases.",
- "default": 100,
- "order": 7,
- "exclusiveMinimum": 0,
- "type": "integer"
- },
- "insights_lookback_window": {
- "title": "Insights Lookback Window",
- "description": "The attribution window. Facebook freezes insight data 28 days after it was generated, which means that all data from the past 28 days may have changed since we last emitted it, so you can retrieve refreshed insights from the past by setting this parameter. If you set a custom lookback window value in Facebook account, please provide the same value here.",
- "default": 28,
- "order": 8,
- "maximum": 28,
- "mininum": 1,
- "exclusiveMinimum": 0,
- "type": "integer"
- },
- "max_batch_size": {
- "title": "Maximum size of Batched Requests",
- "description": "Maximum batch size used when sending batch requests to Facebook API. Most users do not need to set this field unless they specifically need to tune the connector to address specific issues or use cases.",
- "default": 50,
- "order": 9,
- "exclusiveMinimum": 0,
- "type": "integer"
- },
- "action_breakdowns_allow_empty": {
- "title": "Action Breakdowns Allow Empty",
- "description": "Allows action_breakdowns to be an empty list",
- "default": true,
- "airbyte_hidden": true,
- "type": "boolean"
- }
- },
- "required": [ "account_id", "start_date", "access_token" ]
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ ],
- "oauthFlowInitParameters": [ ],
- "oauthFlowOutputParameters": [ [ "access_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "graph.facebook.com" ]
- }
- }, {
- "sourceDefinitionId": "010eb12f-837b-4685-892d-0a39f76a98f5",
- "name": "Facebook Pages",
- "dockerRepository": "airbyte/source-facebook-pages",
- "dockerImageTag": "0.2.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/facebook-pages",
- "icon": "facebook.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/facebook-pages",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Facebook Pages Spec",
- "type": "object",
- "required": [ "access_token", "page_id" ],
- "additionalProperties": true,
- "properties": {
- "access_token": {
- "type": "string",
- "title": "Page Access Token",
- "description": "Facebook Page Access Token",
- "airbyte_secret": true,
- "order": 0
- },
- "page_id": {
- "type": "string",
- "title": "Page ID",
- "description": "Page ID",
- "order": 1
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "graph.facebook.com" ]
- }
- }, {
- "sourceDefinitionId": "dfd88b22-b603-4c3d-aad7-3701784586b1",
- "name": "Sample Data (Faker)",
- "dockerRepository": "airbyte/source-faker",
- "dockerImageTag": "2.0.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/faker",
- "icon": "faker.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/faker",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Faker Source Spec",
- "type": "object",
- "required": [ "count" ],
- "additionalProperties": true,
- "properties": {
- "count": {
- "title": "Count",
- "description": "How many users should be generated in total. This setting does not apply to the purchases or products stream.",
- "type": "integer",
- "minimum": 1,
- "default": 1000,
- "order": 0
- },
- "seed": {
- "title": "Seed",
- "description": "Manually control the faker random seed to return the same values on subsequent runs (leave -1 for random)",
- "type": "integer",
- "default": -1,
- "order": 1
- },
- "records_per_sync": {
- "title": "Records Per Sync",
- "description": "How many fake records will be returned for each sync, for each stream? By default, it will take 2 syncs to create the requested 1000 records.",
- "type": "integer",
- "minimum": 1,
- "default": 500,
- "order": 2
- },
- "records_per_slice": {
- "title": "Records Per Stream Slice",
- "description": "How many fake records will be in each page (stream slice), before a state message is emitted?",
- "type": "integer",
- "minimum": 1,
- "default": 1000,
- "order": 3
- },
- "parallelism": {
- "title": "Parallelism",
- "description": "How many parallel workers should we use to generate fake data? Choose a value equal to the number of CPUs you will allocate to this source.",
- "type": "integer",
- "minimum": 1,
- "default": 4,
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "resourceRequirements": {
- "jobSpecific": [ {
- "jobType": "sync",
- "resourceRequirements": {
- "cpu_request": "1.0",
- "cpu_limit": "4.0"
- }
- } ]
- },
- "allowedHosts": {
- "hosts": [ ]
- },
- "suggestedStreams": {
- "streams": [ "users", "products", "purchases" ]
- }
- }, {
- "sourceDefinitionId": "eb3e9c1c-0467-4eb7-a172-5265e04ccd0a",
- "name": "Fastbill",
- "dockerRepository": "airbyte/source-fastbill",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/fastbill",
- "icon": "fastbill.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/fastbill",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Fastbill Spec",
- "type": "object",
- "required": [ "username", "api_key" ],
- "properties": {
- "username": {
- "title": "Username",
- "type": "string",
- "description": "Username for Fastbill account"
- },
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Fastbill API key",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "3825db3e-c94b-42ac-bd53-b5a9507ace2b",
- "name": "Fauna",
- "dockerRepository": "airbyte/source-fauna",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/fauna",
- "icon": "fauna.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://github.com/fauna/airbyte/blob/source-fauna/docs/integrations/sources/fauna.md",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Fauna Spec",
- "type": "object",
- "required": [ "domain", "port", "scheme", "secret" ],
- "additionalProperties": true,
- "properties": {
- "domain": {
- "order": 0,
- "type": "string",
- "title": "Domain",
- "description": "Domain of Fauna to query. Defaults db.fauna.com. See the docs.",
- "default": "db.fauna.com"
- },
- "port": {
- "order": 1,
- "type": "integer",
- "title": "Port",
- "description": "Endpoint port.",
- "default": 443
- },
- "scheme": {
- "order": 2,
- "type": "string",
- "title": "Scheme",
- "description": "URL scheme.",
- "default": "https"
- },
- "secret": {
- "order": 3,
- "type": "string",
- "title": "Fauna Secret",
- "description": "Fauna secret, used when authenticating with the database.",
- "airbyte_secret": true
- },
- "collection": {
- "order": 5,
- "type": "object",
- "title": "Collection",
- "description": "Settings for the Fauna Collection.",
- "required": [ "page_size", "deletions" ],
- "properties": {
- "page_size": {
- "order": 4,
- "type": "integer",
- "title": "Page Size",
- "default": 64,
- "description": "The page size used when reading documents from the database. The larger the page size, the faster the connector processes documents. However, if a page is too large, the connector may fail.
\nChoose your page size based on how large the documents are.
\nSee the docs."
- },
- "deletions": {
- "order": 5,
- "type": "object",
- "title": "Deletion Mode",
- "description": "This only applies to incremental syncs.
\nEnabling deletion mode informs your destination of deleted documents.
\nDisabled - Leave this feature disabled, and ignore deleted documents.
\nEnabled - Enables this feature. When a document is deleted, the connector exports a record with a \"deleted at\" column containing the time that the document was deleted.",
- "oneOf": [ {
- "title": "Disabled",
- "type": "object",
- "order": 0,
- "required": [ "deletion_mode" ],
- "properties": {
- "deletion_mode": {
- "type": "string",
- "const": "ignore"
- }
- }
- }, {
- "title": "Enabled",
- "type": "object",
- "order": 1,
- "required": [ "deletion_mode", "column" ],
- "properties": {
- "deletion_mode": {
- "type": "string",
- "const": "deleted_field"
- },
- "column": {
- "type": "string",
- "title": "Deleted At Column",
- "description": "Name of the \"deleted at\" column.",
- "default": "deleted_at"
- }
- }
- } ]
- }
- }
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "778daa7c-feaf-4db6-96f3-70fd645acc77",
- "name": "File (CSV, JSON, Excel, Feather, Parquet)",
- "dockerRepository": "airbyte/source-file",
- "dockerImageTag": "0.3.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/file",
- "icon": "file.svg",
- "sourceType": "file",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/file",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "File Source Spec",
- "type": "object",
- "additionalProperties": true,
- "required": [ "dataset_name", "format", "url", "provider" ],
- "properties": {
- "dataset_name": {
- "type": "string",
- "title": "Dataset Name",
- "description": "The Name of the final table to replicate this file into (should include letters, numbers dash and underscores only)."
- },
- "format": {
- "type": "string",
- "enum": [ "csv", "json", "jsonl", "excel", "excel_binary", "feather", "parquet", "yaml" ],
- "default": "csv",
- "title": "File Format",
- "description": "The Format of the file which should be replicated (Warning: some formats may be experimental, please refer to the docs)."
- },
- "reader_options": {
- "type": "string",
- "title": "Reader Options",
- "description": "This should be a string in JSON format. It depends on the chosen file format to provide additional options and tune its behavior.",
- "examples": [ "{}", "{\"sep\": \" \"}", "{\"sep\": \"\t\", \"header\": 0, \"names\": [\"column1\", \"column2\"] }" ]
- },
- "url": {
- "type": "string",
- "title": "URL",
- "description": "The URL path to access the file which should be replicated.",
- "examples": [ "https://storage.googleapis.com/covid19-open-data/v2/latest/epidemiology.csv", "gs://my-google-bucket/data.csv", "s3://gdelt-open-data/events/20190914.export.csv" ]
- },
- "provider": {
- "type": "object",
- "title": "Storage Provider",
- "description": "The storage Provider or Location of the file(s) which should be replicated.",
- "default": "Public Web",
- "oneOf": [ {
- "title": "HTTPS: Public Web",
- "required": [ "storage" ],
- "properties": {
- "storage": {
- "type": "string",
- "const": "HTTPS"
- },
- "user_agent": {
- "type": "boolean",
- "title": "User-Agent",
- "default": false,
- "description": "Add User-Agent to request"
- }
- }
- }, {
- "title": "GCS: Google Cloud Storage",
- "required": [ "storage" ],
- "properties": {
- "storage": {
- "type": "string",
- "title": "Storage",
- "const": "GCS"
- },
- "service_account_json": {
- "type": "string",
- "title": "Service Account JSON",
- "description": "In order to access private Buckets stored on Google Cloud, this connector would need a service account json credentials with the proper permissions as described here. Please generate the credentials.json file and copy/paste its content to this field (expecting JSON formats). If accessing publicly available data, this field is not necessary."
- }
- }
- }, {
- "title": "S3: Amazon Web Services",
- "required": [ "storage" ],
- "properties": {
- "storage": {
- "type": "string",
- "title": "Storage",
- "const": "S3"
- },
- "aws_access_key_id": {
- "type": "string",
- "title": "AWS Access Key ID",
- "description": "In order to access private Buckets stored on AWS S3, this connector would need credentials with the proper permissions. If accessing publicly available data, this field is not necessary."
- },
- "aws_secret_access_key": {
- "type": "string",
- "title": "AWS Secret Access Key",
- "description": "In order to access private Buckets stored on AWS S3, this connector would need credentials with the proper permissions. If accessing publicly available data, this field is not necessary.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "AzBlob: Azure Blob Storage",
- "required": [ "storage", "storage_account" ],
- "properties": {
- "storage": {
- "type": "string",
- "title": "Storage",
- "const": "AzBlob"
- },
- "storage_account": {
- "type": "string",
- "title": "Storage Account",
- "description": "The globally unique name of the storage account that the desired blob sits within. See here for more details."
- },
- "sas_token": {
- "type": "string",
- "title": "SAS Token",
- "description": "To access Azure Blob Storage, this connector would need credentials with the proper permissions. One option is a SAS (Shared Access Signature) token. If accessing publicly available data, this field is not necessary.",
- "airbyte_secret": true
- },
- "shared_key": {
- "type": "string",
- "title": "Shared Key",
- "description": "To access Azure Blob Storage, this connector would need credentials with the proper permissions. One option is a storage account shared key (aka account key or access key). If accessing publicly available data, this field is not necessary.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "SSH: Secure Shell",
- "required": [ "storage", "user", "host" ],
- "properties": {
- "storage": {
- "type": "string",
- "title": "Storage",
- "const": "SSH"
- },
- "user": {
- "type": "string",
- "title": "User",
- "description": ""
- },
- "password": {
- "type": "string",
- "title": "Password",
- "description": "",
- "airbyte_secret": true
- },
- "host": {
- "type": "string",
- "title": "Host",
- "description": ""
- },
- "port": {
- "type": "string",
- "title": "Port",
- "default": "22",
- "description": ""
- }
- }
- }, {
- "title": "SCP: Secure copy protocol",
- "required": [ "storage", "user", "host" ],
- "properties": {
- "storage": {
- "type": "string",
- "title": "Storage",
- "const": "SCP"
- },
- "user": {
- "type": "string",
- "title": "User",
- "description": ""
- },
- "password": {
- "type": "string",
- "title": "Password",
- "description": "",
- "airbyte_secret": true
- },
- "host": {
- "type": "string",
- "title": "Host",
- "description": ""
- },
- "port": {
- "type": "string",
- "title": "Port",
- "default": "22",
- "description": ""
- }
- }
- }, {
- "title": "SFTP: Secure File Transfer Protocol",
- "required": [ "storage", "user", "host" ],
- "properties": {
- "storage": {
- "type": "string",
- "title": "Storage",
- "const": "SFTP"
- },
- "user": {
- "type": "string",
- "title": "User",
- "description": ""
- },
- "password": {
- "type": "string",
- "title": "Password",
- "description": "",
- "airbyte_secret": true
- },
- "host": {
- "type": "string",
- "title": "Host",
- "description": ""
- },
- "port": {
- "type": "string",
- "title": "Port",
- "default": "22",
- "description": ""
- }
- }
- }, {
- "title": "Local Filesystem (limited)",
- "required": [ "storage" ],
- "properties": {
- "storage": {
- "type": "string",
- "title": "Storage",
- "description": "WARNING: Note that the local storage URL available for reading must start with the local mount \"/local/\" at the moment until we implement more advanced docker mounting options.",
- "const": "local"
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*" ]
- }
- }, {
- "sourceDefinitionId": "acb5f973-a565-441e-992f-4946f3e65662",
- "name": "Firebase Realtime Database",
- "dockerRepository": "airbyte/source-firebase-realtime-database",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/firebase-realtime-database",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/firebase-realtime-database",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Firebase Realtime Database Spec",
- "type": "object",
- "required": [ "database_name", "google_application_credentials" ],
- "properties": {
- "database_name": {
- "title": "Database Name",
- "type": "string",
- "description": "Database name (This will be part of the url pointing to the database, https://.firebaseio.com/)"
- },
- "google_application_credentials": {
- "title": "Service Account Key JSON",
- "type": "string",
- "description": "Cert credentials in JSON format of Service Account with Firebase Realtime Database Viewer role. (see, https://firebase.google.com/docs/projects/iam/roles-predefined-product#realtime-database)",
- "airbyte_secret": true
- },
- "path": {
- "title": "Node Path",
- "type": "string",
- "description": "Path to a node in the Firebase realtime database"
- },
- "buffer_size": {
- "title": "Buffer Size",
- "type": "number",
- "description": "Number of records to fetch at once"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "supported_sync_modes": [ "full_refresh" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "*" ]
- }
- }, {
- "sourceDefinitionId": "8a5d48f6-03bb-4038-a942-a8d3f175cca3",
- "name": "Freshcaller",
- "dockerRepository": "airbyte/source-freshcaller",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshcaller",
- "icon": "freshcaller.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshcaller",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Freshcaller Spec",
- "type": "object",
- "required": [ "domain", "api_key", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "domain": {
- "type": "string",
- "title": "Domain for Freshcaller account",
- "description": "Used to construct Base URL for the Freshcaller APIs",
- "examples": [ "snaptravel" ]
- },
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Freshcaller API Key. See the docs for more information on how to obtain this key.",
- "airbyte_secret": true
- },
- "requests_per_minute": {
- "title": "Requests per minute",
- "type": "integer",
- "description": "The number of requests per minute that this source allowed to use. There is a rate limit of 50 requests per minute per app per account."
- },
- "start_date": {
- "title": "Start Date",
- "description": "UTC date and time. Any data created after this date will be replicated.",
- "format": "date-time",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2022-01-01T12:00:00Z" ]
- },
- "sync_lag_minutes": {
- "title": "Lag in minutes for each sync",
- "type": "integer",
- "description": "Lag in minutes for each sync, i.e., at time T, data for the time range [prev_sync_time, T-30] will be fetched"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false
- }, {
- "sourceDefinitionId": "f95337f1-2ad1-4baf-922f-2ca9152de630",
- "name": "Flexport",
- "dockerRepository": "airbyte/source-flexport",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/flexport",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/flexport",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Flexport Spec",
- "additionalProperties": true,
- "type": "object",
- "required": [ "api_key", "start_date" ],
- "properties": {
- "api_key": {
- "order": 0,
- "type": "string",
- "title": "API Key",
- "airbyte_secret": true
- },
- "start_date": {
- "order": 1,
- "title": "Start Date",
- "type": "string",
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "ec4b9503-13cb-48ab-a4ab-6ade4be46567",
- "name": "Freshdesk",
- "dockerRepository": "airbyte/source-freshdesk",
- "dockerImageTag": "3.0.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshdesk",
- "icon": "freshdesk.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshdesk",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Freshdesk Spec",
- "type": "object",
- "required": [ "domain", "api_key" ],
- "additionalProperties": true,
- "properties": {
- "domain": {
- "type": "string",
- "description": "Freshdesk domain",
- "title": "Domain",
- "examples": [ "myaccount.freshdesk.com" ],
- "pattern": "^[a-zA-Z0-9._-]*\\.freshdesk\\.com$"
- },
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Freshdesk API Key. See the docs for more information on how to obtain this key.",
- "airbyte_secret": true
- },
- "requests_per_minute": {
- "title": "Requests per minute",
- "type": "integer",
- "description": "The number of requests per minute that this source allowed to use. There is a rate limit of 50 requests per minute per app per account."
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "UTC date and time. Any data created after this date will be replicated. If this parameter is not set, all data will be replicated.",
- "format": "date-time",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2020-12-01T00:00:00Z" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*.freshdesk.com" ]
- }
- }, {
- "sourceDefinitionId": "eca08d79-7b92-4065-b7f3-79c14836ebe7",
- "name": "Freshsales",
- "dockerRepository": "airbyte/source-freshsales",
- "dockerImageTag": "0.1.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshsales",
- "icon": "freshsales.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshsales",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Freshsales Spec",
- "type": "object",
- "required": [ "domain_name", "api_key" ],
- "additionalProperties": true,
- "properties": {
- "domain_name": {
- "type": "string",
- "title": "Domain Name",
- "description": "The Name of your Freshsales domain",
- "examples": [ "mydomain.myfreshworks.com" ]
- },
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Freshsales API Key. See here. The key is case sensitive.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "*.myfreshworks.com" ]
- }
- }, {
- "sourceDefinitionId": "9bb85338-ea95-4c93-b267-6be89125b267",
- "name": "Freshservice",
- "dockerRepository": "airbyte/source-freshservice",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshservice",
- "icon": "freshservice.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshservice",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Freshservice Spec",
- "type": "object",
- "required": [ "domain_name", "api_key", "start_date" ],
- "additionalProperties": false,
- "properties": {
- "domain_name": {
- "type": "string",
- "title": "Domain Name",
- "description": "The name of your Freshservice domain",
- "examples": [ "mydomain.freshservice.com" ]
- },
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Freshservice API Key. See here. The key is case sensitive.",
- "airbyte_secret": true
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "UTC date and time in the format 2020-10-01T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2020-10-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "2a8c41ae-8c23-4be0-a73f-2ab10ca1a820",
- "name": "GCS",
- "dockerRepository": "airbyte/source-gcs",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gcs",
- "icon": "gcs.svg",
- "sourceType": "file",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Gcs Spec",
- "type": "object",
- "required": [ "gcs_bucket", "gcs_path", "service_account" ],
- "properties": {
- "gcs_bucket": {
- "type": "string",
- "title": "GCS bucket",
- "description": "GCS bucket name"
- },
- "gcs_path": {
- "type": "string",
- "title": "GCS Path",
- "description": "GCS path to data"
- },
- "service_account": {
- "type": "string",
- "title": "Service Account Information.",
- "description": "Enter your Google Cloud service account key in JSON format",
- "airbyte_secret": true,
- "examples": [ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false
- }, {
- "sourceDefinitionId": "5ea4459a-8f1a-452a-830f-a65c38cc438d",
- "name": "Genesys",
- "dockerRepository": "airbyte/source-genesys",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/genesys",
- "icon": "genesys.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/genesys",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Genesys Connector Configuration",
- "type": "object",
- "required": [ "start_date", "tenant_endpoint", "client_id", "client_secret" ],
- "properties": {
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "Your OAuth user Client ID",
- "airbyte_secret": true,
- "order": 0
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "Your OAuth user Client Secret",
- "airbyte_secret": true,
- "order": 1
- },
- "tenant_endpoint": {
- "title": "Tenant Endpoint Location",
- "type": "string",
- "description": "Please choose the right endpoint where your Tenant is located. More info by this Link",
- "enum": [ "Americas (US East)", "Americas (US East 2)", "Americas (US West)", "Americas (Canada)", "Americas (São Paulo)", "EMEA (Frankfurt)", "EMEA (Dublin)", "EMEA (London)", "Asia Pacific (Mumbai)", "Asia Pacific (Seoul)", "Asia Pacific (Sydney)" ],
- "order": 2
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "Start Date in format: YYYY-MM-DD",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false
- }, {
- "sourceDefinitionId": "e1a3866b-d3b2-43b6-b6d7-8c1ee4d7f53f",
- "name": "GetLago",
- "dockerRepository": "airbyte/source-getlago",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/getlago",
- "icon": "getlago.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/getlago",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Getlago Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Your API Key. See here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6cbea164-3237-433b-9abb-36d384ee4cbf",
- "name": "Gridly",
- "dockerRepository": "airbyte/source-gridly",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gridly",
- "icon": "gridly.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gridly",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Gridly Spec",
- "type": "object",
- "required": [ "api_key", "grid_id" ],
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "airbyte_secret": true
- },
- "grid_id": {
- "type": "string",
- "title": "Grid ID",
- "description": "ID of a grid, or can be ID of a branch"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "ef69ef6e-aa7f-4af1-a01d-ef775033524e",
- "name": "GitHub",
- "dockerRepository": "airbyte/source-github",
- "dockerImageTag": "0.4.8",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/github",
- "icon": "github.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/github",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "GitHub Source Spec",
- "type": "object",
- "required": [ "start_date", "repository" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authentication",
- "description": "Choose how to authenticate to GitHub",
- "type": "object",
- "order": 0,
- "group": "auth",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth",
- "required": [ "access_token" ],
- "properties": {
- "option_title": {
- "type": "string",
- "const": "OAuth Credentials",
- "order": 0
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "OAuth access token",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Personal Access Token",
- "required": [ "personal_access_token" ],
- "properties": {
- "option_title": {
- "type": "string",
- "const": "PAT Credentials",
- "order": 0
- },
- "personal_access_token": {
- "type": "string",
- "title": "Personal Access Tokens",
- "description": "Log into GitHub and then generate a personal access token. To load balance your API quota consumption across multiple API tokens, input multiple tokens separated with \",\"",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "start_date": {
- "type": "string",
- "title": "Start date",
- "description": "The date from which you'd like to replicate data from GitHub in the format YYYY-MM-DDT00:00:00Z. For the streams which support this configuration, only data generated on or after the start date will be replicated. This field doesn't apply to all streams, see the docs for more info",
- "examples": [ "2021-03-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "order": 1,
- "format": "date-time"
- },
- "repository": {
- "type": "string",
- "examples": [ "airbytehq/airbyte airbytehq/another-repo", "airbytehq/*", "airbytehq/airbyte" ],
- "title": "GitHub Repositories",
- "description": "Space-delimited list of GitHub organizations/repositories, e.g. `airbytehq/airbyte` for single repository, `airbytehq/*` for get all repositories from organization and `airbytehq/airbyte airbytehq/another-repo` for multiple repositories.",
- "order": 2,
- "pattern_descriptor": "org/repo1 org/repo2"
- },
- "branch": {
- "type": "string",
- "title": "Branch",
- "examples": [ "airbytehq/airbyte/master airbytehq/airbyte/my-branch" ],
- "description": "Space-delimited list of GitHub repository branches to pull commits for, e.g. `airbytehq/airbyte/master`. If no branches are specified for a repository, the default branch will be pulled.",
- "order": 3,
- "pattern_descriptor": "org/repo/branch1 org/repo/branch2"
- },
- "page_size_for_large_streams": {
- "type": "integer",
- "title": "Page size for large streams",
- "minimum": 1,
- "maximum": 100,
- "default": 10,
- "description": "The Github connector contains several streams with a large amount of data. The page size of such streams depends on the size of your repository. We recommended that you specify values between 10 and 30.",
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "option_title" ],
- "predicate_value": "OAuth Credentials",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.github.com" ]
- },
- "suggestedStreams": {
- "streams": [ "branches", "comments", "issues", "organizations", "pull_requests", "repositories", "stargazers", "tags", "teams", "users" ]
- },
- "maxSecondsBetweenMessages": 5400
- }, {
- "sourceDefinitionId": "5e6175e5-68e1-4c17-bff9-56103bbb0d80",
- "name": "Gitlab",
- "dockerRepository": "airbyte/source-gitlab",
- "dockerImageTag": "1.0.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gitlab",
- "icon": "gitlab.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gitlab",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Gitlab Spec",
- "type": "object",
- "required": [ "api_url", "start_date", "credentials" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "order": 0,
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "oauth2.0"
- },
- "client_id": {
- "type": "string",
- "description": "The API ID of the Gitlab developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "description": "The API Secret the Gitlab developer application.",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true
- },
- "token_expiry_date": {
- "type": "string",
- "description": "The date-time when the access token should be refreshed.",
- "format": "date-time"
- },
- "refresh_token": {
- "type": "string",
- "description": "The key to refresh the expired access_token.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Private Token",
- "type": "object",
- "required": [ "access_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "access_token"
- },
- "access_token": {
- "type": "string",
- "title": "Private Token",
- "description": "Log into your Gitlab account and then generate a personal Access Token.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "api_url": {
- "type": "string",
- "examples": [ "gitlab.com" ],
- "title": "API URL",
- "default": "gitlab.com",
- "description": "Please enter your basic URL from GitLab instance.",
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for GitLab API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "examples": [ "2021-03-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "order": 2,
- "format": "date-time"
- },
- "groups": {
- "type": "string",
- "examples": [ "airbyte.io" ],
- "title": "Groups",
- "description": "Space-delimited list of groups. e.g. airbyte.io.",
- "order": 3
- },
- "projects": {
- "type": "string",
- "title": "Projects",
- "examples": [ "airbyte.io/documentation" ],
- "description": "Space-delimited list of projects. e.g. airbyte.io/documentation meltano/tap-gitlab.",
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "properties": {
- "domain": {
- "type": "string",
- "path_in_connector_config": [ "api_url" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- },
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- },
- "token_expiry_date": {
- "type": "string",
- "format": "date-time",
- "path_in_connector_config": [ "credentials", "token_expiry_date" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "*" ]
- }
- }, {
- "sourceDefinitionId": "cf8ff320-6272-4faa-89e6-4402dc17e5d5",
- "name": "Glassfrog",
- "dockerRepository": "airbyte/source-glassfrog",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/glassfrog",
- "icon": "glassfrog.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/glassfrog",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Glassfrog Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API key provided by Glassfrog",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "ce38aec4-5a77-439a-be29-9ca44fd4e811",
- "name": "GNews",
- "dockerRepository": "airbyte/source-gnews",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gnews",
- "icon": "gnews.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gnews",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Gnews Spec",
- "type": "object",
- "required": [ "api_key", "query" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "API Key",
- "order": 0,
- "airbyte_secret": true
- },
- "query": {
- "type": "string",
- "order": 1,
- "title": "Query",
- "description": "This parameter allows you to specify your search keywords to find the news articles you are looking for. The keywords will be used to return the most relevant articles. It is possible to use logical operators with keywords. - Phrase Search Operator: This operator allows you to make an exact search. Keywords surrounded by \n quotation marks are used to search for articles with the exact same keyword sequence. \n For example the query: \"Apple iPhone\" will return articles matching at least once this sequence of keywords.\n- Logical AND Operator: This operator allows you to make sure that several keywords are all used in the article\n search. By default the space character acts as an AND operator, it is possible to replace the space character \n by AND to obtain the same result. For example the query: Apple Microsoft is equivalent to Apple AND Microsoft\n- Logical OR Operator: This operator allows you to retrieve articles matching the keyword a or the keyword b.\n It is important to note that this operator has a higher precedence than the AND operator. For example the \n query: Apple OR Microsoft will return all articles matching the keyword Apple as well as all articles matching \n the keyword Microsoft\n- Logical NOT Operator: This operator allows you to remove from the results the articles corresponding to the\n specified keywords. To use it, you need to add NOT in front of each word or phrase surrounded by quotes.\n For example the query: Apple NOT iPhone will return all articles matching the keyword Apple but not the keyword\n iPhone",
- "examples": [ "Microsoft Windows 10", "Apple OR Microsoft", "Apple AND NOT iPhone", "(Windows 7) AND (Windows 10)", "Intel AND (i7 OR i9)" ]
- },
- "language": {
- "type": "string",
- "title": "Language",
- "decription": "This parameter allows you to specify the language of the news articles returned by the API. You have to set as value the 2 letters code of the language you want to filter.",
- "order": 2,
- "enum": [ "ar", "zh", "nl", "en", "fr", "de", "el", "he", "hi", "it", "ja", "ml", "mr", "no", "pt", "ro", "ru", "es", "sv", "ta", "te", "uk" ]
- },
- "country": {
- "type": "string",
- "title": "Country",
- "description": "This parameter allows you to specify the country where the news articles returned by the API were published, the contents of the articles are not necessarily related to the specified country. You have to set as value the 2 letters code of the country you want to filter.",
- "order": 3,
- "enum": [ "au", "br", "ca", "cn", "eg", "fr", "de", "gr", "hk", "in", "ie", "il", "it", "jp", "nl", "no", "pk", "pe", "ph", "pt", "ro", "ru", "sg", "es", "se", "ch", "tw", "ua", "gb", "us" ]
- },
- "in": {
- "type": "array",
- "title": "In",
- "description": "This parameter allows you to choose in which attributes the keywords are searched. The attributes that can be set are title, description and content. It is possible to combine several attributes.",
- "order": 4,
- "items": {
- "type": "string",
- "enum": [ "title", "description", "content" ]
- }
- },
- "nullable": {
- "type": "array",
- "title": "Nullable",
- "description": "This parameter allows you to specify the attributes that you allow to return null values. The attributes that can be set are title, description and content. It is possible to combine several attributes",
- "order": 5,
- "items": {
- "type": "string",
- "enum": [ "title", "description", "content" ]
- }
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "This parameter allows you to filter the articles that have a publication date greater than or equal to the specified value. The date must respect the following format: YYYY-MM-DD hh:mm:ss (in UTC)",
- "order": 6,
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$",
- "examples": [ "2022-08-21 16:27:09" ]
- },
- "end_date": {
- "type": "string",
- "title": "End Date",
- "description": "This parameter allows you to filter the articles that have a publication date smaller than or equal to the specified value. The date must respect the following format: YYYY-MM-DD hh:mm:ss (in UTC)",
- "order": 6,
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$",
- "examples": [ "2022-08-21 16:27:09" ]
- },
- "sortby": {
- "type": "string",
- "title": "Sort By",
- "description": "This parameter allows you to choose with which type of sorting the articles should be returned. Two values are possible:\n - publishedAt = sort by publication date, the articles with the most recent publication date are returned first\n - relevance = sort by best match to keywords, the articles with the best match are returned first",
- "order": 7,
- "enum": [ "publishedAt", "relevance" ]
- },
- "top_headlines_query": {
- "type": "string",
- "order": 8,
- "title": "Top Headlines Query",
- "description": "This parameter allows you to specify your search keywords to find the news articles you are looking for. The keywords will be used to return the most relevant articles. It is possible to use logical operators with keywords. - Phrase Search Operator: This operator allows you to make an exact search. Keywords surrounded by \n quotation marks are used to search for articles with the exact same keyword sequence. \n For example the query: \"Apple iPhone\" will return articles matching at least once this sequence of keywords.\n- Logical AND Operator: This operator allows you to make sure that several keywords are all used in the article\n search. By default the space character acts as an AND operator, it is possible to replace the space character \n by AND to obtain the same result. For example the query: Apple Microsoft is equivalent to Apple AND Microsoft\n- Logical OR Operator: This operator allows you to retrieve articles matching the keyword a or the keyword b.\n It is important to note that this operator has a higher precedence than the AND operator. For example the \n query: Apple OR Microsoft will return all articles matching the keyword Apple as well as all articles matching \n the keyword Microsoft\n- Logical NOT Operator: This operator allows you to remove from the results the articles corresponding to the\n specified keywords. To use it, you need to add NOT in front of each word or phrase surrounded by quotes.\n For example the query: Apple NOT iPhone will return all articles matching the keyword Apple but not the keyword\n iPhone",
- "examples": [ "Microsoft Windows 10", "Apple OR Microsoft", "Apple AND NOT iPhone", "(Windows 7) AND (Windows 10)", "Intel AND (i7 OR i9)" ]
- },
- "top_headlines_topic": {
- "type": "string",
- "title": "Top Headlines Topic",
- "description": "This parameter allows you to change the category for the request.",
- "order": 9,
- "enum": [ "breaking-news", "world", "nation", "business", "technology", "entertainment", "sports", "science", "health" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "ba15ac82-5c6a-4fb2-bf24-925c23a1180c",
- "name": "GoCardless",
- "dockerRepository": "airbyte/source-gocardless",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gocardless",
- "icon": "gocardless.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gocardless",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Gocardless Spec",
- "type": "object",
- "required": [ "access_token", "gocardless_environment", "gocardless_version", "start_date" ],
- "properties": {
- "access_token": {
- "title": "Access Token",
- "type": "string",
- "pattern": "^(sandbox|live)_.+$",
- "description": "Gocardless API TOKEN",
- "airbyte_secret": true,
- "order": 0
- },
- "gocardless_environment": {
- "title": "GoCardless API Environment",
- "type": "string",
- "enum": [ "sandbox", "live" ],
- "default": "sandbox",
- "description": "Environment you are trying to connect to.",
- "order": 1
- },
- "gocardless_version": {
- "title": "GoCardless API Version",
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "description": "GoCardless version. This is a date. You can find the latest here: \nhttps://developer.gocardless.com/api-reference/#api-usage-making-requests\n",
- "order": 2
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data\nbefore this date will not be replicated.\n",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "32382e40-3b49-4b99-9c5c-4076501914e7",
- "name": "Gong",
- "dockerRepository": "airbyte/source-gong",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gong",
- "icon": "gong.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gong",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Gong Spec",
- "type": "object",
- "required": [ "access_key", "access_key_secret" ],
- "additionalProperties": true,
- "properties": {
- "access_key": {
- "type": "string",
- "title": "Gong Access Key",
- "description": "Gong Access Key",
- "airbyte_secret": true
- },
- "access_key_secret": {
- "type": "string",
- "title": "Gong Access Key Secret",
- "description": "Gong Access Key Secret",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "The date from which to list calls, in the ISO-8601 format; if not specified, the calls start with the earliest recorded call. For web-conference calls recorded by Gong, the date denotes its scheduled time, otherwise, it denotes its actual start time.",
- "examples": [ "2018-02-18T08:00:00Z" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "253487c0-2246-43ba-a21f-5116b20a2c50",
- "name": "Google Ads",
- "dockerRepository": "airbyte/source-google-ads",
- "dockerImageTag": "0.2.14",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-ads",
- "icon": "google-adwords.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-ads",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Google Ads Spec",
- "type": "object",
- "required": [ "credentials", "start_date", "customer_id" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "type": "object",
- "description": "",
- "title": "Google Credentials",
- "order": 0,
- "required": [ "developer_token", "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "developer_token": {
- "type": "string",
- "title": "Developer Token",
- "order": 0,
- "description": "Developer token granted by Google to use their APIs. More instruction on how to find this value in our docs",
- "airbyte_secret": true
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "order": 1,
- "description": "The Client ID of your Google Ads developer application. More instruction on how to find this value in our docs"
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "order": 2,
- "description": "The Client Secret of your Google Ads developer application. More instruction on how to find this value in our docs",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "order": 3,
- "description": "The token for obtaining a new access token. More instruction on how to find this value in our docs",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "order": 4,
- "description": "Access Token for making authenticated requests. More instruction on how to find this value in our docs",
- "airbyte_secret": true
- }
- }
- },
- "customer_id": {
- "title": "Customer ID(s)",
- "type": "string",
- "description": "Comma separated list of (client) customer IDs. Each customer ID must be specified as a 10-digit number without dashes. More instruction on how to find this value in our docs. Metrics streams like AdGroupAdReport cannot be requested for a manager account.",
- "pattern": "^[0-9]{10}(,[0-9]{10})*$",
- "examples": [ "6783948572,5839201945" ],
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25. Any data before this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "2017-01-25" ],
- "order": 2,
- "format": "date"
- },
- "end_date": {
- "type": "string",
- "title": "End Date",
- "description": "UTC date and time in the format 2017-01-25. Any data after this date will not be replicated.",
- "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "2017-01-30" ],
- "order": 6,
- "format": "date"
- },
- "custom_queries": {
- "type": "array",
- "title": "Custom GAQL Queries",
- "description": "",
- "order": 3,
- "items": {
- "type": "object",
- "required": [ "query", "table_name" ],
- "properties": {
- "query": {
- "type": "string",
- "title": "Custom Query",
- "description": "A custom defined GAQL query for building the report. Should not contain segments.date expression because it is used by incremental streams. See Google's query builder for more information.",
- "examples": [ "SELECT segments.ad_destination_type, campaign.advertising_channel_sub_type FROM campaign WHERE campaign.status = 'PAUSED'" ]
- },
- "table_name": {
- "type": "string",
- "title": "Destination Table Name",
- "description": "The table name in your destination database for choosen query."
- }
- }
- }
- },
- "login_customer_id": {
- "type": "string",
- "title": "Login Customer ID for Managed Accounts",
- "description": "If your access to the customer account is through a manager account, this field is required and must be set to the customer ID of the manager account (10-digit number without dashes). More information about this field you can see here",
- "pattern": "^([0-9]{10})?$",
- "examples": [ "7349206847" ],
- "order": 4
- },
- "conversion_window_days": {
- "title": "Conversion Window",
- "type": "integer",
- "description": "A conversion window is the period of time after an ad interaction (such as an ad click or video view) during which a conversion, such as a purchase, is recorded in Google Ads. For more information, see Google's documentation.",
- "minimum": 0,
- "maximum": 1095,
- "default": 14,
- "examples": [ 14 ],
- "order": 5
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ], [ "developer_token" ] ],
- "oauthFlowOutputParameters": [ [ "access_token" ], [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "accounts.google.com", "googleads.googleapis.com" ]
- }
- }, {
- "sourceDefinitionId": "eff3616a-f9c3-11eb-9a03-0242ac130003",
- "name": "Google Analytics (Universal Analytics)",
- "dockerRepository": "airbyte/source-google-analytics-v4",
- "dockerImageTag": "0.1.34",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-analytics-v4",
- "icon": "google-analytics.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-analytics-universal-analytics",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Google Analytics (Universal Analytics) Spec",
- "type": "object",
- "required": [ "view_id", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "order": 0,
- "type": "object",
- "title": "Credentials",
- "description": "Credentials for the service",
- "oneOf": [ {
- "title": "Authenticate via Google (Oauth)",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Google Analytics developer application.",
- "airbyte_secret": true,
- "order": 1
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Google Analytics developer application.",
- "airbyte_secret": true,
- "order": 2
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "The token for obtaining a new access token.",
- "airbyte_secret": true,
- "order": 3
- },
- "access_token": {
- "title": "Access Token",
- "type": "string",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- }, {
- "type": "object",
- "title": "Service Account Key Authentication",
- "required": [ "credentials_json" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Service",
- "order": 0
- },
- "credentials_json": {
- "title": "Service Account JSON Key",
- "type": "string",
- "description": "The JSON key of the service account to use for authorization",
- "examples": [ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }" ],
- "airbyte_secret": true
- }
- }
- } ]
- },
- "start_date": {
- "order": 1,
- "type": "string",
- "title": "Replication Start Date",
- "description": "The date in the format YYYY-MM-DD. Any data before this date will not be replicated.",
- "examples": [ "2020-06-01" ]
- },
- "view_id": {
- "order": 2,
- "type": "string",
- "title": "View ID",
- "description": "The ID for the Google Analytics View you want to fetch data from. This can be found from the Google Analytics Account Explorer."
- },
- "custom_reports": {
- "order": 3,
- "type": "string",
- "title": "Custom Reports",
- "description": "A JSON array describing the custom reports you want to sync from Google Analytics. See the docs for more information about the exact format you can use to fill out this field."
- },
- "window_in_days": {
- "type": "integer",
- "title": "Data request time increment in days",
- "description": "The time increment used by the connector when requesting data from the Google Analytics API. More information is available in the the docs. The bigger this value is, the faster the sync will be, but the more likely that sampling will be applied to your data, potentially causing inaccuracies in the returned results. We recommend setting this to 1 unless you have a hard requirement to make the sync faster at the expense of accuracy. The minimum allowed value for this field is 1, and the maximum is 364. ",
- "examples": [ 30, 60, 90, 120, 200, 364 ],
- "default": 1,
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "access_token" ], [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "oauth2.googleapis.com", "www.googleapis.com", "analyticsdata.googleapis.com", "analyticsreporting.googleapis.com" ]
- }
- }, {
- "sourceDefinitionId": "3cc2eafd-84aa-4dca-93af-322d9dfeec1a",
- "name": "Google Analytics 4 (GA4)",
- "dockerRepository": "airbyte/source-google-analytics-data-api",
- "dockerImageTag": "0.2.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-analytics-data-api",
- "icon": "google-analytics.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-analytics-data-api",
- "connectionSpecification": {
- "$schema": "https://json-schema.org/draft-07/schema#",
- "title": "Google Analytics (Data API) Spec",
- "type": "object",
- "required": [ "property_id", "date_ranges_start_date" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "order": 0,
- "type": "object",
- "title": "Credentials",
- "description": "Credentials for the service",
- "oneOf": [ {
- "title": "Authenticate via Google (Oauth)",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Google Analytics developer application.",
- "order": 1
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Google Analytics developer application.",
- "airbyte_secret": true,
- "order": 2
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "The token for obtaining a new access token.",
- "airbyte_secret": true,
- "order": 3
- },
- "access_token": {
- "title": "Access Token",
- "type": "string",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- }, {
- "type": "object",
- "title": "Service Account Key Authentication",
- "required": [ "credentials_json" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Service",
- "order": 0
- },
- "credentials_json": {
- "title": "Service Account JSON Key",
- "type": "string",
- "description": "The JSON key of the service account to use for authorization",
- "examples": [ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }" ],
- "airbyte_secret": true,
- "order": 1
- }
- }
- } ]
- },
- "property_id": {
- "type": "string",
- "title": "Property ID",
- "description": "A Google Analytics GA4 property identifier whose events are tracked. Specified in the URL path and not the body",
- "order": 1
- },
- "date_ranges_start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The start date from which to replicate report data in the format YYYY-MM-DD. Data generated before this date will not be included in the report. Not applied to custom Cohort reports.",
- "format": "date",
- "order": 2
- },
- "custom_reports": {
- "order": 3,
- "type": "string",
- "title": "Custom Reports",
- "description": "A JSON array describing the custom reports you want to sync from Google Analytics. See the docs for more information about the exact format you can use to fill out this field."
- },
- "window_in_days": {
- "type": "integer",
- "title": "Data request time increment in days",
- "description": "The time increment used by the connector when requesting data from the Google Analytics API. More information is available in the the docs. The bigger this value is, the faster the sync will be, but the more likely that sampling will be applied to your data, potentially causing inaccuracies in the returned results. We recommend setting this to 1 unless you have a hard requirement to make the sync faster at the expense of accuracy. The minimum allowed value for this field is 1, and the maximum is 364. Not applied to custom Cohort reports.",
- "examples": [ 30, 60, 90, 120, 200, 364 ],
- "minimum": 1,
- "maximum": 364,
- "default": 1,
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "access_token" ], [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "oauth2.googleapis.com", "www.googleapis.com", "analyticsdata.googleapis.com" ]
- }
- }, {
- "sourceDefinitionId": "d19ae824-e289-4b14-995a-0632eb46d246",
- "name": "Google Directory",
- "dockerRepository": "airbyte/source-google-directory",
- "dockerImageTag": "0.1.9",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-directory",
- "icon": "googledirectory.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-directory",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Google Directory Spec",
- "type": "object",
- "required": [ ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Google Credentials",
- "description": "Google APIs use the OAuth 2.0 protocol for authentication and authorization. The Source supports Web server application and Service accounts scenarios.",
- "type": "object",
- "oneOf": [ {
- "title": "Sign in via Google (OAuth)",
- "description": "For these scenario user only needs to give permission to read Google Directory data.",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "credentials_title": {
- "type": "string",
- "title": "Credentials Title",
- "description": "Authentication Scenario",
- "const": "Web server app",
- "enum": [ "Web server app" ],
- "default": "Web server app",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of the developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client secret",
- "type": "string",
- "description": "The Client Secret of the developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "The Token for obtaining a new access token.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Service Account Key",
- "description": "For these scenario user should obtain service account's credentials from the Google API Console and provide delegated email.",
- "type": "object",
- "required": [ "credentials_json", "email" ],
- "properties": {
- "credentials_title": {
- "type": "string",
- "title": "Credentials Title",
- "description": "Authentication Scenario",
- "const": "Service accounts",
- "enum": [ "Service accounts" ],
- "default": "Service accounts",
- "order": 0
- },
- "credentials_json": {
- "type": "string",
- "title": "Credentials JSON",
- "description": "The contents of the JSON service account key. See the docs for more information on how to generate this key.",
- "airbyte_secret": true
- },
- "email": {
- "type": "string",
- "title": "Email",
- "description": "The email of the user, which has permissions to access the Google Workspace Admin APIs."
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "1e9086ab-ddac-4c1d-aafd-ba43ff575fe4",
- "name": "Google PageSpeed Insights",
- "dockerRepository": "airbyte/source-google-pagespeed-insights",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-pagespeed-insights",
- "icon": "google-pagespeed-insights.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/google-pagespeed-insights",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Google PageSpeed Insights Spec",
- "type": "object",
- "required": [ "urls", "strategies", "categories" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Google PageSpeed API Key. See here. The key is optional - however the API is heavily rate limited when using without API Key. Creating and using the API key therefore is recommended. The key is case sensitive.",
- "airbyte_secret": true
- },
- "urls": {
- "type": "array",
- "items": {
- "type": "string",
- "pattern": "^(?:origin:)?(http(s)?:\\/\\/)[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:\\/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$"
- },
- "title": "URLs to analyse",
- "description": "The URLs to retrieve pagespeed information from. The connector will attempt to sync PageSpeed reports for all the defined URLs. Format: https://(www.)url.domain",
- "example": "https://example.com"
- },
- "strategies": {
- "type": "array",
- "items": {
- "type": "string",
- "enum": [ "desktop", "mobile" ]
- },
- "title": "Analyses Strategies",
- "description": "The analyses strategy to use. Either \"desktop\" or \"mobile\"."
- },
- "categories": {
- "type": "array",
- "items": {
- "type": "string",
- "enum": [ "accessibility", "best-practices", "performance", "pwa", "seo" ]
- },
- "title": "Lighthouse Categories",
- "description": "Defines which Lighthouse category to run. One or many of: \"accessibility\", \"best-practices\", \"performance\", \"pwa\", \"seo\"."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "eb4c9e00-db83-4d63-a386-39cfa91012a8",
- "name": "Google Search Console",
- "dockerRepository": "airbyte/source-google-search-console",
- "dockerImageTag": "0.1.22",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-search-console",
- "icon": "googlesearchconsole.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-search-console",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Google Search Console Spec",
- "type": "object",
- "required": [ "site_urls", "start_date", "authorization" ],
- "properties": {
- "site_urls": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "title": "Website URL Property",
- "description": "The URLs of the website property attached to your GSC account. Read more here.",
- "examples": [ "https://example1.com/", "sc-domain:example2.com" ],
- "order": 0
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "UTC date in the format 2017-01-25. Any data before this date will not be replicated.",
- "examples": [ "2021-01-01" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 1,
- "format": "date"
- },
- "end_date": {
- "type": "string",
- "title": "End Date",
- "description": "UTC date in the format 2017-01-25. Any data after this date will not be replicated. Must be greater or equal to the start date field.",
- "examples": [ "2021-12-12" ],
- "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 2,
- "format": "date"
- },
- "authorization": {
- "type": "object",
- "title": "Authentication Type",
- "description": "",
- "order": 3,
- "oneOf": [ {
- "title": "OAuth",
- "type": "object",
- "required": [ "auth_type", "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The client ID of your Google Search Console developer application. Read more here.",
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The client secret of your Google Search Console developer application. Read more here.",
- "airbyte_secret": true
- },
- "access_token": {
- "title": "Access Token",
- "type": "string",
- "description": "Access token for making authenticated requests. Read more here.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "The token for obtaining a new access token. Read more here.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Service Account Key Authentication",
- "required": [ "auth_type", "service_account_info", "email" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Service",
- "order": 0
- },
- "service_account_info": {
- "title": "Service Account JSON Key",
- "type": "string",
- "description": "The JSON key of the service account to use for authorization. Read more here.",
- "examples": [ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }" ],
- "airbyte_secret": true
- },
- "email": {
- "title": "Admin Email",
- "type": "string",
- "description": "The email of the user which has permissions to access the Google Workspace Admin APIs."
- }
- }
- } ]
- },
- "custom_reports": {
- "order": 4,
- "type": "string",
- "title": "Custom Reports",
- "description": "A JSON array describing the custom reports you want to sync from Google Search Console. See the docs for more information about the exact format you can use to fill out this field."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "authorization", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "access_token" ], [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*.googleapis.com" ]
- }
- }, {
- "sourceDefinitionId": "71607ba1-c0ac-4799-8049-7f4b90dd50f7",
- "name": "Google Sheets",
- "dockerRepository": "airbyte/source-google-sheets",
- "dockerImageTag": "0.2.37",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-sheets",
- "icon": "google-sheets.svg",
- "sourceType": "file",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-sheets",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Google Sheets Source Spec",
- "type": "object",
- "required": [ "spreadsheet_id", "credentials" ],
- "additionalProperties": true,
- "properties": {
- "spreadsheet_id": {
- "type": "string",
- "title": "Spreadsheet Link",
- "description": "Enter the link to the Google spreadsheet you want to sync",
- "examples": [ "https://docs.google.com/spreadsheets/d/1hLd9Qqti3UyLXZB2aFfUWDT7BG-arw2xy4HR3D-dwUb/edit" ]
- },
- "row_batch_size": {
- "type": "integer",
- "title": "Row Batch Size",
- "description": "Number of rows fetched when making a Google Sheet API call. Defaults to 200.",
- "default": 200
- },
- "names_conversion": {
- "type": "boolean",
- "title": "Columns Name Conversion",
- "description": "Columns name conversion using a set of rules, for example, 'My Name' -> 'my-name'.",
- "default": false
- },
- "credentials": {
- "type": "object",
- "title": "Authentication",
- "description": "Credentials for connecting to the Google Sheets API",
- "oneOf": [ {
- "title": "Authenticate via Google (OAuth)",
- "type": "object",
- "required": [ "auth_type", "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client"
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "Enter your Google application's Client ID",
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "Enter your Google application's Client Secret",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "Enter your Google application's refresh token",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Service Account Key Authentication",
- "type": "object",
- "required": [ "auth_type", "service_account_info" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Service"
- },
- "service_account_info": {
- "type": "string",
- "title": "Service Account Information.",
- "description": "Enter your Google Cloud service account key in JSON format",
- "airbyte_secret": true,
- "examples": [ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }" ]
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*.googleapis.com" ]
- }
- }, {
- "sourceDefinitionId": "a68fbcde-b465-4ab3-b2a6-b0590a875835",
- "name": "Google Webfonts",
- "dockerRepository": "airbyte/source-google-webfonts",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-webfonts",
- "icon": "googleworkpace.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-webfonts",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Google Webfonts Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API key is required to access google apis, For getting your's goto google console and generate api key for Webfonts",
- "airbyte_secret": true
- },
- "sort": {
- "type": "string",
- "description": "Optional, to find how to sort"
- },
- "prettyPrint": {
- "type": "string",
- "description": "Optional, boolean type"
- },
- "alt": {
- "type": "string",
- "description": "Optional, Available params- json, media, proto"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "ed9dfefa-1bbc-419d-8c5e-4d78f0ef6734",
- "name": "Google Workspace Admin Reports",
- "dockerRepository": "airbyte/source-google-workspace-admin-reports",
- "dockerImageTag": "0.1.8",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-workspace-admin-reports",
- "icon": "googleworkpace.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-workspace-admin-reports",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Google Directory Spec",
- "type": "object",
- "required": [ "credentials_json", "email" ],
- "additionalProperties": false,
- "properties": {
- "credentials_json": {
- "type": "string",
- "title": "Credentials JSON",
- "description": "The contents of the JSON service account key. See the docs for more information on how to generate this key.",
- "airbyte_secret": true
- },
- "email": {
- "type": "string",
- "title": "Email",
- "description": "The email of the user, who has permissions to access the Google Workspace Admin APIs."
- },
- "lookback": {
- "type": "integer",
- "title": "Lookback Window in Days",
- "minimum": 0,
- "maximum": 180,
- "description": "Sets the range of time shown in the report. The maximum value allowed by the Google API is 180 days."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "59f1e50a-331f-4f09-b3e8-2e8d4d355f44",
- "name": "Greenhouse",
- "dockerRepository": "airbyte/source-greenhouse",
- "dockerImageTag": "0.3.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/greenhouse",
- "icon": "greenhouse.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/greenhouse",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Greenhouse Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Greenhouse API Key. See the docs for more information on how to generate this key.",
- "airbyte_secret": true,
- "order": 0
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "harvest.greenhouse.io" ]
- }
- }, {
- "sourceDefinitionId": "bff9a277-e01d-420d-81ee-80f28a307318",
- "name": "Gutendex",
- "dockerRepository": "airbyte/source-gutendex",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gutendex",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/gutendex",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Gutendex Spec",
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "author_year_start": {
- "type": "string",
- "description": "(Optional) Defines the minimum birth year of the authors. Books by authors born prior to the start year will not be returned. Supports both positive (CE) or negative (BCE) integer values",
- "pattern": "^[-]?[0-9]{1,4}$",
- "examples": [ 2002, 500, -500, 2020 ]
- },
- "author_year_end": {
- "type": "string",
- "description": "(Optional) Defines the maximum birth year of the authors. Books by authors born after the end year will not be returned. Supports both positive (CE) or negative (BCE) integer values",
- "pattern": "^[-]?[0-9]{1,4}$",
- "examples": [ 2002, 500, -500, 2020 ]
- },
- "copyright": {
- "type": "string",
- "description": "(Optional) Use this to find books with a certain copyright status - true for books with existing copyrights, false for books in the public domain in the USA, or null for books with no available copyright information.",
- "pattern": "^(true|false|null)$",
- "examples": [ true, false, null ]
- },
- "languages": {
- "type": "string",
- "description": "(Optional) Use this to find books in any of a list of languages. They must be comma-separated, two-character language codes.",
- "examples": [ "en", "en,fr,fi" ]
- },
- "search": {
- "type": "string",
- "description": "(Optional) Use this to search author names and book titles with given words. They must be separated by a space (i.e. %20 in URL-encoded format) and are case-insensitive.",
- "examples": [ "dickens%20great%20expect", "dickens" ]
- },
- "sort": {
- "type": "string",
- "description": "(Optional) Use this to sort books - ascending for Project Gutenberg ID numbers from lowest to highest, descending for IDs highest to lowest, or popular (the default) for most popular to least popular by number of downloads.",
- "pattern": "^(ascending|descending|popular)$",
- "examples": [ "ascending", "descending", "popular" ]
- },
- "topic": {
- "type": "string",
- "description": "(Optional) Use this to search for a case-insensitive key-phrase in books' bookshelves or subjects.",
- "examples": [ "children", "fantasy" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6fe89830-d04d-401b-aad6-6552ffa5c4af",
- "name": "Harness",
- "dockerRepository": "farosai/airbyte-harness-source",
- "dockerImageTag": "0.1.23",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/harness",
- "icon": "harness.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.faros.ai",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Harness Spec",
- "type": "object",
- "required": [ "api_key", "account_id" ],
- "additionalProperties": false,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "Harness API key",
- "airbyte_secret": true
- },
- "account_id": {
- "type": "string",
- "title": "Harness account ID"
- },
- "api_url": {
- "type": "string",
- "title": "Harness API URL",
- "default": "https://app.harness.io",
- "examples": [ "https://my-harness-server.example.com" ]
- },
- "cutoff_days": {
- "type": "number",
- "title": "Harness Cutoff Days",
- "default": 90,
- "description": "Only fetch deployments updated after cutoff"
- },
- "page_size": {
- "type": "number",
- "title": "Harness Page Size",
- "default": 100,
- "description": "number of pipelines (builds) to fetch per call"
- },
- "deployment_timeout": {
- "type": "number",
- "title": "Harness Deployment Timeout",
- "default": 24,
- "description": "Max number of hours to consider for a deployment to be running/queued before giving up on syncing it"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "fe2b4084-3386-4d3b-9ad6-308f61a6f1e6",
- "name": "Harvest",
- "dockerRepository": "airbyte/source-harvest",
- "dockerImageTag": "0.1.17",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/harvest",
- "icon": "harvest.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/harvest",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Harvest Spec",
- "type": "object",
- "required": [ "account_id", "replication_start_date" ],
- "additionalProperties": true,
- "properties": {
- "account_id": {
- "title": "Account ID",
- "description": "Harvest account ID. Required for all Harvest requests in pair with Personal Access Token",
- "airbyte_secret": true,
- "type": "string",
- "order": 0
- },
- "replication_start_date": {
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "type": "string",
- "order": 1,
- "format": "date-time"
- },
- "replication_end_date": {
- "title": "End Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data after this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "type": "string",
- "airbyte_hidden": true,
- "order": 2,
- "format": "date-time"
- },
- "credentials": {
- "title": "Authentication mechanism",
- "description": "Choose how to authenticate to Harvest.",
- "type": "object",
- "order": 3,
- "oneOf": [ {
- "type": "object",
- "title": "Authenticate via Harvest (OAuth)",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "additionalProperties": true,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Harvest developer application."
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Harvest developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "Refresh Token to renew the expired Access Token.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Authenticate with Personal Access Token",
- "required": [ "api_token" ],
- "additionalProperties": true,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Token",
- "order": 0
- },
- "api_token": {
- "title": "Personal Access Token",
- "description": "Log into Harvest and then create new personal access token.",
- "type": "string",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- },
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "Client",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.harvestapp.com" ]
- }
- }, {
- "sourceDefinitionId": "492b56d1-937c-462e-8076-21ad2031e784",
- "name": "Hellobaton",
- "dockerRepository": "airbyte/source-hellobaton",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/hellobaton",
- "icon": "hellobaton.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Hellobaton Spec",
- "type": "object",
- "required": [ "api_key", "company" ],
- "additionalProperties": false,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "authentication key required to access the api endpoints",
- "airbyte_secret": true
- },
- "company": {
- "type": "string",
- "description": "Company name that generates your base api url",
- "examples": [ "google", "facebook", "microsoft" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "8097ceb9-383f-42f6-9f92-d3fd4bcc7689",
- "name": "Hubplanner",
- "dockerRepository": "airbyte/source-hubplanner",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/hubplanner",
- "icon": "hubplanner.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/hubplanner",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Hubplanner Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "Hubplanner API key. See https://github.com/hubplanner/API#authentication for more details.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "36c891d9-4bd9-43ac-bad2-10e12756272c",
- "name": "HubSpot",
- "dockerRepository": "airbyte/source-hubspot",
- "dockerImageTag": "0.6.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/hubspot",
- "icon": "hubspot.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/hubspot",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "HubSpot Source Spec",
- "type": "object",
- "required": [ "start_date", "credentials" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "title": "Start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "format": "date-time"
- },
- "credentials": {
- "title": "Authentication",
- "description": "Choose how to authenticate to HubSpot.",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth",
- "required": [ "client_id", "client_secret", "refresh_token", "credentials_title" ],
- "properties": {
- "credentials_title": {
- "type": "string",
- "title": "Credentials",
- "description": "Name of the credentials",
- "const": "OAuth Credentials",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "description": "The Client ID of your HubSpot developer application. See the Hubspot docs if you need help finding this ID.",
- "type": "string",
- "examples": [ "123456789000" ]
- },
- "client_secret": {
- "title": "Client Secret",
- "description": "The client secret for your HubSpot developer application. See the Hubspot docs if you need help finding this secret.",
- "type": "string",
- "examples": [ "secret" ],
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "description": "Refresh token to renew an expired access token. See the Hubspot docs if you need help finding this token.",
- "type": "string",
- "examples": [ "refresh_token" ],
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Private App",
- "required": [ "access_token", "credentials_title" ],
- "properties": {
- "credentials_title": {
- "type": "string",
- "title": "Credentials",
- "description": "Name of the credentials set",
- "const": "Private App Credentials",
- "order": 0
- },
- "access_token": {
- "title": "Access token",
- "description": "HubSpot Access token. See the Hubspot docs if you need help finding this token.",
- "type": "string",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.hubapi.com" ]
- }
- }, {
- "sourceDefinitionId": "f23b7b7c-d705-49a3-9042-09add3b104a5",
- "name": "IP2Whois",
- "dockerRepository": "airbyte/source-ip2whois",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/ip2whois",
- "icon": "ip2whois.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/ip2whois",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Ip2whois Spec",
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API key",
- "type": "string",
- "description": "Your API Key. See here.",
- "airbyte_secret": true
- },
- "domain": {
- "title": "Domain",
- "type": "string",
- "description": "Domain name. See here.",
- "examples": [ "www.google.com", "www.facebook.com" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "447e0381-3780-4b46-bb62-00a4e3c8b8e2",
- "name": "IBM Db2",
- "dockerRepository": "airbyte/source-db2",
- "dockerImageTag": "0.1.19",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/db2",
- "icon": "db2.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/db2",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "IBM Db2 Source Spec",
- "type": "object",
- "required": [ "host", "port", "db", "username", "password", "encryption" ],
- "properties": {
- "host": {
- "description": "Host of the Db2.",
- "type": "string",
- "order": 0
- },
- "port": {
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 8123,
- "examples": [ "8123" ],
- "order": 1
- },
- "db": {
- "description": "Name of the database.",
- "type": "string",
- "examples": [ "default" ],
- "order": 2
- },
- "username": {
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 5
- },
- "encryption": {
- "title": "Encryption",
- "type": "object",
- "description": "Encryption method to use when communicating with the database",
- "order": 6,
- "oneOf": [ {
- "title": "Unencrypted",
- "description": "Data transfer will not be encrypted.",
- "required": [ "encryption_method" ],
- "properties": {
- "encryption_method": {
- "type": "string",
- "const": "unencrypted"
- }
- }
- }, {
- "title": "TLS Encrypted (verify certificate)",
- "description": "Verify and use the cert provided by the server.",
- "required": [ "encryption_method", "ssl_certificate" ],
- "properties": {
- "encryption_method": {
- "type": "string",
- "const": "encrypted_verify_certificate"
- },
- "ssl_certificate": {
- "title": "SSL PEM file",
- "description": "Privacy Enhanced Mail (PEM) files are concatenated certificate containers frequently used in certificate installations",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true
- },
- "key_store_password": {
- "title": "Key Store Password. This field is optional. If you do not fill in this field, the password will be randomly generated.",
- "description": "Key Store Password",
- "type": "string",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "${host}" ]
- }
- }, {
- "sourceDefinitionId": "38f84314-fe6a-4257-97be-a8dcd942d693",
- "name": "Insightly",
- "dockerRepository": "airbyte/source-insightly",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/insightly",
- "icon": "insightly.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/insightly",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Insightly Spec",
- "type": "object",
- "required": [ "token", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "token": {
- "type": [ "string", "null" ],
- "title": "API Token",
- "description": "Your Insightly API token.",
- "airbyte_secret": true
- },
- "start_date": {
- "type": [ "string", "null" ],
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for Insightly in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated. Note that it will be used only for incremental streams.",
- "examples": [ "2021-03-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6acf6b55-4f1e-4fca-944e-1a3caef8aba8",
- "name": "Instagram",
- "dockerRepository": "airbyte/source-instagram",
- "dockerImageTag": "1.0.5",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/instagram",
- "icon": "instagram.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/instagram",
- "changelogUrl": "https://docs.airbyte.com/integrations/sources/instagram",
- "connectionSpecification": {
- "title": "Source Instagram",
- "type": "object",
- "properties": {
- "start_date": {
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for User Insights, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "type": "string",
- "format": "date-time"
- },
- "access_token": {
- "title": "Access Token",
- "description": "The value of the access token generated with instagram_basic, instagram_manage_insights, pages_show_list, pages_read_engagement, Instagram Public Content Access permissions. See the docs for more information",
- "airbyte_secret": true,
- "type": "string"
- }
- },
- "required": [ "start_date", "access_token" ]
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ ],
- "oauthFlowInitParameters": [ ],
- "oauthFlowOutputParameters": [ [ "access_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "graph.facebook.com" ]
- }
- }, {
- "sourceDefinitionId": "1901024c-0249-45d0-bcac-31a954652927",
- "name": "Instatus",
- "dockerRepository": "airbyte/source-instatus",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/instatus",
- "icon": "instatus.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/instatus",
- "connectionSpecification": {
- "title": "Instatus Spec",
- "type": "object",
- "additionalProperties": true,
- "required": [ "api_key" ],
- "properties": {
- "api_key": {
- "type": "string",
- "title": "Rest API Key",
- "airbyte_secret": true,
- "description": "Instatus REST API key"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d8313939-3782-41b0-be29-b3ca20d8dd3a",
- "name": "Intercom",
- "dockerRepository": "airbyte/source-intercom",
- "dockerImageTag": "0.2.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/intercom",
- "icon": "intercom.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/intercom",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Intercom Spec",
- "type": "object",
- "required": [ "start_date", "access_token" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "title": "Start date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2020-11-16T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "format": "date-time"
- },
- "access_token": {
- "title": "Access token",
- "type": "string",
- "description": "Access token for making authenticated requests. See the Intercom docs for more information.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ ],
- "oauthFlowInitParameters": [ ],
- "oauthFlowOutputParameters": [ [ "access_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.intercom.io" ]
- }
- }, {
- "sourceDefinitionId": "3d15163b-11d8-412f-b808-795c9b2c3a3a",
- "name": "Intruder",
- "dockerRepository": "airbyte/source-intruder",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/intruder",
- "icon": "intruder.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/intruder",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Intruder Spec",
- "type": "object",
- "required": [ "access_token" ],
- "additionalProperties": true,
- "properties": {
- "access_token": {
- "title": "API Access token",
- "type": "string",
- "description": "Your API Access token. See here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "2e875208-0c0b-4ee4-9e92-1cb3156ea799",
- "name": "Iterable",
- "dockerRepository": "airbyte/source-iterable",
- "dockerImageTag": "0.1.27",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/iterable",
- "icon": "iterable.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/iterable",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Iterable Spec",
- "type": "object",
- "required": [ "start_date", "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Iterable API Key. See the docs for more information on how to obtain this key.",
- "airbyte_secret": true,
- "order": 0
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for Iterable, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "examples": [ "2021-04-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "order": 1,
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.iterable.com" ]
- }
- }, {
- "sourceDefinitionId": "d6f73702-d7a0-4e95-9758-b0fb1af0bfba",
- "name": "Jenkins",
- "dockerRepository": "farosai/airbyte-jenkins-source",
- "dockerImageTag": "0.1.23",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/jenkins",
- "icon": "jenkins.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.faros.ai",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Jenkins Spec",
- "type": "object",
- "required": [ "server_url", "user", "token" ],
- "additionalProperties": false,
- "properties": {
- "server_url": {
- "type": "string",
- "title": "Jenkins Server URL",
- "examples": [ "https://my-jenkins-server.example.com" ]
- },
- "user": {
- "type": "string",
- "description": "Jenkins User"
- },
- "token": {
- "type": "string",
- "title": "Jenkins Token",
- "airbyte_secret": true
- },
- "depth": {
- "type": "number",
- "title": "Depth",
- "description": "Jenkins JSON API does not support deep scan, it is required to generate a suitable tree for the corresponding depth. Job in some cases have many sub jobs, depth needs to quantify how many sub jobs are showed. If depth is not provided we will try to compute it automatically"
- },
- "pageSize": {
- "type": "integer",
- "minimum": 1,
- "default": 10,
- "title": "Page Size",
- "description": "Quantity of jobs on a single page fetched from Jenkins"
- },
- "last100Builds": {
- "type": "boolean",
- "default": false,
- "title": "Last 100 Builds Only",
- "description": "Fetch only 100 last builds from Jenkins server"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "68e63de2-bb83-4c7e-93fa-a8a9051e3993",
- "name": "Jira",
- "dockerRepository": "airbyte/source-jira",
- "dockerImageTag": "0.3.7",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/jira",
- "icon": "jira.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/jira",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Jira Spec",
- "type": "object",
- "required": [ "api_token", "domain", "email" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "type": "string",
- "title": "API Token",
- "description": "Jira API Token. See the docs for more information on how to generate this key.",
- "airbyte_secret": true,
- "order": 0
- },
- "domain": {
- "type": "string",
- "title": "Domain",
- "examples": [ ".atlassian.net", ".jira.com", "jira..com" ],
- "description": "The Domain for your Jira account, e.g. airbyteio.atlassian.net, airbyteio.jira.com, jira.your-domain.com",
- "order": 1
- },
- "email": {
- "type": "string",
- "title": "Email",
- "description": "The user email for your Jira account.",
- "order": 2
- },
- "projects": {
- "type": "array",
- "title": "Projects",
- "items": {
- "type": "string"
- },
- "examples": [ "PROJ1", "PROJ2" ],
- "description": "List of Jira project keys to replicate data for.",
- "order": 3
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date from which you want to replicate data from Jira, use the format YYYY-MM-DDT00:00:00Z. Note that this field only applies to certain streams, and only data generated on or after the start date will be replicated. For more information, refer to the documentation.",
- "examples": [ "2021-03-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "format": "date-time",
- "order": 4
- },
- "expand_issue_changelog": {
- "type": "boolean",
- "title": "Expand Issue Changelog",
- "description": "Expand the changelog when replicating issues.",
- "default": false,
- "order": 5
- },
- "render_fields": {
- "type": "boolean",
- "title": "Render Issue Fields",
- "description": "Render issue fields in HTML format in addition to Jira JSON-like format.",
- "default": false,
- "order": 6
- },
- "enable_experimental_streams": {
- "type": "boolean",
- "title": "Enable Experimental Streams",
- "description": "Allow the use of experimental streams which rely on undocumented Jira API endpoints. See https://docs.airbyte.com/integrations/sources/jira#experimental-tables for more info.",
- "default": false,
- "order": 7
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "${domain}" ]
- },
- "maxSecondsBetweenMessages": 21600
- }, {
- "sourceDefinitionId": "e300ece7-b073-43a3-852e-8aff36a57f13",
- "name": "K6 Cloud",
- "dockerRepository": "airbyte/source-k6-cloud",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/k6-cloud",
- "icon": "k6cloud.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/k6-cloud",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "K6 Cloud Spec",
- "type": "object",
- "required": [ "api_token" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "title": "Api Token",
- "type": "string",
- "description": "Your API Token. See here. The key is case sensitive.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d917a47b-8537-4d0d-8c10-36a9928d4265",
- "name": "Kafka",
- "dockerRepository": "airbyte/source-kafka",
- "dockerImageTag": "0.2.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/kafka",
- "icon": "kafka.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/kafka",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Kafka Source Spec",
- "type": "object",
- "required": [ "bootstrap_servers", "subscription", "protocol" ],
- "additionalProperties": true,
- "properties": {
- "MessageFormat": {
- "title": "MessageFormat",
- "type": "object",
- "description": "The serialization used based on this ",
- "oneOf": [ {
- "title": "JSON",
- "properties": {
- "deserialization_type": {
- "type": "string",
- "const": "JSON"
- }
- }
- }, {
- "title": "AVRO",
- "properties": {
- "deserialization_type": {
- "const": "AVRO"
- },
- "deserialization_strategy": {
- "type": "string",
- "enum": [ "TopicNameStrategy", "RecordNameStrategy", "TopicRecordNameStrategy" ],
- "default": "TopicNameStrategy"
- },
- "schema_registry_url": {
- "type": "string",
- "examples": [ "http://localhost:8081" ]
- },
- "schema_registry_username": {
- "type": "string",
- "default": ""
- },
- "schema_registry_password": {
- "type": "string",
- "default": ""
- }
- }
- } ]
- },
- "bootstrap_servers": {
- "title": "Bootstrap Servers",
- "description": "A list of host/port pairs to use for establishing the initial connection to the Kafka cluster. The client will make use of all servers irrespective of which servers are specified here for bootstrapping—this list only impacts the initial hosts used to discover the full set of servers. This list should be in the form host1:port1,host2:port2,...
. Since these servers are just used for the initial connection to discover the full cluster membership (which may change dynamically), this list need not contain the full set of servers (you may want more than one, though, in case a server is down).",
- "type": "string",
- "examples": [ "kafka-broker1:9092,kafka-broker2:9092" ]
- },
- "subscription": {
- "title": "Subscription Method",
- "type": "object",
- "description": "You can choose to manually assign a list of partitions, or subscribe to all topics matching specified pattern to get dynamically assigned partitions.",
- "oneOf": [ {
- "title": "Manually assign a list of partitions",
- "required": [ "subscription_type", "topic_partitions" ],
- "properties": {
- "subscription_type": {
- "description": "Manually assign a list of partitions to this consumer. This interface does not allow for incremental assignment and will replace the previous assignment (if there is one).\nIf the given list of topic partitions is empty, it is treated the same as unsubscribe().",
- "type": "string",
- "const": "assign"
- },
- "topic_partitions": {
- "title": "List of topic:partition Pairs",
- "type": "string",
- "examples": [ "sample.topic:0, sample.topic:1" ]
- }
- }
- }, {
- "title": "Subscribe to all topics matching specified pattern",
- "required": [ "subscription_type", "topic_pattern" ],
- "properties": {
- "subscription_type": {
- "description": "The Topic pattern from which the records will be read.",
- "type": "string",
- "const": "subscribe"
- },
- "topic_pattern": {
- "title": "Topic Pattern",
- "type": "string",
- "examples": [ "sample.topic" ]
- }
- }
- } ]
- },
- "test_topic": {
- "title": "Test Topic",
- "description": "The Topic to test in case the Airbyte can consume messages.",
- "type": "string",
- "examples": [ "test.topic" ]
- },
- "group_id": {
- "title": "Group ID",
- "description": "The Group ID is how you distinguish different consumer groups.",
- "type": "string",
- "examples": [ "group.id" ]
- },
- "max_poll_records": {
- "title": "Max Poll Records",
- "description": "The maximum number of records returned in a single call to poll(). Note, that max_poll_records does not impact the underlying fetching behavior. The consumer will cache the records from each fetch request and returns them incrementally from each poll.",
- "type": "integer",
- "default": 500
- },
- "polling_time": {
- "title": "Polling Time",
- "description": "Amount of time Kafka connector should try to poll for messages.",
- "type": "integer",
- "default": 100
- },
- "protocol": {
- "title": "Protocol",
- "type": "object",
- "description": "The Protocol used to communicate with brokers.",
- "oneOf": [ {
- "title": "PLAINTEXT",
- "required": [ "security_protocol" ],
- "properties": {
- "security_protocol": {
- "type": "string",
- "const": "PLAINTEXT"
- }
- }
- }, {
- "title": "SASL PLAINTEXT",
- "required": [ "security_protocol", "sasl_mechanism", "sasl_jaas_config" ],
- "properties": {
- "security_protocol": {
- "type": "string",
- "const": "SASL_PLAINTEXT"
- },
- "sasl_mechanism": {
- "title": "SASL Mechanism",
- "description": "The SASL mechanism used for client connections. This may be any mechanism for which a security provider is available.",
- "type": "string",
- "const": "PLAIN"
- },
- "sasl_jaas_config": {
- "title": "SASL JAAS Config",
- "description": "The JAAS login context parameters for SASL connections in the format used by JAAS configuration files.",
- "type": "string",
- "default": "",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "SASL SSL",
- "required": [ "security_protocol", "sasl_mechanism", "sasl_jaas_config" ],
- "properties": {
- "security_protocol": {
- "type": "string",
- "const": "SASL_SSL"
- },
- "sasl_mechanism": {
- "title": "SASL Mechanism",
- "description": "The SASL mechanism used for client connections. This may be any mechanism for which a security provider is available.",
- "type": "string",
- "default": "GSSAPI",
- "enum": [ "GSSAPI", "OAUTHBEARER", "SCRAM-SHA-256", "SCRAM-SHA-512", "PLAIN" ]
- },
- "sasl_jaas_config": {
- "title": "SASL JAAS Config",
- "description": "The JAAS login context parameters for SASL connections in the format used by JAAS configuration files.",
- "type": "string",
- "default": "",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "client_id": {
- "title": "Client ID",
- "description": "An ID string to pass to the server when making requests. The purpose of this is to be able to track the source of requests beyond just ip/port by allowing a logical application name to be included in server-side request logging.",
- "type": "string",
- "examples": [ "airbyte-consumer" ]
- },
- "enable_auto_commit": {
- "title": "Enable Auto Commit",
- "description": "If true, the consumer's offset will be periodically committed in the background.",
- "type": "boolean",
- "default": true
- },
- "auto_commit_interval_ms": {
- "title": "Auto Commit Interval, ms",
- "description": "The frequency in milliseconds that the consumer offsets are auto-committed to Kafka if enable.auto.commit is set to true.",
- "type": "integer",
- "default": 5000
- },
- "client_dns_lookup": {
- "title": "Client DNS Lookup",
- "description": "Controls how the client uses DNS lookups. If set to use_all_dns_ips, connect to each returned IP address in sequence until a successful connection is established. After a disconnection, the next IP is used. Once all IPs have been used once, the client resolves the IP(s) from the hostname again. If set to resolve_canonical_bootstrap_servers_only, resolve each bootstrap address into a list of canonical names. After the bootstrap phase, this behaves the same as use_all_dns_ips. If set to default (deprecated), attempt to connect to the first IP address returned by the lookup, even if the lookup returns multiple IP addresses.",
- "type": "string",
- "default": "use_all_dns_ips",
- "enum": [ "default", "use_all_dns_ips", "resolve_canonical_bootstrap_servers_only" ]
- },
- "retry_backoff_ms": {
- "title": "Retry Backoff, ms",
- "description": "The amount of time to wait before attempting to retry a failed request to a given topic partition. This avoids repeatedly sending requests in a tight loop under some failure scenarios.",
- "type": "integer",
- "default": 100
- },
- "request_timeout_ms": {
- "title": "Request Timeout, ms",
- "description": "The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted.",
- "type": "integer",
- "default": 30000
- },
- "receive_buffer_bytes": {
- "title": "Receive Buffer, bytes",
- "description": "The size of the TCP receive buffer (SO_RCVBUF) to use when reading data. If the value is -1, the OS default will be used.",
- "type": "integer",
- "default": 32768
- },
- "auto_offset_reset": {
- "title": "Auto Offset Reset",
- "description": "What to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server - earliest: automatically reset the offset to the earliest offset, latest: automatically reset the offset to the latest offset, none: throw exception to the consumer if no previous offset is found for the consumer's group, anything else: throw exception to the consumer.",
- "type": "string",
- "default": "latest",
- "enum": [ "latest", "earliest", "none" ]
- },
- "repeated_calls": {
- "title": "Repeated Calls",
- "description": "The number of repeated calls to poll() if no messages were received.",
- "type": "integer",
- "default": 3
- },
- "max_records_process": {
- "title": "Maximum Records",
- "description": "The Maximum to be processed per execution",
- "type": "integer",
- "default": 100000
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "supported_source_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "60c24725-00ae-490c-991d-55b78c3197e0",
- "name": "Klarna",
- "dockerRepository": "airbyte/source-klarna",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/klarna",
- "icon": "klarna.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/klarna",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Klarna Spec",
- "type": "object",
- "required": [ "region", "playground", "username", "password" ],
- "additionalProperties": true,
- "properties": {
- "region": {
- "title": "Region",
- "type": "string",
- "enum": [ "eu", "us", "oc" ],
- "description": "Base url region (For playground eu https://docs.klarna.com/klarna-payments/api/payments-api/#tag/API-URLs). Supported 'eu', 'us', 'oc'"
- },
- "playground": {
- "title": "Playground",
- "type": "boolean",
- "description": "Propertie defining if connector is used against playground or production environment",
- "default": false
- },
- "username": {
- "title": "Username",
- "type": "string",
- "description": "Consists of your Merchant ID (eid) - a unique number that identifies your e-store, combined with a random string (https://developers.klarna.com/api/#authentication)"
- },
- "password": {
- "title": "Password",
- "type": "string",
- "description": "A string which is associated with your Merchant ID and is used to authorize use of Klarna's APIs (https://developers.klarna.com/api/#authentication)",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "95e8cffd-b8c4-4039-968e-d32fb4a69bde",
- "name": "Klaviyo",
- "dockerRepository": "airbyte/source-klaviyo",
- "dockerImageTag": "0.3.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/klaviyo",
- "icon": "klaviyo.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/klaviyo",
- "changelogUrl": "https://docs.airbyte.com/integrations/sources/klaviyo",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Klaviyo Spec",
- "type": "object",
- "properties": {
- "api_key": {
- "title": "Api Key",
- "description": "Klaviyo API Key. See our docs if you need help finding this key.",
- "airbyte_secret": true,
- "type": "string"
- },
- "start_date": {
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "type": "string",
- "format": "date-time"
- }
- },
- "required": [ "api_key", "start_date" ]
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "a.klaviyo.com", "klaviyo.com" ]
- }
- }, {
- "sourceDefinitionId": "547dc08e-ab51-421d-953b-8f3745201a8c",
- "name": "Kyriba",
- "dockerRepository": "airbyte/source-kyriba",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/kyriba",
- "icon": "kyriba.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Kyriba Spec",
- "type": "object",
- "required": [ "domain", "username", "password", "start_date" ],
- "additionalProperties": false,
- "properties": {
- "domain": {
- "type": "string",
- "description": "Kyriba domain",
- "title": "Domain",
- "examples": [ "demo.kyriba.com" ],
- "pattern": "^[a-zA-Z0-9._-]*\\.[a-zA-Z0-9._-]*\\.[a-z]*"
- },
- "username": {
- "type": "string",
- "description": "Username to be used in basic auth",
- "title": "Username"
- },
- "password": {
- "type": "string",
- "description": "Password to be used in basic auth",
- "title": "Password",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "description": "The date the sync should start from.",
- "title": "Start Date",
- "examples": [ "2021-01-10" ],
- "pattern": "^\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12][0-9]|3[01])$"
- },
- "end_date": {
- "type": "string",
- "description": "The date the sync should end. If let empty the sync will run to the current date.",
- "title": "End Date",
- "examples": [ "2022-03-01" ],
- "pattern": "^(?:(\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12][0-9]|3[01]))|)$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "f96bb511-5e3c-48fc-b408-547953cd81a4",
- "name": "LaunchDarkly",
- "dockerRepository": "airbyte/source-launchdarkly",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/launchdarkly",
- "icon": "launchdarkly.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/launchdarkly",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Launchdarkly Spec",
- "type": "object",
- "required": [ "access_token" ],
- "additionalProperties": true,
- "properties": {
- "access_token": {
- "title": "Access token",
- "type": "string",
- "description": "Your Access token. See here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "789f8e7a-2d28-11ec-8d3d-0242ac130003",
- "name": "Lemlist",
- "dockerRepository": "airbyte/source-lemlist",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/lemlist",
- "icon": "lemlist.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/lemlist",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Lemlist Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": false,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API key",
- "description": "Lemlist API key.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "3981c999-bd7d-4afc-849b-e53dea90c948",
- "name": "Lever Hiring",
- "dockerRepository": "airbyte/source-lever-hiring",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/lever-hiring",
- "icon": "leverhiring.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/lever-hiring",
- "changelogUrl": "https://docs.airbyte.com/integrations/sources/lever-hiring#changelog",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Lever Hiring Source Spec",
- "type": "object",
- "required": [ "start_date" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "order": 3,
- "title": "Authentication Mechanism",
- "description": "Choose how to authenticate to Lever Hiring.",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "Authenticate via Lever (OAuth)",
- "required": [ "refresh_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Lever Hiring developer application."
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Lever Hiring developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "The token for obtaining new access token.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Authenticate via Lever (Api Key)",
- "required": [ "api_key" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Api Key",
- "order": 0
- },
- "api_key": {
- "title": "Api key",
- "type": "string",
- "description": "The Api Key of your Lever Hiring account.",
- "airbyte_secret": true,
- "order": 1
- }
- }
- } ]
- },
- "start_date": {
- "order": 0,
- "type": "string",
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. Note that it will be used only in the following incremental streams: comments, commits, and issues.",
- "examples": [ "2021-03-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
- },
- "environment": {
- "order": 1,
- "type": "string",
- "title": "Environment",
- "description": "The environment in which you'd like to replicate data for Lever. This is used to determine which Lever API endpoint to use.",
- "default": "Sandbox",
- "enum": [ "Production", "Sandbox" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- },
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "Client",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "properties": {
- "environment": {
- "type": "string",
- "path_in_connector_config": [ "environment" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "137ece28-5434-455c-8f34-69dc3782f451",
- "name": "LinkedIn Ads",
- "dockerRepository": "airbyte/source-linkedin-ads",
- "dockerImageTag": "0.1.15",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/linkedin-ads",
- "icon": "linkedin.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/linkedin-ads",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Linkedin Ads Spec",
- "type": "object",
- "required": [ "start_date" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authentication",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "oAuth2.0"
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The client ID of the LinkedIn Ads developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client secret",
- "description": "The client secret the LinkedIn Ads developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh token",
- "description": "The key to refresh the expired access token.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Access token",
- "type": "object",
- "required": [ "access_token" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "access_token"
- },
- "access_token": {
- "type": "string",
- "title": "Access token",
- "description": "The token value generated using the authentication code. See the docs to obtain yours.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "start_date": {
- "type": "string",
- "title": "Start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "description": "UTC date in the format 2020-09-17. Any data before this date will not be replicated.",
- "examples": [ "2021-05-17" ],
- "format": "date"
- },
- "account_ids": {
- "title": "Account IDs",
- "type": "array",
- "description": "Specify the account IDs separated by a space, to pull the data from. Leave empty, if you want to pull the data from all associated accounts. See the LinkedIn Ads docs for more info.",
- "items": {
- "type": "integer"
- },
- "default": [ ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.linkedin.com" ]
- },
- "maxSecondsBetweenMessages": 21600
- }, {
- "sourceDefinitionId": "af54297c-e8f8-4d63-a00d-a94695acc9d3",
- "name": "LinkedIn Pages",
- "dockerRepository": "airbyte/source-linkedin-pages",
- "dockerImageTag": "1.0.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/linkedin-pages",
- "icon": "linkedin.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/linkedin-pages/",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Linkedin Pages Spec",
- "type": "object",
- "required": [ "org_id" ],
- "additionalProperties": true,
- "properties": {
- "org_id": {
- "title": "Organization ID",
- "type": "string",
- "airbyte_secret": true,
- "description": "Specify the Organization ID",
- "examples": [ "123456789" ]
- },
- "credentials": {
- "title": "Authentication",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "oAuth2.0"
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The client ID of the LinkedIn developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client secret",
- "description": "The client secret of the LinkedIn developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh token",
- "description": "The token value generated using the LinkedIn Developers OAuth Token Tools. See the docs to obtain yours.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Access token",
- "type": "object",
- "required": [ "access_token" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "access_token"
- },
- "access_token": {
- "type": "string",
- "title": "Access token",
- "description": "The token value generated using the LinkedIn Developers OAuth Token Tools. See the docs to obtain yours.",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "7b86879e-26c5-4ef6-a5ce-2be5c7b46d1e",
- "name": "Linnworks",
- "dockerRepository": "airbyte/source-linnworks",
- "dockerImageTag": "0.1.5",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/linnworks",
- "icon": "linnworks.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/linnworks",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Linnworks Spec",
- "type": "object",
- "required": [ "application_id", "application_secret", "token", "start_date" ],
- "additionalProperties": false,
- "properties": {
- "application_id": {
- "title": "Application ID.",
- "description": "Linnworks Application ID",
- "type": "string"
- },
- "application_secret": {
- "title": "Application Secret",
- "description": "Linnworks Application Secret",
- "type": "string",
- "airbyte_secret": true
- },
- "token": {
- "title": "API Token",
- "type": "string"
- },
- "start_date": {
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "type": "string",
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "45e0b135-615c-40ac-b38e-e65b0944197f",
- "name": "Lokalise",
- "dockerRepository": "airbyte/source-lokalise",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/lokalise",
- "icon": "lokalise.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/lokalise",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Lokalise Spec",
- "type": "object",
- "required": [ "api_key", "project_id" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Lokalise API Key with read-access. Available at Profile settings > API tokens. See here.",
- "airbyte_secret": true
- },
- "project_id": {
- "title": "Project Id",
- "type": "string",
- "description": "Lokalise project ID. Available at Project Settings > General."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "00405b19-9768-4e0c-b1ae-9fc2ee2b2a8c",
- "name": "Looker",
- "dockerRepository": "airbyte/source-looker",
- "dockerImageTag": "0.2.8",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/looker",
- "icon": "looker.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/looker",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Looker Spec",
- "type": "object",
- "required": [ "domain", "client_id", "client_secret" ],
- "additionalProperties": true,
- "properties": {
- "domain": {
- "type": "string",
- "title": "Domain",
- "examples": [ "domainname.looker.com", "looker.clientname.com", "123.123.124.123:8000" ],
- "description": "Domain for your Looker account, e.g. airbyte.cloud.looker.com,looker.[clientname].com,IP address"
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID is first part of an API3 key that is specific to each Looker user. See the docs for more information on how to generate this key."
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret is second part of an API3 key.",
- "airbyte_secret": true
- },
- "run_look_ids": {
- "title": "Look IDs to Run",
- "type": "array",
- "items": {
- "type": "string",
- "pattern": "^[0-9]*$"
- },
- "description": "The IDs of any Looks to run"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "b03a9f3e-22a5-11eb-adc1-0242ac120002",
- "name": "Mailchimp",
- "dockerRepository": "airbyte/source-mailchimp",
- "dockerImageTag": "0.4.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailchimp",
- "icon": "mailchimp.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailchimp",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Mailchimp Spec",
- "type": "object",
- "required": [ ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "type": "object",
- "title": "Authentication",
- "oneOf": [ {
- "title": "OAuth2.0",
- "type": "object",
- "required": [ "auth_type", "access_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "oauth2.0",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your OAuth application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your OAuth application.",
- "airbyte_secret": true
- },
- "access_token": {
- "title": "Access Token",
- "type": "string",
- "description": "An access token generated using the above client ID and secret.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "API Key",
- "required": [ "auth_type", "apikey" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "apikey",
- "order": 1
- },
- "apikey": {
- "type": "string",
- "title": "API Key",
- "description": "Mailchimp API Key. See the docs for information on how to generate this key.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "campaign_id": {
- "type": "string",
- "title": "ID of a campaign to sync email activities",
- "airbyte_hidden": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*.api.mailchimp.com" ]
- }
- }, {
- "sourceDefinitionId": "56582331-5de2-476b-b913-5798de77bbdf",
- "name": "Mailjet Mail",
- "dockerRepository": "airbyte/source-mailjet-mail",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailjet-mail",
- "icon": "mailjetmail.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailjet-mail",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Mailjet Mail Spec",
- "type": "object",
- "required": [ "api_key", "api_key_secret" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Your API Key. See here."
- },
- "api_key_secret": {
- "title": "API Secret Key",
- "type": "string",
- "description": "Your API Secret Key. See here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6ec2acea-7fd1-4378-b403-41a666e0c028",
- "name": "Mailjet SMS",
- "dockerRepository": "airbyte/source-mailjet-sms",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailjet-sms",
- "icon": "mailjetsms.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailjet-sms",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Mailjet Sms Spec",
- "type": "object",
- "required": [ "token" ],
- "additionalProperties": true,
- "properties": {
- "token": {
- "title": "Access Token",
- "type": "string",
- "description": "Your access token. See here.",
- "airbyte_secret": true
- },
- "start_date": {
- "title": "Start date",
- "type": "integer",
- "description": "Retrieve SMS messages created after the specified timestamp. Required format - Unix timestamp.",
- "pattern": "^[0-9]*$",
- "examples": [ 1666261656 ]
- },
- "end_date": {
- "title": "End date",
- "type": "integer",
- "description": "Retrieve SMS messages created before the specified timestamp. Required format - Unix timestamp.",
- "pattern": "^[0-9]*$",
- "examples": [ 1666281656 ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "dc3b9003-2432-4e93-a7f4-4620b0f14674",
- "name": "MailerLite",
- "dockerRepository": "airbyte/source-mailerlite",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailerlite",
- "icon": "mailerlite.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailerlite",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Mailerlite Spec",
- "type": "object",
- "required": [ "api_token" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "type": "string",
- "description": "Your API Token. See here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "2707d529-3c04-46eb-9c7e-40d4038df6f7",
- "name": "MailerSend",
- "dockerRepository": "airbyte/source-mailersend",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailersend",
- "icon": "mailersend.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailersend",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Mailersend Spec",
- "type": "object",
- "required": [ "api_token", "domain_id" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "type": "string",
- "description": "Your API Token. See here.",
- "airbyte_secret": true
- },
- "domain_id": {
- "type": "string",
- "description": "The domain entity in mailersend",
- "examples": [ "airbyte.com", "linkana.com" ]
- },
- "start_date": {
- "type": "number",
- "description": "Timestamp is assumed to be UTC.",
- "examples": [ 123131321 ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "5b9cb09e-1003-4f9c-983d-5779d1b2cd51",
- "name": "Mailgun",
- "dockerRepository": "airbyte/source-mailgun",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailgun",
- "icon": "mailgun.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailgun",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Mailgun Spec",
- "type": "object",
- "required": [ "private_key" ],
- "additionalProperties": true,
- "properties": {
- "private_key": {
- "type": "string",
- "airbyte_secret": true,
- "description": "Primary account API key to access your Mailgun data.",
- "title": "Private API Key"
- },
- "domain_region": {
- "type": "string",
- "description": "Domain region code. 'EU' or 'US' are possible values. The default is 'US'.",
- "title": "Domain Region Code"
- },
- "start_date": {
- "title": "Replication Start Date",
- "description": "UTC date and time in the format 2020-10-01 00:00:00. Any data before this date will not be replicated. If omitted, defaults to 3 days ago.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$",
- "examples": [ "2020-10-01 00:00:00" ],
- "type": "string",
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "9e0556f4-69df-4522-a3fb-03264d36b348",
- "name": "Marketo",
- "dockerRepository": "airbyte/source-marketo",
- "dockerImageTag": "1.0.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/marketo",
- "icon": "marketo.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/marketo",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Marketo Spec",
- "type": "object",
- "required": [ "domain_url", "client_id", "client_secret", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "domain_url": {
- "title": "Domain URL",
- "type": "string",
- "order": 3,
- "description": "Your Marketo Base URL. See the docs for info on how to obtain this.",
- "examples": [ "https://000-AAA-000.mktorest.com" ],
- "airbyte_secret": true
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Marketo developer application. See the docs for info on how to obtain this.",
- "order": 0,
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Marketo developer application. See the docs for info on how to obtain this.",
- "order": 1,
- "airbyte_secret": true
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "order": 2,
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2020-09-25T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*.mktorest.com" ]
- }
- }, {
- "sourceDefinitionId": "c7cb421b-942e-4468-99ee-e369bcabaec5",
- "name": "Metabase",
- "dockerRepository": "airbyte/source-metabase",
- "dockerImageTag": "0.3.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/metabase",
- "icon": "metabase.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/metabase",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Metabase Source Spec",
- "type": "object",
- "required": [ "instance_api_url" ],
- "additionalProperties": true,
- "properties": {
- "instance_api_url": {
- "type": "string",
- "title": "Metabase Instance API URL",
- "description": "URL to your metabase instance API",
- "examples": [ "https://localhost:3000/api/" ],
- "pattern": "^https://",
- "order": 0
- },
- "username": {
- "type": "string",
- "order": 1
- },
- "password": {
- "type": "string",
- "airbyte_secret": true,
- "order": 2
- },
- "session_token": {
- "type": "string",
- "description": "To generate your session token, you need to run the following command: ``` curl -X POST \\\n -H \"Content-Type: application/json\" \\\n -d '{\"username\": \"person@metabase.com\", \"password\": \"fakepassword\"}' \\\n http://localhost:3000/api/session\n``` Then copy the value of the `id` field returned by a successful call to that API.\nNote that by default, sessions are good for 14 days and needs to be regenerated.",
- "airbyte_secret": true,
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta"
- }, {
- "sourceDefinitionId": "b5ea17b1-f170-46dc-bc31-cc744ca984c1",
- "name": "Microsoft SQL Server (MSSQL)",
- "dockerRepository": "airbyte/source-mssql",
- "dockerImageTag": "1.0.14",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mssql",
- "icon": "mssql.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mssql",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "MSSQL Source Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username" ],
- "properties": {
- "host": {
- "description": "The hostname of the database.",
- "title": "Host",
- "type": "string",
- "order": 0
- },
- "port": {
- "description": "The port of the database.",
- "title": "Port",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "examples": [ "1433" ],
- "order": 1
- },
- "database": {
- "description": "The name of the database.",
- "title": "Database",
- "type": "string",
- "examples": [ "master" ],
- "order": 2
- },
- "schemas": {
- "title": "Schemas",
- "description": "The list of schemas to sync from. Defaults to user. Case sensitive.",
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 0,
- "uniqueItems": true,
- "default": [ "dbo" ],
- "order": 3
- },
- "username": {
- "description": "The username which is used to access the database.",
- "title": "Username",
- "type": "string",
- "order": 4
- },
- "password": {
- "description": "The password associated with the username.",
- "title": "Password",
- "type": "string",
- "airbyte_secret": true,
- "order": 5
- },
- "jdbc_url_params": {
- "title": "JDBC URL Params",
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "type": "string",
- "order": 6
- },
- "ssl_method": {
- "title": "SSL Method",
- "type": "object",
- "description": "The encryption method which is used when communicating with the database.",
- "order": 7,
- "oneOf": [ {
- "title": "Unencrypted",
- "description": "Data transfer will not be encrypted.",
- "required": [ "ssl_method" ],
- "properties": {
- "ssl_method": {
- "type": "string",
- "const": "unencrypted"
- }
- }
- }, {
- "title": "Encrypted (trust server certificate)",
- "description": "Use the certificate provided by the server without verification. (For testing purposes only!)",
- "required": [ "ssl_method" ],
- "properties": {
- "ssl_method": {
- "type": "string",
- "const": "encrypted_trust_server_certificate"
- }
- }
- }, {
- "title": "Encrypted (verify certificate)",
- "description": "Verify and use the certificate provided by the server.",
- "required": [ "ssl_method", "trustStoreName", "trustStorePassword" ],
- "properties": {
- "ssl_method": {
- "type": "string",
- "const": "encrypted_verify_certificate"
- },
- "hostNameInCertificate": {
- "title": "Host Name In Certificate",
- "type": "string",
- "description": "Specifies the host name of the server. The value of this property must match the subject property of the certificate.",
- "order": 7
- }
- }
- } ]
- },
- "replication_method": {
- "type": "object",
- "title": "Replication Method",
- "description": "The replication method used for extracting data from the database. STANDARD replication requires no setup on the DB side but will not be able to represent deletions incrementally. CDC uses {TBC} to detect inserts, updates, and deletes. This needs to be configured on the source database itself.",
- "default": "STANDARD",
- "order": 8,
- "oneOf": [ {
- "title": "Standard",
- "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "STANDARD",
- "order": 0
- }
- }
- }, {
- "title": "Logical Replication (CDC)",
- "description": "CDC uses {TBC} to detect inserts, updates, and deletes. This needs to be configured on the source database itself.",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "CDC",
- "order": 0
- },
- "data_to_sync": {
- "title": "Data to Sync",
- "type": "string",
- "default": "Existing and New",
- "enum": [ "Existing and New", "New Changes Only" ],
- "description": "What data should be synced under the CDC. \"Existing and New\" will read existing data as a snapshot, and sync new changes through CDC. \"New Changes Only\" will skip the initial snapshot, and only sync new changes through CDC.",
- "order": 1
- },
- "snapshot_isolation": {
- "title": "Initial Snapshot Isolation Level",
- "type": "string",
- "default": "Snapshot",
- "enum": [ "Snapshot", "Read Committed" ],
- "description": "Existing data in the database are synced through an initial snapshot. This parameter controls the isolation level that will be used during the initial snapshotting. If you choose the \"Snapshot\" level, you must enable the snapshot isolation mode on the database.",
- "order": 2
- },
- "initial_waiting_seconds": {
- "type": "integer",
- "title": "Initial Waiting Time in Seconds (Advanced)",
- "description": "The amount of time the connector will wait when it launches to determine if there is new data to sync or not. Defaults to 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about initial waiting time.",
- "default": 300,
- "min": 120,
- "max": 1200,
- "order": 3
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
- }
- }, {
- "sourceDefinitionId": "eaf50f04-21dd-4620-913b-2a83f5635227",
- "name": "Microsoft teams",
- "dockerRepository": "airbyte/source-microsoft-teams",
- "dockerImageTag": "0.2.5",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/microsoft-teams",
- "icon": "microsoft-teams.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/microsoft-teams",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Microsoft Teams Spec",
- "type": "object",
- "required": [ "period" ],
- "additionalProperties": true,
- "properties": {
- "period": {
- "type": "string",
- "title": "Period",
- "description": "Specifies the length of time over which the Team Device Report stream is aggregated. The supported values are: D7, D30, D90, and D180.",
- "examples": [ "D7" ]
- },
- "credentials": {
- "title": "Authentication mechanism",
- "description": "Choose how to authenticate to Microsoft",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "Authenticate via Microsoft (OAuth 2.0)",
- "required": [ "tenant_id", "client_id", "client_secret", "refresh_token" ],
- "additionalProperties": false,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client",
- "enum": [ "Client" ],
- "default": "Client",
- "order": 0
- },
- "tenant_id": {
- "title": "Directory (tenant) ID",
- "type": "string",
- "description": "A globally unique identifier (GUID) that is different than your organization name or domain. Follow these steps to obtain: open one of the Teams where you belong inside the Teams Application -> Click on the … next to the Team title -> Click on Get link to team -> Copy the link to the team and grab the tenant ID form the URL"
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Microsoft Teams developer application."
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Microsoft Teams developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "A Refresh Token to renew the expired Access Token.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Authenticate via Microsoft",
- "required": [ "tenant_id", "client_id", "client_secret" ],
- "additionalProperties": false,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Token",
- "enum": [ "Token" ],
- "default": "Token",
- "order": 0
- },
- "tenant_id": {
- "title": "Directory (tenant) ID",
- "type": "string",
- "description": "A globally unique identifier (GUID) that is different than your organization name or domain. Follow these steps to obtain: open one of the Teams where you belong inside the Teams Application -> Click on the … next to the Team title -> Click on Get link to team -> Copy the link to the team and grab the tenant ID form the URL"
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Microsoft Teams developer application."
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Microsoft Teams developer application.",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "Client",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "tenant_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "tenant_id" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "9220e3de-3b60-4bb2-a46f-046d59ea235a",
- "name": "Microsoft Dataverse",
- "dockerRepository": "airbyte/source-microsoft-dataverse",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/microsoft-dataverse",
- "icon": "microsoftdataverse.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/microsoft-dataverse",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Microsoft Dataverse Spec",
- "type": "object",
- "required": [ "url", "tenant_id", "client_id", "client_secret_value" ],
- "additionalProperties": true,
- "properties": {
- "url": {
- "type": "string",
- "description": "URL to Microsoft Dataverse API",
- "title": "URL",
- "examples": [ "https://.crm.dynamics.com" ],
- "order": 0
- },
- "tenant_id": {
- "type": "string",
- "description": "Tenant Id of your Microsoft Dataverse Instance",
- "title": "Tenant Id",
- "airbyte_secret": true,
- "order": 1
- },
- "client_id": {
- "type": "string",
- "description": "App Registration Client Id",
- "title": "Client Id",
- "airbyte_secret": true,
- "order": 2
- },
- "client_secret_value": {
- "type": "string",
- "description": "App Registration Client Secret",
- "title": "Client Secret",
- "airbyte_secret": true,
- "order": 3
- },
- "odata_maxpagesize": {
- "type": "integer",
- "description": "Max number of results per page. Default=5000",
- "title": "Max page size",
- "default": 5000,
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "12928b32-bf0a-4f1e-964f-07e12e37153a",
- "name": "Mixpanel",
- "dockerRepository": "airbyte/source-mixpanel",
- "dockerImageTag": "0.1.31",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mixpanel",
- "icon": "mixpanel.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mixpanel",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Mixpanel Spec",
- "type": "object",
- "properties": {
- "credentials": {
- "title": "Authentication *",
- "description": "Choose how to authenticate to Mixpanel",
- "type": "object",
- "order": 0,
- "oneOf": [ {
- "type": "object",
- "title": "Service Account",
- "required": [ "username", "secret" ],
- "properties": {
- "option_title": {
- "type": "string",
- "const": "Service Account",
- "order": 0
- },
- "username": {
- "order": 1,
- "title": "Username",
- "type": "string",
- "description": "Mixpanel Service Account Username. See the docs for more information on how to obtain this."
- },
- "secret": {
- "order": 2,
- "title": "Secret",
- "type": "string",
- "description": "Mixpanel Service Account Secret. See the docs for more information on how to obtain this.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Project Secret",
- "required": [ "api_secret" ],
- "properties": {
- "option_title": {
- "type": "string",
- "const": "Project Secret",
- "order": 0
- },
- "api_secret": {
- "order": 1,
- "title": "Project Secret",
- "type": "string",
- "description": "Mixpanel project secret. See the docs for more information on how to obtain this.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "project_id": {
- "order": 1,
- "title": "Project ID",
- "description": "Your project ID number. See the docs for more information on how to obtain this.",
- "type": "integer"
- },
- "attribution_window": {
- "order": 2,
- "title": "Attribution Window",
- "type": "integer",
- "description": " A period of time for attributing results to ads and the lookback period after those actions occur during which ad results are counted. Default attribution window is 5 days.",
- "default": 5
- },
- "project_timezone": {
- "order": 3,
- "title": "Project Timezone",
- "type": "string",
- "description": "Time zone in which integer date times are stored. The project timezone may be found in the project settings in the Mixpanel console.",
- "default": "US/Pacific",
- "examples": [ "US/Pacific", "UTC" ]
- },
- "select_properties_by_default": {
- "order": 4,
- "title": "Select Properties By Default",
- "type": "boolean",
- "description": "Setting this config parameter to TRUE ensures that new properties on events and engage records are captured. Otherwise new properties will be ignored.",
- "default": true
- },
- "start_date": {
- "order": 5,
- "title": "Start Date",
- "type": "string",
- "description": "The date in the format YYYY-MM-DD. Any data before this date will not be replicated. If this option is not set, the connector will replicate data from up to one year ago by default.",
- "examples": [ "2021-11-16" ],
- "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}Z)?$",
- "format": "date-time"
- },
- "end_date": {
- "order": 6,
- "title": "End Date",
- "type": "string",
- "description": "The date in the format YYYY-MM-DD. Any data after this date will not be replicated. Left empty to always sync to most recent date",
- "examples": [ "2021-11-16" ],
- "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}Z)?$",
- "format": "date-time"
- },
- "region": {
- "order": 7,
- "title": "Region",
- "description": "The region of mixpanel domain instance either US or EU.",
- "type": "string",
- "enum": [ "US", "EU" ],
- "default": "US"
- },
- "date_window_size": {
- "order": 8,
- "title": "Date slicing window",
- "description": "Defines window size in days, that used to slice through data. You can reduce it, if amount of data in each window is too big for your environment.",
- "type": "integer",
- "minimum": 1,
- "default": 30
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "mixpanel.com", "eu.mixpanel.com" ]
- }
- }, {
- "sourceDefinitionId": "80a54ea2-9959-4040-aac1-eee42423ec9b",
- "name": "Monday",
- "dockerRepository": "airbyte/source-monday",
- "dockerImageTag": "0.2.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/monday",
- "icon": "monday.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/monday",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Monday Spec",
- "type": "object",
- "required": [ ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "auth_type", "client_id", "client_secret", "access_token" ],
- "properties": {
- "subdomain": {
- "type": "string",
- "title": "Subdomain/Slug",
- "description": "Slug/subdomain of the account, or the first part of the URL that comes before .monday.com",
- "default": "",
- "order": 0
- },
- "auth_type": {
- "type": "string",
- "const": "oauth2.0",
- "order": 1
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your OAuth application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your OAuth application.",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "API Token",
- "required": [ "auth_type", "api_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "api_token",
- "order": 0
- },
- "api_token": {
- "type": "string",
- "title": "Personal API Token",
- "description": "API Token for making authenticated requests.",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "subdomain": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "subdomain" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.monday.com" ]
- }
- }, {
- "sourceDefinitionId": "b2e713cd-cc36-4c0a-b5bd-b47cb8a0561e",
- "name": "MongoDb",
- "dockerRepository": "airbyte/source-mongodb-v2",
- "dockerImageTag": "0.1.19",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mongodb-v2",
- "icon": "mongodb.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mongodb-v2",
- "changelogUrl": "https://docs.airbyte.com/integrations/sources/mongodb-v2",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "MongoDb Source Spec",
- "type": "object",
- "required": [ "database" ],
- "additionalProperties": true,
- "properties": {
- "instance_type": {
- "type": "object",
- "title": "MongoDb Instance Type",
- "description": "The MongoDb instance to connect to. For MongoDB Atlas and Replica Set TLS connection is used by default.",
- "order": 0,
- "oneOf": [ {
- "title": "Standalone MongoDb Instance",
- "required": [ "instance", "host", "port" ],
- "properties": {
- "instance": {
- "type": "string",
- "enum": [ "standalone" ],
- "default": "standalone"
- },
- "host": {
- "title": "Host",
- "type": "string",
- "description": "The host name of the Mongo database.",
- "order": 0
- },
- "port": {
- "title": "Port",
- "type": "integer",
- "description": "The port of the Mongo database.",
- "minimum": 0,
- "maximum": 65536,
- "default": 27017,
- "examples": [ "27017" ],
- "order": 1
- },
- "tls": {
- "title": "TLS Connection",
- "type": "boolean",
- "description": "Indicates whether TLS encryption protocol will be used to connect to MongoDB. It is recommended to use TLS connection if possible. For more information see documentation.",
- "default": false,
- "order": 2
- }
- }
- }, {
- "title": "Replica Set",
- "required": [ "instance", "server_addresses" ],
- "properties": {
- "instance": {
- "type": "string",
- "enum": [ "replica" ],
- "default": "replica"
- },
- "server_addresses": {
- "title": "Server Addresses",
- "type": "string",
- "description": "The members of a replica set. Please specify `host`:`port` of each member separated by comma.",
- "examples": [ "host1:27017,host2:27017,host3:27017" ],
- "order": 0
- },
- "replica_set": {
- "title": "Replica Set",
- "type": "string",
- "description": "A replica set in MongoDB is a group of mongod processes that maintain the same data set.",
- "order": 1
- }
- }
- }, {
- "title": "MongoDB Atlas",
- "additionalProperties": false,
- "required": [ "instance", "cluster_url" ],
- "properties": {
- "instance": {
- "type": "string",
- "enum": [ "atlas" ],
- "default": "atlas"
- },
- "cluster_url": {
- "title": "Cluster URL",
- "type": "string",
- "description": "The URL of a cluster to connect to.",
- "order": 0
- }
- }
- } ]
- },
- "database": {
- "title": "Database Name",
- "type": "string",
- "description": "The database you want to replicate.",
- "order": 1
- },
- "user": {
- "title": "User",
- "type": "string",
- "description": "The username which is used to access the database.",
- "order": 2
- },
- "password": {
- "title": "Password",
- "type": "string",
- "description": "The password associated with this username.",
- "airbyte_secret": true,
- "order": 3
- },
- "auth_source": {
- "title": "Authentication Source",
- "type": "string",
- "description": "The authentication source where the user information is stored.",
- "default": "admin",
- "examples": [ "admin" ],
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "722ba4bf-06ec-45a4-8dd5-72e4a5cf3903",
- "name": "My Hours",
- "dockerRepository": "airbyte/source-my-hours",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/my-hours",
- "icon": "my-hours.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/my-hours",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "My Hours Spec",
- "type": "object",
- "required": [ "email", "password", "start_date" ],
- "additionalProperties": false,
- "properties": {
- "email": {
- "title": "Email",
- "type": "string",
- "description": "Your My Hours username",
- "example": "john@doe.com"
- },
- "password": {
- "title": "Password",
- "type": "string",
- "description": "The password associated to the username",
- "airbyte_secret": true
- },
- "start_date": {
- "title": "Start Date",
- "description": "Start date for collecting time logs",
- "examples": [ "%Y-%m-%d", "2016-01-01" ],
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
- },
- "logs_batch_size": {
- "title": "Time logs batch size",
- "description": "Pagination size used for retrieving logs in days",
- "examples": [ 30 ],
- "type": "integer",
- "minimum": 1,
- "maximum": 365,
- "default": 30
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "435bb9a5-7887-4809-aa58-28c27df0d7ad",
- "name": "MySQL",
- "dockerRepository": "airbyte/source-mysql",
- "dockerImageTag": "2.0.18",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mysql",
- "icon": "mysql.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/mysql",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "MySql Source Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username", "replication_method" ],
- "properties": {
- "host": {
- "description": "The host name of the database.",
- "title": "Host",
- "type": "string",
- "order": 0
- },
- "port": {
- "description": "The port to connect to.",
- "title": "Port",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 3306,
- "examples": [ "3306" ],
- "order": 1
- },
- "database": {
- "description": "The database name.",
- "title": "Database",
- "type": "string",
- "order": 2
- },
- "username": {
- "description": "The username which is used to access the database.",
- "title": "Username",
- "type": "string",
- "order": 3
- },
- "password": {
- "description": "The password associated with the username.",
- "title": "Password",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
- "title": "JDBC URL Parameters (Advanced)",
- "type": "string",
- "order": 5
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL.",
- "type": "boolean",
- "default": true,
- "order": 6
- },
- "ssl_mode": {
- "title": "SSL modes",
- "description": "SSL connection modes. Read more in the docs.",
- "type": "object",
- "order": 7,
- "oneOf": [ {
- "title": "preferred",
- "description": "Automatically attempt SSL connection. If the MySQL server does not support SSL, continue with a regular connection.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "preferred",
- "order": 0
- }
- }
- }, {
- "title": "required",
- "description": "Always connect with SSL. If the MySQL server doesn’t support SSL, the connection will not be established. Certificate Authority (CA) and Hostname are not verified.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "required",
- "order": 0
- }
- }
- }, {
- "title": "Verify CA",
- "description": "Always connect with SSL. Verifies CA, but allows connection even if Hostname does not match.",
- "required": [ "mode", "ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify_ca",
- "order": 0
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- },
- "client_certificate": {
- "type": "string",
- "title": "Client certificate",
- "description": "Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)",
- "airbyte_secret": true,
- "multiline": true,
- "order": 2,
- "always_show": true
- },
- "client_key": {
- "type": "string",
- "title": "Client key",
- "description": "Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)",
- "airbyte_secret": true,
- "multiline": true,
- "order": 3,
- "always_show": true
- },
- "client_key_password": {
- "type": "string",
- "title": "Client key password",
- "description": "Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- }, {
- "title": "Verify Identity",
- "description": "Always connect with SSL. Verify both CA and Hostname.",
- "required": [ "mode", "ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify_identity",
- "order": 0
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- },
- "client_certificate": {
- "type": "string",
- "title": "Client certificate",
- "description": "Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)",
- "airbyte_secret": true,
- "multiline": true,
- "order": 2,
- "always_show": true
- },
- "client_key": {
- "type": "string",
- "title": "Client key",
- "description": "Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)",
- "airbyte_secret": true,
- "multiline": true,
- "order": 3,
- "always_show": true
- },
- "client_key_password": {
- "type": "string",
- "title": "Client key password",
- "description": "Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- },
- "replication_method": {
- "type": "object",
- "title": "Replication Method",
- "description": "Replication method to use for extracting data from the database.",
- "order": 8,
- "oneOf": [ {
- "title": "Standard",
- "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "STANDARD",
- "order": 0
- }
- }
- }, {
- "title": "Logical Replication (CDC)",
- "description": "CDC uses the Binlog to detect inserts, updates, and deletes. This needs to be configured on the source database itself.",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "CDC",
- "order": 0
- },
- "initial_waiting_seconds": {
- "type": "integer",
- "title": "Initial Waiting Time in Seconds (Advanced)",
- "description": "The amount of time the connector will wait when it launches to determine if there is new data to sync or not. Defaults to 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about initial waiting time.",
- "default": 300,
- "min": 120,
- "max": 1200,
- "order": 1
- },
- "server_time_zone": {
- "type": "string",
- "title": "Configured server timezone for the MySQL source (Advanced)",
- "description": "Enter the configured MySQL server timezone. This should only be done if the configured timezone in your MySQL instance does not conform to IANNA standard.",
- "order": 2
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
- }
- }, {
- "sourceDefinitionId": "4a961f66-5e99-4430-8320-a73afe52f7a2",
- "name": "n8n",
- "dockerRepository": "airbyte/source-n8n",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/n8n",
- "icon": "n8n.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/n8n",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "N8n Spec",
- "type": "object",
- "required": [ "host", "api_key" ],
- "additionalProperties": true,
- "properties": {
- "host": {
- "type": "string",
- "description": "Hostname of the n8n instance"
- },
- "api_key": {
- "type": "string",
- "description": "Your API KEY. See here"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "1a8667d7-7978-43cd-ba4d-d32cbd478971",
- "name": "NASA",
- "dockerRepository": "airbyte/source-nasa",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/nasa",
- "icon": "nasa.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/nasa-apod",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "NASA spec",
- "type": "object",
- "required": [ "api_key" ],
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API access key used to retrieve data from the NASA APOD API.",
- "airbyte_secret": true
- },
- "concept_tags": {
- "type": "boolean",
- "default": false,
- "description": "Indicates whether concept tags should be returned with the rest of the response. The concept tags are not necessarily included in the explanation, but rather derived from common search tags that are associated with the description text. (Better than just pure text search.) Defaults to False."
- },
- "count": {
- "type": "integer",
- "minimum": 1,
- "maximum": 100,
- "description": "A positive integer, no greater than 100. If this is specified then `count` randomly chosen images will be returned in a JSON array. Cannot be used in conjunction with `date` or `start_date` and `end_date`."
- },
- "start_date": {
- "type": "string",
- "description": "Indicates the start of a date range. All images in the range from `start_date` to `end_date` will be returned in a JSON array. Must be after 1995-06-16, the first day an APOD picture was posted. There are no images for tomorrow available through this API.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "2022-10-20" ],
- "format": "date"
- },
- "end_date": {
- "type": "string",
- "description": "Indicates that end of a date range. If `start_date` is specified without an `end_date` then `end_date` defaults to the current date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "2022-10-20" ],
- "format": "date"
- },
- "thumbs": {
- "type": "boolean",
- "default": false,
- "description": "Indicates whether the API should return a thumbnail image URL for video files. If set to True, the API returns URL of video thumbnail. If an APOD is not a video, this parameter is ignored."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "api.nasa.gov" ]
- }
- }, {
- "sourceDefinitionId": "4f2f093d-ce44-4121-8118-9d13b7bfccd0",
- "name": "Netsuite",
- "dockerRepository": "airbyte/source-netsuite",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/netsuite",
- "icon": "netsuite.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Netsuite Spec",
- "type": "object",
- "required": [ "realm", "consumer_key", "consumer_secret", "token_key", "token_secret", "start_datetime" ],
- "additionalProperties": true,
- "properties": {
- "realm": {
- "type": "string",
- "title": "Realm (Account Id)",
- "description": "Netsuite realm e.g. 2344535, as for `production` or 2344535_SB1, as for the `sandbox`",
- "order": 0,
- "airbyte_secret": true
- },
- "consumer_key": {
- "type": "string",
- "title": "Consumer Key",
- "description": "Consumer key associated with your integration",
- "order": 1,
- "airbyte_secret": true
- },
- "consumer_secret": {
- "type": "string",
- "title": "Consumer Secret",
- "description": "Consumer secret associated with your integration",
- "order": 2,
- "airbyte_secret": true
- },
- "token_key": {
- "type": "string",
- "title": "Token Key (Token Id)",
- "description": "Access token key",
- "order": 3,
- "airbyte_secret": true
- },
- "token_secret": {
- "type": "string",
- "title": "Token Secret",
- "description": "Access token secret",
- "order": 4,
- "airbyte_secret": true
- },
- "object_types": {
- "type": "array",
- "title": "Object Types",
- "items": {
- "type": "string"
- },
- "description": "The API names of the Netsuite objects you want to sync. Setting this speeds up the connection setup process by limiting the number of schemas that need to be retrieved from Netsuite.",
- "order": 5,
- "examples": [ "customer", "salesorder", "etc" ],
- "default": [ ]
- },
- "start_datetime": {
- "type": "string",
- "title": "Start Date",
- "description": "Starting point for your data replication, in format of \"YYYY-MM-DDTHH:mm:ssZ\"",
- "order": 6,
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ]
- },
- "window_in_days": {
- "type": "integer",
- "title": "Window in Days",
- "description": "The amount of days used to query the data with date chunks. Set smaller value, if you have lots of data.",
- "order": 7,
- "default": 30
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "df38991e-f35b-4af2-996d-36817f614587",
- "name": "News API",
- "dockerRepository": "airbyte/source-news-api",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/news-api",
- "icon": "newsapi.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/news-api",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "News Api Spec",
- "type": "object",
- "required": [ "api_key", "country", "category", "sort_by" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true,
- "order": 0
- },
- "search_query": {
- "type": "string",
- "description": "Search query. See https://newsapi.org/docs/endpoints/everything for \ninformation.\n",
- "examples": [ "+bitcoin OR +crypto", "sunak AND (truss OR johnson)" ],
- "order": 1
- },
- "search_in": {
- "type": "array",
- "description": "Where to apply search query. Possible values are: title, description,\ncontent.\n",
- "items": {
- "type": "string",
- "enum": [ "title", "description", "content" ]
- },
- "order": 2
- },
- "sources": {
- "type": "array",
- "description": "Identifiers (maximum 20) for the news sources or blogs you want\nheadlines from. Use the `/sources` endpoint to locate these\nprogrammatically or look at the sources index:\nhttps://newsapi.com/sources. Will override both country and category.\n",
- "items": {
- "type": "string"
- },
- "order": 3
- },
- "domains": {
- "type": "array",
- "description": "A comma-seperated string of domains (eg bbc.co.uk, techcrunch.com,\nengadget.com) to restrict the search to.\n",
- "items": {
- "type": "string"
- },
- "order": 4
- },
- "exclude_domains": {
- "type": "array",
- "description": "A comma-seperated string of domains (eg bbc.co.uk, techcrunch.com,\nengadget.com) to remove from the results.\n",
- "items": {
- "type": "string"
- },
- "order": 5
- },
- "start_date": {
- "type": "string",
- "description": "A date and optional time for the oldest article allowed. This should\nbe in ISO 8601 format (e.g. 2021-01-01 or 2021-01-01T12:00:00).\n",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2})?$",
- "order": 6
- },
- "end_date": {
- "type": "string",
- "description": "A date and optional time for the newest article allowed. This should\nbe in ISO 8601 format (e.g. 2021-01-01 or 2021-01-01T12:00:00).\n",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2})?$",
- "order": 7
- },
- "language": {
- "type": "string",
- "description": "The 2-letter ISO-639-1 code of the language you want to get headlines\nfor. Possible options: ar de en es fr he it nl no pt ru se ud zh.\n",
- "enum": [ "ar", "de", "en", "es", "fr", "he", "it", "nl", false, "pt", "ru", "se", "ud", "zh" ],
- "order": 8
- },
- "country": {
- "type": "string",
- "description": "The 2-letter ISO 3166-1 code of the country you want to get headlines\nfor. You can't mix this with the sources parameter.\n",
- "enum": [ "ae", "ar", "at", "au", "be", "bg", "br", "ca", "ch", "cn", "co", "cu", "cz", "de", "eg", "fr", "gb", "gr", "hk", "hu", "id", "ie", "il", "in", "it", "jp", "kr", "lt", "lv", "ma", "mx", "my", "ng", "nl", false, "nz", "ph", "pl", "pt", "ro", "rs", "ru", "sa", "se", "sg", "si", "sk", "th", "tr", "tw", "ua", "us", "ve", "za" ],
- "default": "us",
- "order": 9
- },
- "category": {
- "type": "string",
- "description": "The category you want to get top headlines for.",
- "enum": [ "business", "entertainment", "general", "health", "science", "sports", "technology" ],
- "default": "business",
- "order": 10
- },
- "sort_by": {
- "type": "string",
- "description": "The order to sort the articles in. Possible options: relevancy,\npopularity, publishedAt.\n",
- "enum": [ "relevancy", "popularity", "publishedAt" ],
- "default": "publishedAt",
- "order": 11
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "60bd11d8-2632-4daa-a688-b47336d32093",
- "name": "Newsdata",
- "dockerRepository": "airbyte/source-newsdata",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/newsdata",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/newsdata",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Newsdata Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true,
- "order": 0
- },
- "OneOf": {
- "query": {
- "type": "string",
- "description": "Keywords or phrases to search for in the news title and content. Advanced Search options:\n - Search `Social`: query = \"social\"\n - Search `Social Pizza`: query = \"social pizza\"\n - Search `Social` but not with `pizza`: query = \"social -pizza\"\n - Search `Social` but not with `pizza` and `wildfire`: query = \"social -pizza -wildfire\"\n - Search `Social` and `pizza`: query = \"social AND pizza\"\n - Search `Social` and `pizza` and `pasta`: query = \"social AND pizza AND pasta\"\n - Search `Social` or `pizza`: query = \"social OR pizza\"\n - Search `Social` or `pizza` but not `pasta`: query = \"social OR pizza -pasta\"\n - Search `Social` or `pizza` or `pasta`: query = \"social OR pizza OR pasta\"\nNote: You can't use AND and OR in the same query.",
- "order": 1
- },
- "query_in_title": {
- "type": "string",
- "description": "Same as `query`, but restricting the search to only the news title. It cannot be used along with `query`.",
- "order": 1
- }
- },
- "domain": {
- "type": "array",
- "description": "Domains (maximum 5) to restrict the search to. Use the sources stream to find top sources id.",
- "maxitems": 5,
- "items": {
- "type": "string"
- },
- "order": 2
- },
- "country": {
- "type": "array",
- "description": "2-letter ISO 3166-1 countries (maximum 5) to restrict the search to.",
- "maxitems": 5,
- "order": 3,
- "items": {
- "type": "string",
- "enum": [ "ar", "au", "at", "bd", "by", "be", "br", "bg", "ca", "cl", "cn", "co", "cr", "cu", "cz", "dk", "do", "ec", "eg", "ee", "et", "fi", "fr", "de", "gr", "hk", "hu", "in", "id", "iq", "ie", "il", "it", "jp", "kz", "kw", "lv", "lb", "lt", "my", "mx", "ma", "mm", "nl", "nz", "ng", "kp", "no", "pk", "pe", "ph", "pl", "pt", "pr", "ro", "ru", "sa", "rs", "sg", "sk", "si", "za", "kr", "es", "se", "ch", "tw", "tz", "th", "tr", "ua", "ae", "gb", "us", "ve", "vi" ]
- }
- },
- "category": {
- "type": "array",
- "description": "Categories (maximum 5) to restrict the search to.",
- "maxitems": 5,
- "order": 4,
- "items": {
- "type": "string",
- "enum": [ "business", "entertainment", "environment", "food", "health", "politics", "science", "sports", "technology", "top", "world" ]
- }
- },
- "language": {
- "type": "array",
- "description": "Languages (maximum 5) to restrict the search to.",
- "maxitems": 5,
- "order": 5,
- "items": {
- "type": "string",
- "enum": [ "be", "am", "ar", "bn", "bs", "bg", "my", "ckb", "zh", "hr", "cs", "da", "nl", "en", "et", "fi", "fr", "de", "el", "he", "hi", "hu", "in", "it", "jp", "ko", "lv", "lt", "ms", "no", "pl", "pt", "ro", "ru", "sr", "sk", "sl", "es", "sw", "sv", "th", "tr", "uk", "ur", "vi" ]
- }
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6e00b415-b02e-4160-bf02-58176a0ae687",
- "name": "Notion",
- "dockerRepository": "airbyte/source-notion",
- "dockerImageTag": "1.0.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/notion",
- "icon": "notion.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/notion",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Notion Source Spec",
- "type": "object",
- "required": [ "start_date" ],
- "properties": {
- "start_date": {
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00.000Z. Any data before this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
- "examples": [ "2020-11-16T00:00:00.000Z" ],
- "type": "string",
- "format": "date-time"
- },
- "credentials": {
- "title": "Authenticate using",
- "description": "Pick an authentication method.",
- "type": "object",
- "order": 1,
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "auth_type", "client_id", "client_secret", "access_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "OAuth2.0"
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The ClientID of your Notion integration.",
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The ClientSecret of your Notion integration.",
- "airbyte_secret": true
- },
- "access_token": {
- "title": "Access Token",
- "type": "string",
- "description": "Access Token is a token you received by complete the OauthWebFlow of Notion.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Access Token",
- "required": [ "auth_type", "token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "token"
- },
- "token": {
- "title": "Access Token",
- "description": "Notion API access token, see the docs for more information on how to obtain this token.",
- "type": "string",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "access_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.notion.com" ]
- }
- }, {
- "sourceDefinitionId": "0fae6a9a-04eb-44d4-96e1-e02d3dbc1d83",
- "name": "New York Times",
- "dockerRepository": "airbyte/source-nytimes",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/nytimes",
- "icon": "nytimes.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/nytimes",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Nytimes Spec",
- "type": "object",
- "required": [ "api_key", "start_date", "period" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "API Key",
- "airbyte_secret": true,
- "order": 0
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "Start date to begin the article retrieval (format YYYY-MM)",
- "pattern": "^[0-9]{4}-[0-9]{2}$",
- "examples": [ "2022-08", "1851-01" ],
- "format": "date",
- "order": 1
- },
- "end_date": {
- "type": "string",
- "title": "End Date",
- "description": "End date to stop the article retrieval (format YYYY-MM)",
- "pattern": "^[0-9]{4}-[0-9]{2}$",
- "examples": [ "2022-08", "1851-01" ],
- "format": "date",
- "order": 2
- },
- "period": {
- "type": "integer",
- "title": "Period (used for Most Popular streams)",
- "description": "Period of time (in days)",
- "order": 3,
- "enum": [ 1, 7, 30 ]
- },
- "share_type": {
- "type": "string",
- "title": "Share Type (used for Most Popular Shared stream)",
- "description": "Share Type",
- "order": 4,
- "enum": [ "facebook" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "1d4fdb25-64fc-4569-92da-fcdca79a8372",
- "name": "Okta",
- "dockerRepository": "airbyte/source-okta",
- "dockerImageTag": "0.1.14",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/okta",
- "icon": "okta.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/okta",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Okta Spec",
- "type": "object",
- "required": [ ],
- "additionalProperties": true,
- "properties": {
- "domain": {
- "type": "string",
- "title": "Okta domain",
- "description": "The Okta domain. See the docs for instructions on how to find it.",
- "airbyte_secret": false
- },
- "start_date": {
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format YYYY-MM-DDTHH:MM:SSZ. Any data before this date will not be replicated.",
- "examples": [ "2022-07-22T00:00:00Z" ],
- "title": "Start Date"
- },
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "auth_type", "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "oauth2.0",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your OAuth application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your OAuth application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "Refresh Token to obtain new Access Token, when it's expired.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "API Token",
- "required": [ "auth_type", "api_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "api_token",
- "order": 0
- },
- "api_token": {
- "type": "string",
- "title": "Personal API Token",
- "description": "An Okta token. See the docs for instructions on how to generate it.",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "e7f0c5e2-4815-48c4-90cf-f47124209835",
- "name": "Omnisend",
- "dockerRepository": "airbyte/source-omnisend",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/omnisend",
- "icon": "omnisend.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/omnisend",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Omnisend Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "bb6afd81-87d5-47e3-97c4-e2c2901b1cf8",
- "name": "OneSignal",
- "dockerRepository": "airbyte/source-onesignal",
- "dockerImageTag": "1.0.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/onesignal",
- "icon": "onesignal.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/onesignal",
- "connectionSpecification": {
- "$schema": "https://json-schema.org/draft-07/schema#",
- "title": "OneSignal Source Spec",
- "type": "object",
- "required": [ "user_auth_key", "start_date", "outcome_names", "applications" ],
- "additionalProperties": true,
- "properties": {
- "user_auth_key": {
- "type": "string",
- "title": "User Auth Key",
- "description": "OneSignal User Auth Key, see the docs for more information on how to obtain this key.",
- "airbyte_secret": true,
- "order": 0
- },
- "applications": {
- "type": "array",
- "title": "Applications",
- "description": "Applications keys, see the docs for more information on how to obtain this data",
- "items": {
- "type": "object",
- "properties": {
- "app_name": {
- "type": "string",
- "title": "OneSignal App Name",
- "order": 0
- },
- "app_id": {
- "type": "string",
- "title": "OneSignal App ID",
- "order": 1,
- "airbyte_secret": true
- },
- "app_api_key": {
- "type": "string",
- "title": "REST API Key",
- "order": 2,
- "airbyte_secret": true
- }
- },
- "required": [ "app_id", "app_api_key" ]
- },
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for OneSignal API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "examples": [ "2020-11-16T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "format": "date-time",
- "order": 2
- },
- "outcome_names": {
- "type": "string",
- "title": "Outcome Names",
- "description": "Comma-separated list of names and the value (sum/count) for the returned outcome data. See the docs for more details",
- "examples": [ "os__session_duration.count,os__click.count,CustomOutcomeName.sum" ],
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "77d5ca6b-d345-4dce-ba1e-1935a75778b8",
- "name": "Open Exchange Rates",
- "dockerRepository": "airbyte/source-open-exchange-rates",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/open-exchange-rates",
- "icon": "airbyte.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/openexchangesrates",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Open Exchange Rates Spec",
- "type": "object",
- "required": [ "app_id", "start_date" ],
- "properties": {
- "app_id": {
- "type": "string",
- "description": "App ID provided by Open Exchange Rates",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "description": "Start getting data from that date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ]
- },
- "base": {
- "type": "string",
- "description": "Change base currency (3-letter code, default is USD - only modifiable in paid plans)",
- "examples": [ "EUR", "USD" ],
- "default": "USD"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d8540a80-6120-485d-b7d6-272bca477d9b",
- "name": "OpenWeather",
- "dockerRepository": "airbyte/source-openweather",
- "dockerImageTag": "0.1.6",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/openweather",
- "icon": "openweather.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Open Weather Spec",
- "type": "object",
- "required": [ "appid", "lat", "lon" ],
- "additionalProperties": true,
- "properties": {
- "lat": {
- "title": "Latitude",
- "type": "string",
- "pattern": "^[-]?\\d{1,2}(\\.\\d+)?$",
- "examples": [ "45.7603", "-21.249107858038816" ],
- "description": "Latitude for which you want to get weather condition from. (min -90, max 90)"
- },
- "lon": {
- "title": "Longitude",
- "type": "string",
- "pattern": "^[-]?\\d{1,3}(\\.\\d+)?$",
- "examples": [ "4.835659", "-70.39482074115321" ],
- "description": "Longitude for which you want to get weather condition from. (min -180, max 180)"
- },
- "appid": {
- "title": "App ID",
- "type": "string",
- "description": "Your OpenWeather API Key. See here. The key is case sensitive.",
- "airbyte_secret": true
- },
- "units": {
- "title": "Units",
- "type": "string",
- "description": "Units of measurement. standard, metric and imperial units are available. If you do not use the units parameter, standard units will be applied by default.",
- "enum": [ "standard", "metric", "imperial" ],
- "examples": [ "standard", "metric", "imperial" ]
- },
- "lang": {
- "title": "Language",
- "type": "string",
- "description": "You can use lang parameter to get the output in your language. The contents of the description field will be translated. See here for the list of supported languages.",
- "enum": [ "af", "al", "ar", "az", "bg", "ca", "cz", "da", "de", "el", "en", "eu", "fa", "fi", "fr", "gl", "he", "hi", "hr", "hu", "id", "it", "ja", "kr", "la", "lt", "mk", "no", "nl", "pl", "pt", "pt_br", "ro", "ru", "sv", "se", "sk", "sl", "sp", "es", "sr", "th", "tr", "ua", "uk", "vi", "zh_cn", "zh_tw", "zu" ],
- "examples": [ "en", "fr", "pt_br", "uk", "zh_cn", "zh_tw" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "06bdb480-2598-40b8-8b0f-fc2e2d2abdda",
- "name": "Opsgenie",
- "dockerRepository": "airbyte/source-opsgenie",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/opsgenie",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Opsgenie Spec",
- "type": "object",
- "required": [ "api_token", "endpoint" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "type": "string",
- "description": "API token used to access the Opsgenie platform",
- "airbyte_secret": true
- },
- "endpoint": {
- "type": "string",
- "description": "Service endpoint to use for API calls.",
- "examples": [ "api.opsgenie.com", "api.eu.opsgenie.com" ],
- "default": "api.opsgenie.com"
- },
- "start_date": {
- "type": "string",
- "description": "The date from which you'd like to replicate data from Opsgenie in the format of YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated. Note that it will be used only in the following incremental streams: issues.",
- "examples": [ "2022-07-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "b39a7370-74c3-45a6-ac3a-380d48520a83",
- "name": "Oracle DB",
- "dockerRepository": "airbyte/source-oracle",
- "dockerImageTag": "0.3.24",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/oracle",
- "icon": "oracle.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/oracle",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Oracle Source Spec",
- "type": "object",
- "required": [ "host", "port", "username" ],
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 1
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.\nOracle Corporations recommends the following port numbers:\n1521 - Default listening port for client connections to the listener. \n2484 - Recommended and officially registered listening port for client connections to the listener using TCP/IP with SSL",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 1521,
- "order": 2
- },
- "connection_data": {
- "title": "Connect by",
- "type": "object",
- "description": "Connect data that will be used for DB connection",
- "order": 3,
- "oneOf": [ {
- "title": "Service name",
- "description": "Use service name",
- "required": [ "service_name" ],
- "properties": {
- "connection_type": {
- "type": "string",
- "const": "service_name",
- "order": 0
- },
- "service_name": {
- "title": "Service name",
- "type": "string",
- "order": 1
- }
- }
- }, {
- "title": "System ID (SID)",
- "description": "Use SID (Oracle System Identifier)",
- "required": [ "sid" ],
- "properties": {
- "connection_type": {
- "type": "string",
- "const": "sid",
- "order": 0
- },
- "sid": {
- "title": "System ID (SID)",
- "type": "string",
- "order": 1
- }
- }
- } ]
- },
- "username": {
- "title": "User",
- "description": "The username which is used to access the database.",
- "type": "string",
- "order": 4
- },
- "password": {
- "title": "Password",
- "description": "The password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 5
- },
- "schemas": {
- "title": "Schemas",
- "description": "The list of schemas to sync from. Defaults to user. Case sensitive.",
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 1,
- "uniqueItems": true,
- "order": 6
- },
- "jdbc_url_params": {
- "title": "JDBC URL Params",
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "type": "string",
- "order": 7
- },
- "encryption": {
- "title": "Encryption",
- "type": "object",
- "description": "The encryption method with is used when communicating with the database.",
- "order": 8,
- "oneOf": [ {
- "title": "Unencrypted",
- "description": "Data transfer will not be encrypted.",
- "required": [ "encryption_method" ],
- "properties": {
- "encryption_method": {
- "type": "string",
- "const": "unencrypted"
- }
- }
- }, {
- "title": "Native Network Encryption (NNE)",
- "description": "The native network encryption gives you the ability to encrypt database connections, without the configuration overhead of TCP/IP and SSL/TLS and without the need to open and listen on different ports.",
- "required": [ "encryption_method" ],
- "properties": {
- "encryption_method": {
- "type": "string",
- "const": "client_nne"
- },
- "encryption_algorithm": {
- "type": "string",
- "description": "This parameter defines what encryption algorithm is used.",
- "title": "Encryption Algorithm",
- "default": "AES256",
- "enum": [ "AES256", "RC4_56", "3DES168" ]
- }
- }
- }, {
- "title": "TLS Encrypted (verify certificate)",
- "description": "Verify and use the certificate provided by the server.",
- "required": [ "encryption_method", "ssl_certificate" ],
- "properties": {
- "encryption_method": {
- "type": "string",
- "const": "encrypted_verify_certificate"
- },
- "ssl_certificate": {
- "title": "SSL PEM File",
- "description": "Privacy Enhanced Mail (PEM) files are concatenated certificate containers frequently used in certificate installations.",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
- }
- }, {
- "sourceDefinitionId": "7f0455fb-4518-4ec0-b7a3-d808bf8081cc",
- "name": "Orb",
- "dockerRepository": "airbyte/source-orb",
- "dockerImageTag": "1.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/orb",
- "icon": "orb.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.withorb.com/",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Orb Spec",
- "type": "object",
- "required": [ "api_key", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "Orb API Key",
- "description": "Orb API Key, issued from the Orb admin console.",
- "airbyte_secret": true,
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2022-03-01T00:00:00Z. Any data with created_at before this data will not be synced. For Subscription Usage, this becomes the `timeframe_start` API parameter.",
- "examples": [ "2022-03-01T00:00:00Z" ],
- "order": 2
- },
- "lookback_window_days": {
- "type": "integer",
- "title": "Lookback Window (in days)",
- "default": 0,
- "minimum": 0,
- "description": "When set to N, the connector will always refresh resources created within the past N days. By default, updated objects that are not newly created are not incrementally synced.",
- "order": 3
- },
- "string_event_properties_keys": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "title": "Event properties keys (string values)",
- "description": "Property key names to extract from all events, in order to enrich ledger entries corresponding to an event deduction.",
- "order": 4
- },
- "numeric_event_properties_keys": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "title": "Event properties keys (numeric values)",
- "description": "Property key names to extract from all events, in order to enrich ledger entries corresponding to an event deduction.",
- "order": 5
- },
- "subscription_usage_grouping_key": {
- "type": "string",
- "title": "Subscription usage grouping key (string value)",
- "description": "Property key name to group subscription usage by."
- },
- "plan_id": {
- "type": "string",
- "title": "Orb Plan ID for Subscription Usage (string value)",
- "description": "Orb Plan ID to filter subscriptions that should have usage fetched."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "95bcc041-1d1a-4c2e-8802-0ca5b1bfa36a",
- "name": "Orbit",
- "dockerRepository": "airbyte/source-orbit",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/orbit",
- "icon": "orbit.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/orbit",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Orbit Source Spec",
- "type": "object",
- "required": [ "api_token", "workspace" ],
- "additionalProperties": false,
- "properties": {
- "api_token": {
- "type": "string",
- "airbyte_secret": true,
- "title": "API Token",
- "description": "Authorizes you to work with Orbit workspaces associated with the token.",
- "order": 0
- },
- "workspace": {
- "type": "string",
- "title": "Workspace",
- "description": "The unique name of the workspace that your API token is associated with.",
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "Date in the format 2022-06-26. Only load members whose last activities are after this date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 2
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "2bf6c581-bec5-4e32-891d-de33036bd631",
- "name": "Oura",
- "dockerRepository": "airbyte/source-oura",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/oura",
- "icon": "oura.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Oura Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true,
- "order": 0
- },
- "start_datetime": {
- "type": "string",
- "description": "Start datetime to sync from. Default is current UTC datetime minus 1\nday.\n",
- "pattern": "^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$",
- "order": 1
- },
- "end_datetime": {
- "type": "string",
- "description": "End datetime to sync until. Default is current UTC datetime.",
- "pattern": "^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$",
- "order": 2
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "3490c201-5d95-4783-b600-eaf07a4c7787",
- "name": "Outreach",
- "dockerRepository": "airbyte/source-outreach",
- "dockerImageTag": "0.2.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/outreach",
- "icon": "outreach.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/outreach",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Outreach Spec",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token", "redirect_uri", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your Outreach developer application."
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your Outreach developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "The token for obtaining the new access token.",
- "airbyte_secret": true
- },
- "redirect_uri": {
- "type": "string",
- "title": "Redirect URI",
- "description": "A Redirect URI is the location where the authorization server sends the user once the app has been successfully authorized and granted an authorization code or access token."
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for Outreach API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "examples": [ "2020-11-16T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "ad15c7ba-72a7-440b-af15-b9a963dc1a8a",
- "name": "Pardot",
- "dockerRepository": "airbyte/source-pardot",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pardot",
- "icon": "salesforcepardot.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pardot",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Pardot Spec",
- "type": "object",
- "required": [ "pardot_business_unit_id", "client_id", "client_secret", "refresh_token" ],
- "additionalProperties": false,
- "properties": {
- "pardot_business_unit_id": {
- "description": "Pardot Business ID, can be found at Setup > Pardot > Pardot Account Setup",
- "type": "string"
- },
- "client_id": {
- "description": "The Consumer Key that can be found when viewing your app in Salesforce",
- "type": "string",
- "airbyte_secret": true
- },
- "client_secret": {
- "description": "The Consumer Secret that can be found when viewing your app in Salesforce",
- "type": "string",
- "airbyte_secret": true
- },
- "refresh_token": {
- "description": "Salesforce Refresh Token used for Airbyte to access your Salesforce account. If you don't know what this is, follow this guide to retrieve it.",
- "type": "string",
- "airbyte_secret": true
- },
- "start_date": {
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. Leave blank to skip this filter",
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "default": null,
- "examples": [ "2021-07-25T00:00:00Z" ]
- },
- "is_sandbox": {
- "description": "Whether or not the the app is in a Salesforce sandbox. If you do not know what this, assume it is false.",
- "type": "boolean",
- "default": false
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "2817b3f0-04e4-4c7a-9f32-7a5e8a83db95",
- "name": "PagerDuty",
- "dockerRepository": "farosai/airbyte-pagerduty-source",
- "dockerImageTag": "0.1.23",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pagerduty",
- "icon": "pagerduty.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.faros.ai",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "PagerDuty Spec",
- "type": "object",
- "required": [ "token" ],
- "additionalProperties": false,
- "properties": {
- "token": {
- "type": "string",
- "title": "PagerDuty API key",
- "airbyte_secret": true
- },
- "pageSize": {
- "type": "number",
- "minimum": 1,
- "maximum": 25,
- "default": 25,
- "title": "Page Size",
- "description": "page size to use when querying PagerDuty API"
- },
- "cutoffDays": {
- "type": "number",
- "minimum": 1,
- "default": 90,
- "title": "Cutoff Days",
- "description": "fetch pipelines updated in the last number of days"
- },
- "incidentLogEntriesOverview": {
- "type": "boolean",
- "title": "Incident Log Entries Overview",
- "description": "If true, will return a subset of log entries that show only the most important changes to the incident.",
- "default": true
- },
- "defaultSeverity": {
- "type": "string",
- "title": "Severity category",
- "description": "A default severity category if not present",
- "examples": [ "Sev1", "Sev2", "Sev3", "Sev4", "Sev5", "Custom" ],
- "pattern": "^(Sev[0-5])?(Custom)?$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d30fb809-6456-484d-8e2c-ee12e0f6888d",
- "name": "PartnerStack",
- "dockerRepository": "airbyte/source-partnerstack",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/partnerstack",
- "icon": "partnerstack.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/partnerstack",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Partnerstack Spec",
- "type": "object",
- "required": [ "public_key", "private_key" ],
- "additionalProperties": true,
- "properties": {
- "public_key": {
- "type": "string",
- "title": "Partnerstack Public key",
- "description": "The Live Public Key for a Partnerstack account.",
- "airbyte_secret": true
- },
- "private_key": {
- "type": "string",
- "title": "Partnerstack Private key",
- "description": "The Live Private Key for a Partnerstack account.",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2017-01-25T00:00:00Z" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d913b0f2-cc51-4e55-a44c-8ba1697b9239",
- "name": "Paypal Transaction",
- "dockerRepository": "airbyte/source-paypal-transaction",
- "dockerImageTag": "0.1.12",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/paypal-transaction",
- "icon": "paypal.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/paypal-transactions",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Paypal Transaction Search",
- "type": "object",
- "required": [ "start_date", "is_sandbox" ],
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your Paypal developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client secret",
- "description": "The Client Secret of your Paypal developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh token",
- "description": "The key to refresh the expired access token.",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "Start Date for data extraction in ISO format. Date must be in range from 3 years till 12 hrs before present time.",
- "examples": [ "2021-06-11T23:59:59-00:00" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}[+-][0-9]{2}:[0-9]{2}$"
- },
- "is_sandbox": {
- "title": "Sandbox",
- "description": "Determines whether to use the sandbox or production environment.",
- "type": "boolean",
- "default": false
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api-m.paypal.com", "api-m.sandbox.paypal.com" ]
- }
- }, {
- "sourceDefinitionId": "193bdcb8-1dd9-48d1-aade-91cadfd74f9b",
- "name": "Paystack",
- "dockerRepository": "airbyte/source-paystack",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/paystack",
- "icon": "paystack.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/paystack",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Paystack Source Spec",
- "type": "object",
- "required": [ "secret_key", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "secret_key": {
- "type": "string",
- "title": "Secret Key",
- "pattern": "^(s|r)k_(live|test)_[a-zA-Z0-9]+$",
- "description": "The Paystack API key (usually starts with 'sk_live_'; find yours here).",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "format": "date-time"
- },
- "lookback_window_days": {
- "type": "integer",
- "title": "Lookback Window (in days)",
- "default": 0,
- "minimum": 0,
- "description": "When set, the connector will always reload data from the past N days, where N is the value set here. This is useful if your data is updated after creation."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.paystack.co" ]
- }
- }, {
- "sourceDefinitionId": "b1ccb590-e84f-46c0-83a0-2048ccfffdae",
- "name": "Pendo",
- "dockerRepository": "airbyte/source-pendo",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pendo",
- "icon": "pendo.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pendo",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [ "api_key" ],
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "airbyte_secret": true
- }
- },
- "additionalProperties": true
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "3052c77e-8b91-47e2-97a0-a29a22794b4b",
- "name": "PersistIq",
- "dockerRepository": "airbyte/source-persistiq",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/persistiq",
- "icon": "persistiq.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/persistiq",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Persistiq Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": false,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "PersistIq API Key. See the docs for more information on where to find that key.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "69d9eb65-8026-47dc-baf1-e4bf67901fd6",
- "name": "Pexels API",
- "dockerRepository": "airbyte/source-pexels-api",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pexels-api",
- "icon": "pexels.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pexels-api",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Pexel API Spec",
- "type": "object",
- "required": [ "api_key", "query" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key from the pexels website",
- "type": "string",
- "description": "API key is required to access pexels api, For getting your's goto https://www.pexels.com/api/documentation and create account for free.",
- "airbyte_secret": true
- },
- "query": {
- "title": "Specific query for the search",
- "type": "string",
- "description": "Optional, the search query, Example Ocean, Tigers, Pears, etc.",
- "examples": [ "people", "oceans" ]
- },
- "orientation": {
- "title": "Specific orientation for the search",
- "type": "string",
- "description": "Optional, Desired photo orientation. The current supported orientations are landscape, portrait or square",
- "examples": [ "square", "landscape" ]
- },
- "size": {
- "title": "Specific size for the search",
- "type": "string",
- "description": "Optional, Minimum photo size. The current supported sizes are large(24MP), medium(12MP) or small(4MP).",
- "examples": [ "large", "small" ]
- },
- "color": {
- "title": "Specific color for the search",
- "type": "string",
- "description": "Optional, Desired photo color. Supported colors red, orange, yellow, green, turquoise, blue, violet, pink, brown, black, gray, white or any hexidecimal color code.",
- "examples": [ "red", "orange" ]
- },
- "locale": {
- "title": "Specific locale for the search",
- "type": "string",
- "description": "Optional, The locale of the search you are performing. The current supported locales are 'en-US' 'pt-BR' 'es-ES' 'ca-ES' 'de-DE' 'it-IT' 'fr-FR' 'sv-SE' 'id-ID' 'pl-PL' 'ja-JP' 'zh-TW' 'zh-CN' 'ko-KR' 'th-TH' 'nl-NL' 'hu-HU' 'vi-VN' 'cs-CZ' 'da-DK' 'fi-FI' 'uk-UA' 'el-GR' 'ro-RO' 'nb-NO' 'sk-SK' 'tr-TR' 'ru-RU'.",
- "examples": [ "en-US", "pt-BR" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "5cb7e5fe-38c2-11ec-8d3d-0242ac130003",
- "name": "Pinterest",
- "dockerRepository": "airbyte/source-pinterest",
- "dockerImageTag": "0.2.5",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pinterest",
- "icon": "pinterest.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pinterest",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Pinterest Spec",
- "type": "object",
- "required": [ "start_date" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "A date in the format YYYY-MM-DD. If you have not set a date, it would be defaulted to latest allowed date by api (89 days from today).",
- "examples": [ "2022-07-28" ]
- },
- "status": {
- "title": "Status",
- "description": "Entity statuses based off of campaigns, ad_groups, and ads. If you do not have a status set, it will be ignored completely.",
- "type": [ "array", "null" ],
- "items": {
- "type": "string",
- "enum": [ "ACTIVE", "PAUSED", "ARCHIVED" ]
- },
- "uniqueItems": true
- },
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "auth_method", "refresh_token" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "oauth2.0",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your OAuth application",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your OAuth application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "Refresh Token to obtain new Access Token, when it's expired.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Access Token",
- "required": [ "auth_method", "access_token" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "access_token",
- "order": 0
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The Access Token to make authenticated requests.",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_method" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.pinterest.com" ]
- }
- }, {
- "sourceDefinitionId": "d8286229-c680-4063-8c59-23b9b391c700",
- "name": "Pipedrive",
- "dockerRepository": "airbyte/source-pipedrive",
- "dockerImageTag": "0.1.17",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pipedrive",
- "icon": "pipedrive.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pipedrive",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Pipedrive Spec",
- "type": "object",
- "required": [ "replication_start_date" ],
- "additionalProperties": true,
- "properties": {
- "authorization": {
- "type": "object",
- "title": "API Key Authentication",
- "required": [ "auth_type", "api_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Token",
- "order": 0
- },
- "api_token": {
- "title": "API Token",
- "type": "string",
- "description": "The Pipedrive API Token.",
- "airbyte_secret": true
- }
- }
- },
- "replication_start_date": {
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. When specified and not None, then stream will behave as incremental",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "type": "string",
- "format": "date-time"
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.pipedrive.com" ]
- }
- }, {
- "sourceDefinitionId": "d60f5393-f99e-4310-8d05-b1876820f40e",
- "name": "Pivotal Tracker",
- "dockerRepository": "airbyte/source-pivotal-tracker",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pivotal-tracker",
- "icon": "pivotal-tracker.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Pivotal Tracker Spec",
- "type": "object",
- "required": [ "api_token" ],
- "additionalProperties": false,
- "properties": {
- "api_token": {
- "type": "string",
- "description": "Pivotal Tracker API token",
- "examples": [ "5c054d0de3440452190fdc5d5a04d871" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "ed799e2b-2158-4c66-8da4-b40fe63bc72a",
- "name": "Plaid",
- "dockerRepository": "airbyte/source-plaid",
- "dockerImageTag": "0.3.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/plaid",
- "icon": "plaid.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://plaid.com/docs/api/",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [ "access_token", "api_key", "client_id", "plaid_env" ],
- "additionalProperties": true,
- "properties": {
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The end-user's Link access token."
- },
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "The Plaid API key to use to hit the API.",
- "airbyte_secret": true
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Plaid client id"
- },
- "plaid_env": {
- "title": "Plaid Environment",
- "type": "string",
- "enum": [ "sandbox", "development", "production" ],
- "description": "The Plaid environment"
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "The date from which you'd like to replicate data for Plaid in the format YYYY-MM-DD. All data generated after this date will be replicated.",
- "examples": [ "2021-03-01" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "603ba446-3d75-41d7-92f3-aba901f8b897",
- "name": "Plausible",
- "dockerRepository": "airbyte/source-plausible",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/plausible",
- "icon": "plausible.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/plausible",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Plausible Spec",
- "type": "object",
- "required": [ "api_key", "site_id" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "Plausible API key",
- "description": "Plausible API Key. See the docs for information on how to generate this key.",
- "airbyte_secret": true
- },
- "site_id": {
- "type": "string",
- "title": "Target website domain",
- "description": "The domain of the site you want to retrieve data for. Enter the name of your site as configured on Plausible, i.e., excluding \"https://\" and \"www\". Can be retrieved from the 'domain' field in your Plausible site settings.",
- "pattern": "^[A-Za-z0-9-.]+\\.[A-Z-a-z0-9-.]+",
- "examples": [ "airbyte.com", "docs.airbyte.com" ]
- },
- "start_date": {
- "type": "string",
- "title": "Data start date",
- "description": "Start date for data to retrieve, in ISO-8601 format.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "b0dd65f1-081f-4731-9c51-38e9e6aa0ebf",
- "name": "Pocket",
- "dockerRepository": "airbyte/source-pocket",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pocket",
- "icon": "pocket.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pocket",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Pocket Spec",
- "type": "object",
- "required": [ "consumer_key", "access_token" ],
- "additionalProperties": true,
- "properties": {
- "consumer_key": {
- "type": "string",
- "title": "Consumer Key",
- "description": "Your application's Consumer Key.",
- "airbyte_secret": true,
- "order": 0
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The user's Pocket access token.",
- "airbyte_secret": true,
- "order": 1
- },
- "state": {
- "type": "string",
- "title": "State",
- "description": "Select the state of the items to retrieve.",
- "order": 2,
- "enum": [ "unread", "archive", "all" ]
- },
- "favorite": {
- "type": "boolean",
- "title": "Is Favorite?",
- "description": "Retrieve only favorited items.",
- "default": false,
- "order": 3
- },
- "tag": {
- "type": "string",
- "title": "Tag Name",
- "description": "Return only items tagged with this tag name. Use _untagged_ for retrieving only untagged items.",
- "order": 4
- },
- "content_type": {
- "type": "string",
- "title": "Content Type",
- "description": "Select the content type of the items to retrieve.",
- "order": 5,
- "enum": [ "article", "video", "image" ]
- },
- "sort": {
- "type": "string",
- "title": "Sort By",
- "description": "Sort retrieved items by the given criteria.",
- "order": 6,
- "enum": [ "newest", "oldest", "title", "site" ]
- },
- "detail_type": {
- "type": "string",
- "title": "Detail Type",
- "description": "Select the granularity of the information about each item.",
- "order": 7,
- "enum": [ "simple", "complete" ]
- },
- "search": {
- "type": "string",
- "title": "Search Query",
- "description": "Only return items whose title or url contain the `search` string.",
- "order": 8
- },
- "domain": {
- "type": "string",
- "title": "Domain",
- "description": "Only return items from a particular `domain`.",
- "order": 9
- },
- "since": {
- "type": "string",
- "title": "Since",
- "description": "Only return items modified since the given timestamp.",
- "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}",
- "examples": [ "2022-10-20 14:14:14" ],
- "order": 10
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6371b14b-bc68-4236-bfbd-468e8df8e968",
- "name": "PokeAPI",
- "dockerRepository": "airbyte/source-pokeapi",
- "dockerImageTag": "0.1.5",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pokeapi",
- "icon": "pokeapi.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pokeapi",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Pokeapi Spec",
- "type": "object",
- "required": [ "pokemon_name" ],
- "additionalProperties": false,
- "properties": {
- "pokemon_name": {
- "type": "string",
- "title": "Pokemon Name",
- "description": "Pokemon requested from the API.",
- "pattern": "^[a-z0-9_\\-]+$",
- "examples": [ "ditto", "luxray", "snorlax" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "5807d72f-0abc-49f9-8fa5-ae820007032b",
- "name": "Polygon Stock API",
- "dockerRepository": "airbyte/source-polygon-stock-api",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/polygon-stock-api",
- "icon": "polygon.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/airtable",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Weather API Spec",
- "type": "object",
- "required": [ "apiKey", "stocksTicker", "multiplier", "timespan", "start_date", "end_date" ],
- "additionalProperties": true,
- "properties": {
- "apiKey": {
- "title": "API Key",
- "type": "string",
- "description": "Your API ACCESS Key",
- "airbyte_secret": true
- },
- "stocksTicker": {
- "title": "Stock Ticker",
- "type": "string",
- "description": "The exchange symbol that this item is traded under.",
- "examples": [ "IBM", "MSFT" ]
- },
- "multiplier": {
- "title": "Multiplier",
- "type": "integer",
- "description": "The size of the timespan multiplier.",
- "examples": [ 1, 2 ]
- },
- "timespan": {
- "title": "Timespan",
- "type": "string",
- "description": "The size of the time window.",
- "examples": [ "day" ]
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "description": "The beginning date for the aggregate window.",
- "examples": [ "2020-10-14" ],
- "format": "date"
- },
- "end_date": {
- "title": "End Date",
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "description": "The target date for the aggregate window.",
- "examples": [ "2020-10-14" ],
- "format": "date"
- },
- "adjusted": {
- "title": "Adjusted",
- "type": "string",
- "description": "Determines whether or not the results are adjusted for splits. By default, results are adjusted and set to true. Set this to false to get results that are NOT adjusted for splits.",
- "examples": [ "true", "false" ]
- },
- "sort": {
- "title": "Sort",
- "type": "string",
- "description": "Sort the results by timestamp. asc will return results in ascending order (oldest at the top), desc will return results in descending order (newest at the top).",
- "examples": [ "asc", "desc" ]
- },
- "limit": {
- "title": "Limit",
- "type": "integer",
- "description": "The target date for the aggregate window.",
- "examples": [ 100, 120 ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "api.polygon.io" ]
- }
- }, {
- "sourceDefinitionId": "af6d50ee-dddf-4126-a8ee-7faee990774f",
- "name": "PostHog",
- "dockerRepository": "airbyte/source-posthog",
- "dockerImageTag": "0.1.9",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/posthog",
- "icon": "posthog.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/posthog",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "PostHog Spec",
- "type": "object",
- "required": [ "api_key", "start_date" ],
- "properties": {
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "The date from which you'd like to replicate the data. Any data before this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2021-01-01T00:00:00Z" ],
- "format": "date-time"
- },
- "api_key": {
- "type": "string",
- "airbyte_secret": true,
- "title": "API Key",
- "description": "API Key. See the docs for information on how to generate this key."
- },
- "base_url": {
- "type": "string",
- "default": "https://app.posthog.com",
- "title": "Base URL",
- "description": "Base PostHog url. Defaults to PostHog Cloud (https://app.posthog.com).",
- "examples": [ "https://posthog.example.com" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "${base_url}", "app.posthog.com" ]
- }
- }, {
- "sourceDefinitionId": "decd338e-5647-4c0b-adf4-da0e75f5a750",
- "name": "Postgres",
- "dockerRepository": "airbyte/source-postgres",
- "dockerImageTag": "2.0.25",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/postgres",
- "icon": "postgresql.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/postgres",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Postgres Source Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username" ],
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0,
- "group": "db"
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 5432,
- "examples": [ "5432" ],
- "order": 1,
- "group": "db"
- },
- "database": {
- "title": "Database Name",
- "description": "Name of the database.",
- "type": "string",
- "order": 2,
- "group": "db"
- },
- "schemas": {
- "title": "Schemas",
- "description": "The list of schemas (case sensitive) to sync from. Defaults to public.",
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 0,
- "uniqueItems": true,
- "default": [ "public" ],
- "order": 3,
- "group": "db"
- },
- "username": {
- "title": "Username",
- "description": "Username to access the database.",
- "type": "string",
- "order": 4,
- "group": "auth"
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 5,
- "group": "auth",
- "always_show": true
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (Eg. key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
- "title": "JDBC URL Parameters (Advanced)",
- "type": "string",
- "order": 6,
- "group": "advanced",
- "pattern_descriptor": "key1=value1&key2=value2"
- },
- "ssl_mode": {
- "title": "SSL Modes",
- "description": "SSL connection modes. \n Read more in the docs.",
- "type": "object",
- "order": 8,
- "group": "security",
- "oneOf": [ {
- "title": "disable",
- "additionalProperties": true,
- "description": "Disables encryption of communication between Airbyte and source database.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "disable",
- "order": 0
- }
- }
- }, {
- "title": "allow",
- "additionalProperties": true,
- "description": "Enables encryption only when required by the source database.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "allow",
- "order": 0
- }
- }
- }, {
- "title": "prefer",
- "additionalProperties": true,
- "description": "Allows unencrypted connection only if the source database does not support encryption.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "prefer",
- "order": 0
- }
- }
- }, {
- "title": "require",
- "additionalProperties": true,
- "description": "Always require encryption. If the source database server does not support encryption, connection will fail.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "require",
- "order": 0
- }
- }
- }, {
- "title": "verify-ca",
- "additionalProperties": true,
- "description": "Always require encryption and verifies that the source database server has a valid SSL certificate.",
- "required": [ "mode", "ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-ca",
- "order": 0
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA Certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- },
- "client_certificate": {
- "type": "string",
- "title": "Client Certificate",
- "description": "Client certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 2,
- "always_show": true
- },
- "client_key": {
- "type": "string",
- "title": "Client Key",
- "description": "Client key",
- "airbyte_secret": true,
- "multiline": true,
- "order": 3,
- "always_show": true
- },
- "client_key_password": {
- "type": "string",
- "title": "Client key password",
- "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- }, {
- "title": "verify-full",
- "additionalProperties": true,
- "description": "This is the most secure mode. Always require encryption and verifies the identity of the source database server.",
- "required": [ "mode", "ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-full",
- "order": 0
- },
- "ca_certificate": {
- "type": "string",
- "title": "CA Certificate",
- "description": "CA certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- },
- "client_certificate": {
- "type": "string",
- "title": "Client Certificate",
- "description": "Client certificate",
- "airbyte_secret": true,
- "multiline": true,
- "order": 2,
- "always_show": true
- },
- "client_key": {
- "type": "string",
- "title": "Client Key",
- "description": "Client key",
- "airbyte_secret": true,
- "multiline": true,
- "order": 3,
- "always_show": true
- },
- "client_key_password": {
- "type": "string",
- "title": "Client key password",
- "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- },
- "replication_method": {
- "type": "object",
- "title": "Replication Method",
- "description": "Replication method for extracting data from the database.",
- "order": 9,
- "group": "advanced",
- "oneOf": [ {
- "title": "Standard",
- "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "Standard",
- "order": 0
- }
- }
- }, {
- "title": "Logical Replication (CDC)",
- "description": "Logical replication uses the Postgres write-ahead log (WAL) to detect inserts, updates, and deletes. This needs to be configured on the source database itself. Only available on Postgres 10 and above. Read the docs.",
- "required": [ "method", "replication_slot", "publication" ],
- "additionalProperties": true,
- "properties": {
- "method": {
- "type": "string",
- "const": "CDC",
- "order": 1
- },
- "plugin": {
- "type": "string",
- "title": "Plugin",
- "description": "A logical decoding plugin installed on the PostgreSQL server.",
- "enum": [ "pgoutput" ],
- "default": "pgoutput",
- "order": 2
- },
- "replication_slot": {
- "type": "string",
- "title": "Replication Slot",
- "description": "A plugin logical replication slot. Read about replication slots.",
- "order": 3
- },
- "publication": {
- "type": "string",
- "title": "Publication",
- "description": "A Postgres publication used for consuming changes. Read about publications and replication identities.",
- "order": 4
- },
- "initial_waiting_seconds": {
- "type": "integer",
- "title": "Initial Waiting Time in Seconds (Advanced)",
- "description": "The amount of time the connector will wait when it launches to determine if there is new data to sync or not. Defaults to 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about initial waiting time.",
- "default": 300,
- "order": 5,
- "min": 120,
- "max": 1200
- },
- "lsn_commit_behaviour": {
- "type": "string",
- "title": "LSN commit behaviour",
- "description": "Determines when Airbtye should flush the LSN of processed WAL logs in the source database. `After loading Data in the destination` is default. If `While reading Data` is selected, in case of a downstream failure (while loading data into the destination), next sync would result in a full sync.",
- "enum": [ "While reading Data", "After loading Data in the destination" ],
- "default": "After loading Data in the destination",
- "order": 6
- }
- }
- } ]
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ],
- "group": "security"
- }
- },
- "groups": [ {
- "id": "db"
- }, {
- "id": "auth"
- }, {
- "id": "security",
- "title": "Security"
- }, {
- "id": "advanced",
- "title": "Advanced"
- } ]
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
- },
- "maxSecondsBetweenMessages": 7200
- }, {
- "sourceDefinitionId": "cde75ca1-1e28-4a0f-85bb-90c546de9f1f",
- "name": "Postmark App",
- "dockerRepository": "airbyte/source-postmarkapp",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/postmarkapp",
- "icon": "postmark.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Postmarkapp Spec",
- "type": "object",
- "required": [ "X-Postmark-Server-Token", "X-Postmark-Account-Token" ],
- "additionalProperties": true,
- "properties": {
- "X-Postmark-Server-Token": {
- "title": "X-Postmark-Server-Token",
- "type": "string",
- "description": "API Key for server",
- "airbyte_secret": true
- },
- "X-Postmark-Account-Token": {
- "title": "X-Postmark-Account-Token",
- "type": "string",
- "description": "API Key for account",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d60a46d4-709f-4092-a6b7-2457f7d455f5",
- "name": "PrestaShop",
- "dockerRepository": "airbyte/source-prestashop",
- "dockerImageTag": "0.3.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/prestashop",
- "icon": "prestashop.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/prestashop",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "PrestaShop Spec",
- "type": "object",
- "required": [ "access_key", "url", "start_date" ],
- "properties": {
- "access_key": {
- "type": "string",
- "title": "Access Key",
- "description": "Your PrestaShop access key. See the docs for info on how to obtain this.",
- "order": 0,
- "airbyte_secret": true
- },
- "url": {
- "type": "string",
- "title": "Shop URL",
- "description": "Shop URL without trailing slash.",
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start date",
- "description": "The Start date in the format YYYY-MM-DD.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "2022-01-01" ],
- "format": "date",
- "order": 2
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "${domain}" ]
- }
- }, {
- "sourceDefinitionId": "f636c3c6-4077-45ac-b109-19fc62a283c1",
- "name": "Primetric",
- "dockerRepository": "airbyte/source-primetric",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/primetric",
- "icon": "primetric.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Primetric Spec",
- "type": "object",
- "required": [ "client_id", "client_secret" ],
- "properties": {
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your Primetric developer application. The Client ID is visible here.",
- "pattern": "^[a-zA-Z0-9]+$",
- "airbyte_secret": true,
- "examples": [ "1234aBcD5678EFGh9045Neq79sdDlA15082VMYcj" ],
- "order": 0
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your Primetric developer application. You can manage your client's credentials here.",
- "pattern": "^[a-zA-Z0-9]+$",
- "airbyte_secret": true,
- "order": 1
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "a4617b39-3c14-44cd-a2eb-6e720f269235",
- "name": "Public APIs",
- "dockerRepository": "airbyte/source-public-apis",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/public-apis",
- "icon": "publicapi.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/public-apis",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Public Apis Spec",
- "type": "object",
- "required": [ ],
- "properties": { }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "dbe9b7ae-7b46-4e44-a507-02a343cf7230",
- "name": "Punk API",
- "dockerRepository": "airbyte/source-punk-api",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/punk-api",
- "icon": "punkapi.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/punk-api",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Punk Api Spec",
- "type": "object",
- "required": [ "brewed_before", "brewed_after" ],
- "additionalProperties": true,
- "properties": {
- "id": {
- "title": "Beers with specific ID",
- "type": "string",
- "description": "To extract specific data with Unique ID",
- "examples": [ 1, 22 ]
- },
- "brewed_before": {
- "title": "Brewed before data to get incremental reads",
- "type": "string",
- "description": "To extract specific data with Unique ID",
- "pattern": "^[0-9]{2}-[0-9]{4}$",
- "examples": [ "MM-YYYY" ]
- },
- "brewed_after": {
- "title": "Brewed after data to get incremental reads",
- "type": "string",
- "description": "To extract specific data with Unique ID",
- "pattern": "^[0-9]{2}-[0-9]{4}$",
- "examples": [ "MM-YYYY" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "88ecd3a8-5f5b-11ed-9b6a-0242ac120002",
- "name": "PyPI",
- "dockerRepository": "airbyte/source-pypi",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/pypi",
- "icon": "pypi.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/pypi",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Pypi Spec",
- "type": "object",
- "required": [ "project_name" ],
- "additionalProperties": true,
- "properties": {
- "project_name": {
- "type": "string",
- "title": "PyPI Package",
- "description": "Name of the project/package. Can only be in lowercase with hyphen. This is the name used using pip command for installing the package.",
- "examples": [ "sampleproject" ]
- },
- "version": {
- "title": "Package Version",
- "type": "string",
- "description": "Version of the project/package. Use it to find a particular release instead of all releases.",
- "examples": [ "1.2.0" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "f7c0b910-5f66-11ed-9b6a-0242ac120002",
- "name": "Qonto",
- "dockerRepository": "airbyte/source-qonto",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/public-qonto",
- "icon": "qonto.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Qonto Spec",
- "type": "object",
- "required": [ "endpoint", "organization_slug", "secret_key", "iban" ],
- "properties": {
- "endpoint": {
- "title": "Endpoint",
- "type": "string",
- "description": "Please choose the right endpoint to use in this connection",
- "enum": [ "Production", "Test Mocked API Server" ]
- },
- "organization_slug": {
- "title": "Organization slug",
- "type": "string",
- "description": "Organization slug used in Qonto"
- },
- "secret_key": {
- "title": "Secret Key",
- "type": "string",
- "description": "Secret key of the Qonto account",
- "airbyte_secret": true
- },
- "iban": {
- "title": "IBAN",
- "type": "string",
- "description": "International Bank Account Number linked used with your Qonto Account",
- "pattern": "^[A-Z0-9]*$"
- },
- "start_date": {
- "title": "Start date",
- "type": "string",
- "description": "Start getting data from that date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "b08e4776-d1de-4e80-ab5c-1e51dad934a2",
- "name": "Qualaroo",
- "dockerRepository": "airbyte/source-qualaroo",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/qualaroo",
- "icon": "qualaroo.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/qualaroo",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Qualaroo Spec",
- "type": "object",
- "required": [ "token", "key", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "token": {
- "type": "string",
- "title": "API token",
- "description": "A Qualaroo token. See the docs for instructions on how to generate it.",
- "airbyte_secret": true
- },
- "key": {
- "type": "string",
- "title": "API key",
- "description": "A Qualaroo token. See the docs for instructions on how to generate it.",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2021-03-01T00:00:00.000Z" ]
- },
- "survey_ids": {
- "type": "array",
- "items": {
- "type": "string",
- "pattern": "^[0-9]{1,8}$"
- },
- "title": "Qualaroo survey IDs",
- "description": "IDs of the surveys from which you'd like to replicate data. If left empty, data from all surveys to which you have access will be replicated."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ ],
- "oauthFlowInitParameters": [ ],
- "oauthFlowOutputParameters": [ [ "token" ], [ "key" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "cf9c4355-b171-4477-8f2d-6c5cc5fc8b7e",
- "name": "QuickBooks",
- "dockerRepository": "airbyte/source-quickbooks",
- "dockerImageTag": "2.0.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/quickbooks",
- "icon": "quickbooks.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/quickbooks",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source QuickBooks Spec",
- "type": "object",
- "required": [ "credentials", "start_date", "sandbox" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "order": 0,
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date", "realm_id" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "oauth2.0"
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "Identifies which app is making the request. Obtain this value from the Keys tab on the app profile via My Apps on the developer site. There are two versions of this key: development and production."
- },
- "client_secret": {
- "description": " Obtain this value from the Keys tab on the app profile via My Apps on the developer site. There are two versions of this key: development and production.",
- "title": "Client Secret",
- "type": "string",
- "airbyte_secret": true
- },
- "refresh_token": {
- "description": "A token used when refreshing the access token.",
- "title": "Refresh Token",
- "type": "string",
- "airbyte_secret": true
- },
- "access_token": {
- "description": "Access token fot making authenticated requests.",
- "title": "Access Token",
- "type": "string",
- "airbyte_secret": true
- },
- "token_expiry_date": {
- "type": "string",
- "title": "Token Expiry Date",
- "description": "The date-time when the access token should be refreshed.",
- "format": "date-time"
- },
- "realm_id": {
- "description": "Labeled Company ID. The Make API Calls panel is populated with the realm id and the current access token.",
- "title": "Realm ID",
- "type": "string",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "start_date": {
- "order": 1,
- "description": "The default value to use if no bookmark exists for an endpoint (rfc3339 date string). E.g, 2021-03-20T00:00:00+00:00. Any data before this date will not be replicated.",
- "title": "Start Date",
- "type": "string",
- "format": "date-time",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2021-03-20T00:00:00+00:00" ]
- },
- "sandbox": {
- "order": 2,
- "description": "Determines whether to use the sandbox or production environment.",
- "title": "Sandbox",
- "type": "boolean",
- "default": false
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "sandbox-quickbooks.api.intuit.com", "quickbooks.api.intuit.com", "oauth.platform.intuit.com" ]
- }
- }, {
- "sourceDefinitionId": "9b6cc0c0-da81-4103-bbfd-5279e18a849a",
- "name": "Railz",
- "dockerRepository": "airbyte/source-railz",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/railz",
- "icon": "railz.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Railz Spec",
- "type": "object",
- "required": [ "client_id", "secret_key", "start_date" ],
- "properties": {
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "Client ID (client_id)",
- "order": 0
- },
- "secret_key": {
- "type": "string",
- "title": "Secret key",
- "description": "Secret key (secret_key)",
- "order": 1,
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Start date",
- "description": "Start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 2
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "45d2e135-2ede-49e1-939f-3e3ec357a65e",
- "name": "Recharge",
- "dockerRepository": "airbyte/source-recharge",
- "dockerImageTag": "0.2.9",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/recharge",
- "icon": "recharge.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/recharge",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Recharge Spec",
- "type": "object",
- "required": [ "start_date", "access_token" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for Recharge API, in the format YYYY-MM-DDT00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2021-05-14T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "format": "date-time"
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The value of the Access Token generated. See the docs for more information.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.rechargeapps.com" ]
- }
- }, {
- "sourceDefinitionId": "25d7535d-91e0-466a-aa7f-af81578be277",
- "name": "Recreation",
- "dockerRepository": "airbyte/source-recreation",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/recreation",
- "icon": "recreation.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/recreation",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Recreation Spec",
- "type": "object",
- "required": [ "apikey" ],
- "additionalProperties": true,
- "properties": {
- "apikey": {
- "title": "API Key",
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true
- },
- "query_campsites": {
- "title": "Query Campsite",
- "type": "string"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "3b046ac7-d8d3-4eb3-b122-f96b2a16d8a8",
- "name": "Recruitee",
- "dockerRepository": "airbyte/source-recruitee",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/recruitee",
- "icon": "recruitee.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/recruitee",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Recruitee Spec",
- "type": "object",
- "required": [ "api_key", "company_id" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Recruitee API Key. See here.",
- "airbyte_secret": true
- },
- "company_id": {
- "title": "Company ID",
- "type": "integer",
- "description": "Recruitee Company ID. You can also find this ID on the Recruitee API tokens page."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "cd42861b-01fc-4658-a8ab-5d11d0510f01",
- "name": "Recurly",
- "dockerRepository": "airbyte/source-recurly",
- "dockerImageTag": "0.4.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/recurly",
- "icon": "recurly.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/recurly",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Recurly Source Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": false,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Key",
- "airbyte_secret": true,
- "description": "Recurly API Key. See the docs for more information on how to generate this key.",
- "order": 1
- },
- "begin_time": {
- "type": "string",
- "description": "ISO8601 timestamp from which the replication from Recurly API will start from.",
- "examples": [ "2021-12-01T00:00:00" ],
- "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
- "order": 2
- },
- "end_time": {
- "type": "string",
- "description": "ISO8601 timestamp to which the replication from Recurly API will stop. Records after that date won't be imported.",
- "examples": [ "2021-12-01T00:00:00" ],
- "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "e87ffa8e-a3b5-f69c-9076-6011339de1f6",
- "name": "Redshift",
- "dockerRepository": "airbyte/source-redshift",
- "dockerImageTag": "0.3.16",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/redshift",
- "icon": "redshift.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redshift",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Redshift Source Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username", "password" ],
- "properties": {
- "host": {
- "title": "Host",
- "description": "Host Endpoint of the Redshift Cluster (must include the cluster-id, region and end with .redshift.amazonaws.com).",
- "type": "string",
- "order": 1
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 5439,
- "examples": [ "5439" ],
- "order": 2
- },
- "database": {
- "title": "Database",
- "description": "Name of the database.",
- "type": "string",
- "examples": [ "master" ],
- "order": 3
- },
- "schemas": {
- "title": "Schemas",
- "description": "The list of schemas to sync from. Specify one or more explicitly or keep empty to process all schemas. Schema names are case sensitive.",
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 0,
- "uniqueItems": true,
- "examples": [ "public" ],
- "order": 4
- },
- "username": {
- "title": "Username",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 5
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 6
- },
- "jdbc_url_params": {
- "title": "JDBC URL Params",
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "type": "string",
- "order": 7
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "8cc6537e-f8a6-423c-b960-e927af76116e",
- "name": "Reply.io",
- "dockerRepository": "airbyte/source-reply-io",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/reply-io",
- "icon": "reply-io.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/reply-io",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Reply Io Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Token",
- "description": "The API Token for Reply",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "db04ecd1-42e7-4115-9cec-95812905c626",
- "name": "Retently",
- "dockerRepository": "airbyte/source-retently",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/retently",
- "icon": "retently.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Retently Api Spec",
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authentication Mechanism",
- "description": "Choose how to authenticate to Retently",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "Authenticate via Retently (OAuth)",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "additionalProperties": true,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Retently developer application."
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Retently developer application.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "Retently Refresh Token which can be used to fetch new Bearer Tokens when the current one expires.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Authenticate with API Token",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Token",
- "order": 0
- },
- "api_key": {
- "title": "API Token",
- "description": "Retently API Token. See the docs for more information on how to obtain this key.",
- "type": "string",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "Client",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "fb141f29-be2a-450b-a4f2-2cd203a00f84",
- "name": "RD Station Marketing",
- "dockerRepository": "airbyte/source-rd-station-marketing",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/rd-station-marketing",
- "icon": "rdstation.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/rd-station-marketing",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "RD Station Marketing Spec",
- "type": "object",
- "required": [ "start_date" ],
- "additionalProperties": true,
- "properties": {
- "authorization": {
- "type": "object",
- "title": "Authentication Type",
- "description": "Choose one of the possible authorization method",
- "oneOf": [ {
- "title": "Sign in via RD Station (OAuth)",
- "type": "object",
- "required": [ "auth_type" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client",
- "order": 0
- },
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your RD Station developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your RD Station developer application",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "The token for obtaining the new access token.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "start_date": {
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. When specified and not None, then stream will behave as incremental",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "type": "string"
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "authorization", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d78e5de0-aa44-4744-aa4f-74c818ccfe19",
- "name": "RKI Covid",
- "dockerRepository": "airbyte/source-rki-covid",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/rki-covid",
- "icon": "rki.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/rki-covid",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "RKI Covid Spec",
- "type": "object",
- "required": [ "start_date" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "UTC date in the format 2017-01-25. Any data before this date will not be replicated.",
- "order": 1
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "0efee448-6948-49e2-b786-17db50647908",
- "name": "RSS",
- "dockerRepository": "airbyte/source-rss",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/rss",
- "icon": "rss.svg",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/rss",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "RSS Spec",
- "type": "object",
- "required": [ "url" ],
- "properties": {
- "url": {
- "type": "string",
- "description": "RSS Feed URL"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false
- }, {
- "sourceDefinitionId": "921d9608-3915-450b-8078-0af18801ea1b",
- "name": "Rocket.chat",
- "dockerRepository": "airbyte/source-rocket-chat",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/rocket-chat",
- "icon": "rocket-chat.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/rocket-chat",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Rocket Chat Spec",
- "type": "object",
- "required": [ "token", "user_id", "endpoint" ],
- "additionalProperties": true,
- "properties": {
- "endpoint": {
- "title": "Endpoint",
- "type": "string",
- "description": "Your rocket.chat instance URL.",
- "examples": [ "https://airbyte-connector-poc.rocket.chat", "https://hey.yoursite.com" ]
- },
- "token": {
- "title": "Token",
- "type": "string",
- "description": "Your API Token. See here. The token is case sensitive.",
- "airbyte_secret": true
- },
- "user_id": {
- "title": "User ID.",
- "type": "string",
- "description": "Your User Id."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "69589781-7828-43c5-9f63-8925b1c1ccc2",
- "name": "S3",
- "dockerRepository": "airbyte/source-s3",
- "dockerImageTag": "2.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/s3",
- "icon": "s3.svg",
- "sourceType": "file",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/s3",
- "changelogUrl": "https://docs.airbyte.com/integrations/sources/s3",
- "connectionSpecification": {
- "title": "S3 Source Spec",
- "type": "object",
- "properties": {
- "dataset": {
- "title": "Output Stream Name",
- "description": "The name of the stream you would like this source to output. Can contain letters, numbers, or underscores.",
- "pattern": "^([A-Za-z0-9-_]+)$",
- "order": 0,
- "type": "string"
- },
- "path_pattern": {
- "title": "Pattern of files to replicate",
- "description": "A regular expression which tells the connector which files to replicate. All files which match this pattern will be replicated. Use | to separate multiple patterns. See this page to understand pattern syntax (GLOBSTAR and SPLIT flags are enabled). Use pattern ** to pick up all files.",
- "examples": [ "**", "myFolder/myTableFiles/*.csv|myFolder/myOtherTableFiles/*.csv" ],
- "order": 10,
- "type": "string"
- },
- "format": {
- "title": "File Format",
- "description": "The format of the files you'd like to replicate",
- "default": "csv",
- "order": 20,
- "type": "object",
- "oneOf": [ {
- "title": "CSV",
- "description": "This connector utilises PyArrow (Apache Arrow) for CSV parsing.",
- "type": "object",
- "properties": {
- "filetype": {
- "title": "Filetype",
- "const": "csv",
- "type": "string"
- },
- "delimiter": {
- "title": "Delimiter",
- "description": "The character delimiting individual cells in the CSV data. This may only be a 1-character string. For tab-delimited data enter '\\t'.",
- "default": ",",
- "minLength": 1,
- "order": 0,
- "type": "string"
- },
- "infer_datatypes": {
- "title": "Infer Datatypes",
- "description": "Configures whether a schema for the source should be inferred from the current data or not. If set to false and a custom schema is set, then the manually enforced schema is used. If a schema is not manually set, and this is set to false, then all fields will be read as strings",
- "default": true,
- "order": 1,
- "type": "boolean"
- },
- "quote_char": {
- "title": "Quote Character",
- "description": "The character used for quoting CSV values. To disallow quoting, make this field blank.",
- "default": "\"",
- "order": 2,
- "type": "string"
- },
- "escape_char": {
- "title": "Escape Character",
- "description": "The character used for escaping special characters. To disallow escaping, leave this field blank.",
- "order": 3,
- "type": "string"
- },
- "encoding": {
- "title": "Encoding",
- "description": "The character encoding of the CSV data. Leave blank to default to UTF8. See list of python encodings for allowable options.",
- "default": "utf8",
- "order": 4,
- "type": "string"
- },
- "double_quote": {
- "title": "Double Quote",
- "description": "Whether two quotes in a quoted CSV value denote a single quote in the data.",
- "default": true,
- "order": 5,
- "type": "boolean"
- },
- "newlines_in_values": {
- "title": "Allow newlines in values",
- "description": "Whether newline characters are allowed in CSV values. Turning this on may affect performance. Leave blank to default to False.",
- "default": false,
- "order": 6,
- "type": "boolean"
- },
- "additional_reader_options": {
- "title": "Additional Reader Options",
- "description": "Optionally add a valid JSON string here to provide additional options to the csv reader. Mappings must correspond to options detailed here. 'column_types' is used internally to handle schema so overriding that would likely cause problems.",
- "examples": [ "{\"timestamp_parsers\": [\"%m/%d/%Y %H:%M\", \"%Y/%m/%d %H:%M\"], \"strings_can_be_null\": true, \"null_values\": [\"NA\", \"NULL\"]}" ],
- "order": 7,
- "type": "string"
- },
- "advanced_options": {
- "title": "Advanced Options",
- "description": "Optionally add a valid JSON string here to provide additional Pyarrow ReadOptions. Specify 'column_names' here if your CSV doesn't have header, or if you want to use custom column names. 'block_size' and 'encoding' are already used above, specify them again here will override the values above.",
- "examples": [ "{\"column_names\": [\"column1\", \"column2\"]}" ],
- "order": 8,
- "type": "string"
- },
- "block_size": {
- "title": "Block Size",
- "description": "The chunk size in bytes to process at a time in memory from each file. If your data is particularly wide and failing during schema detection, increasing this should solve it. Beware of raising this too high as you could hit OOM errors.",
- "default": 10000,
- "minimum": 1,
- "maximum": 2147483647,
- "order": 9,
- "type": "integer"
- }
- }
- }, {
- "title": "Parquet",
- "description": "This connector utilises PyArrow (Apache Arrow) for Parquet parsing.",
- "type": "object",
- "properties": {
- "filetype": {
- "title": "Filetype",
- "const": "parquet",
- "type": "string"
- },
- "columns": {
- "title": "Selected Columns",
- "description": "If you only want to sync a subset of the columns from the file(s), add the columns you want here as a comma-delimited list. Leave it empty to sync all columns.",
- "order": 0,
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "batch_size": {
- "title": "Record batch size",
- "description": "Maximum number of records per batch read from the input files. Batches may be smaller if there aren’t enough rows in the file. This option can help avoid out-of-memory errors if your data is particularly wide.",
- "default": 65536,
- "order": 1,
- "type": "integer"
- },
- "buffer_size": {
- "title": "Buffer Size",
- "description": "Perform read buffering when deserializing individual column chunks. By default every group column will be loaded fully to memory. This option can help avoid out-of-memory errors if your data is particularly wide.",
- "default": 2,
- "type": "integer"
- }
- }
- }, {
- "title": "Avro",
- "description": "This connector utilises fastavro for Avro parsing.",
- "type": "object",
- "properties": {
- "filetype": {
- "title": "Filetype",
- "const": "avro",
- "type": "string"
- }
- }
- }, {
- "title": "Jsonl",
- "description": "This connector uses PyArrow for JSON Lines (jsonl) file parsing.",
- "type": "object",
- "properties": {
- "filetype": {
- "title": "Filetype",
- "const": "jsonl",
- "type": "string"
- },
- "newlines_in_values": {
- "title": "Allow newlines in values",
- "description": "Whether newline characters are allowed in JSON values. Turning this on may affect performance. Leave blank to default to False.",
- "default": false,
- "order": 0,
- "type": "boolean"
- },
- "unexpected_field_behavior": {
- "title": "Unexpected field behavior",
- "description": "How JSON fields outside of explicit_schema (if given) are treated. Check PyArrow documentation for details",
- "default": "infer",
- "examples": [ "ignore", "infer", "error" ],
- "order": 1,
- "enum": [ "ignore", "infer", "error" ]
- },
- "block_size": {
- "title": "Block Size",
- "description": "The chunk size in bytes to process at a time in memory from each file. If your data is particularly wide and failing during schema detection, increasing this should solve it. Beware of raising this too high as you could hit OOM errors.",
- "default": 0,
- "order": 2,
- "type": "integer"
- }
- }
- } ]
- },
- "schema": {
- "title": "Manually enforced data schema",
- "description": "Optionally provide a schema to enforce, as a valid JSON string. Ensure this is a mapping of { \"column\" : \"type\" }, where types are valid JSON Schema datatypes. Leave as {} to auto-infer the schema.",
- "default": "{}",
- "examples": [ "{\"column_1\": \"number\", \"column_2\": \"string\", \"column_3\": \"array\", \"column_4\": \"object\", \"column_5\": \"boolean\"}" ],
- "order": 30,
- "type": "string"
- },
- "provider": {
- "title": "S3: Amazon Web Services",
- "type": "object",
- "properties": {
- "bucket": {
- "title": "Bucket",
- "description": "Name of the S3 bucket where the file(s) exist.",
- "order": 0,
- "type": "string"
- },
- "aws_access_key_id": {
- "title": "AWS Access Key ID",
- "description": "In order to access private Buckets stored on AWS S3, this connector requires credentials with the proper permissions. If accessing publicly available data, this field is not necessary.",
- "airbyte_secret": true,
- "order": 1,
- "type": "string"
- },
- "aws_secret_access_key": {
- "title": "AWS Secret Access Key",
- "description": "In order to access private Buckets stored on AWS S3, this connector requires credentials with the proper permissions. If accessing publicly available data, this field is not necessary.",
- "airbyte_secret": true,
- "order": 2,
- "type": "string"
- },
- "path_prefix": {
- "title": "Path Prefix",
- "description": "By providing a path-like prefix (e.g. myFolder/thisTable/) under which all the relevant files sit, we can optimize finding these in S3. This is optional but recommended if your bucket contains many folders/files which you don't need to replicate.",
- "default": "",
- "order": 3,
- "type": "string"
- },
- "endpoint": {
- "title": "Endpoint",
- "description": "Endpoint to an S3 compatible service. Leave empty to use AWS.",
- "default": "",
- "order": 4,
- "type": "string"
- },
- "start_date": {
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any file modified before this date will not be replicated.",
- "examples": [ "2021-01-01T00:00:00Z" ],
- "format": "date-time",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "order": 5,
- "type": "string"
- }
- },
- "required": [ "bucket" ],
- "order": 11,
- "description": "Use this to load files from S3 or S3-compatible services"
- }
- },
- "required": [ "dataset", "path_pattern", "provider" ]
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*.s3.amazonaws.com" ]
- }
- }, {
- "sourceDefinitionId": "41991d12-d4b5-439e-afd0-260a31d4c53f",
- "name": "SalesLoft",
- "dockerRepository": "airbyte/source-salesloft",
- "dockerImageTag": "1.0.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/salesloft",
- "icon": "salesloft.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/salesloft",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Salesloft Spec",
- "type": "object",
- "required": [ "credentials", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "order": 0,
- "type": "object",
- "title": "Credentials",
- "oneOf": [ {
- "title": "Authenticate via OAuth",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date", "auth_type" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "oauth2.0"
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your Salesloft developer application."
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your Salesloft developer application.",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true
- },
- "token_expiry_date": {
- "type": "string",
- "description": "The date-time when the access token should be refreshed.",
- "format": "date-time"
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "The token for obtaining a new access token.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Authenticate via API Key",
- "type": "object",
- "required": [ "api_key", "auth_type" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "api_key"
- },
- "api_key": {
- "type": "string",
- "airbyte_secret": true,
- "title": "API Key",
- "description": "API Key for making authenticated requests. More instruction on how to find this value in our docs"
- }
- }
- } ]
- },
- "start_date": {
- "order": 1,
- "type": "string",
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for Salesloft API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "examples": [ "2020-11-16T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.salesloft.com" ]
- }
- }, {
- "sourceDefinitionId": "b117307c-14b6-41aa-9422-947e34922962",
- "name": "Salesforce",
- "dockerRepository": "airbyte/source-salesforce",
- "dockerImageTag": "2.0.11",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/salesforce",
- "icon": "salesforce.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/salesforce",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Salesforce Source Spec",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "additionalProperties": true,
- "properties": {
- "is_sandbox": {
- "title": "Sandbox",
- "description": "Toggle if you're using a Salesforce Sandbox",
- "type": "boolean",
- "default": false,
- "order": 1
- },
- "auth_type": {
- "type": "string",
- "const": "Client"
- },
- "client_id": {
- "title": "Client ID",
- "description": "Enter your Salesforce developer application's Client ID",
- "type": "string",
- "order": 2
- },
- "client_secret": {
- "title": "Client Secret",
- "description": "Enter your Salesforce developer application's Client secret",
- "type": "string",
- "airbyte_secret": true,
- "order": 3
- },
- "refresh_token": {
- "title": "Refresh Token",
- "description": "Enter your application's Salesforce Refresh Token used for Airbyte to access your Salesforce account.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "start_date": {
- "title": "Start Date",
- "description": "Enter the date in the YYYY-MM-DD format. Airbyte will replicate the data added on and after this date. If this field is blank, Airbyte will replicate the data for last two years.",
- "type": "string",
- "pattern": "^([0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}Z)?)$",
- "examples": [ "2021-07-25", "2021-07-25T00:00:00Z" ],
- "format": "date-time",
- "order": 5
- },
- "streams_criteria": {
- "type": "array",
- "order": 6,
- "items": {
- "type": "object",
- "required": [ "criteria", "value" ],
- "properties": {
- "criteria": {
- "type": "string",
- "title": "Search criteria",
- "enum": [ "starts with", "ends with", "contains", "exacts", "starts not with", "ends not with", "not contains", "not exacts" ],
- "order": 1,
- "default": "contains"
- },
- "value": {
- "type": "string",
- "title": "Search value",
- "order": 2
- }
- }
- },
- "title": "Filter Salesforce Objects",
- "description": "Filter streams relevant to you"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "auth_type" ],
- "predicate_value": "Client",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "is_sandbox": {
- "type": "boolean",
- "path_in_connector_config": [ "is_sandbox" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*.salesforce.com" ]
- }
- }, {
- "sourceDefinitionId": "ec5f3102-fb31-4916-99ae-864faf8e7e25",
- "name": "SAP Fieldglass",
- "dockerRepository": "airbyte/source-sap-fieldglass",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sap-fieldglass",
- "icon": "sapfieldglass.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sap-fieldglass",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Sap Fieldglass Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "8d7ef552-2c0f-11ec-8d3d-0242ac130003",
- "name": "SearchMetrics",
- "dockerRepository": "airbyte/source-search-metrics",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/search-metrics",
- "icon": "searchmetrics.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/seacrh-metrics",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Search Metrics Spec",
- "type": "object",
- "required": [ "api_key", "client_secret", "country_code", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "",
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "",
- "airbyte_secret": true
- },
- "country_code": {
- "title": "Country Code",
- "type": "string",
- "default": "",
- "description": "The region of the S3 staging bucket to use if utilising a copy strategy.",
- "enum": [ "", "AR", "AU", "AT", "BE", "BR", "CA", "CN", "CO", "DK", "FI", "FR", "DE", "HK", "IN", "IE", "IT", "JP", "MX", "NL", "NO", "PL", "RU", "SG", "ZA", "ES", "SE", "CH", "TR", "US", "GB" ],
- "order": 2
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "Data generated in SearchMetrics after this date will be replicated. This date must be specified in the format YYYY-MM-DDT00:00:00Z.",
- "examples": [ "20200925" ],
- "pattern": "^[0-9]{4}[0-9]{2}[0-9]{2}$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "da9fc6b9-8059-4be0-b204-f56e22e4d52d",
- "name": "Secoda",
- "dockerRepository": "airbyte/source-secoda",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/secoda",
- "icon": "secoda.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/secoda",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Secoda Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "Api Key",
- "type": "string",
- "description": "Your API Access Key. See here. The key is case sensitive.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "fbb5fbe2-16ad-4cf4-af7d-ff9d9c316c87",
- "name": "Sendgrid",
- "dockerRepository": "airbyte/source-sendgrid",
- "dockerImageTag": "0.3.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sendgrid",
- "icon": "sendgrid.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sendgrid",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Sendgrid Spec",
- "type": "object",
- "required": [ "apikey" ],
- "additionalProperties": true,
- "properties": {
- "apikey": {
- "title": "Sendgrid API key",
- "airbyte_secret": true,
- "type": "string",
- "description": "API Key, use admin to generate this key.",
- "order": 0
- },
- "start_time": {
- "title": "Start time",
- "type": "string",
- "format": "date-time",
- "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(.\\d+)?Z$",
- "description": "Start time in ISO8601 format. Any data before this time point will not be replicated.",
- "examples": [ "2020-01-01T01:01:01Z", "2020-01-01T01:01:01.000001Z" ],
- "order": 1
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.sendgrid.com" ]
- }
- }, {
- "sourceDefinitionId": "39de93cb-1511-473e-a673-5cbedb9436af",
- "name": "Senseforce",
- "dockerRepository": "airbyte/source-senseforce",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/senseforce",
- "icon": "senseforce.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/senseforce",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Senseforce Source Spec",
- "type": "object",
- "required": [ "access_token", "backend_url", "dataset_id", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "access_token": {
- "type": "string",
- "title": "API Access Token",
- "description": "Your API access token. See here. The toke is case sensitive.",
- "airbyte_secret": true
- },
- "backend_url": {
- "type": "string",
- "title": "Senseforce backend URL",
- "examples": [ "https://galaxyapi.senseforce.io" ],
- "description": "Your Senseforce API backend URL. This is the URL shown during the Login screen. See here for more details. (Note: Most Senseforce backend APIs have the term 'galaxy' in their ULR)"
- },
- "dataset_id": {
- "type": "string",
- "title": "Dataset ID",
- "examples": [ "8f418098-ca28-4df5-9498-0df9fe78eda7" ],
- "description": "The ID of the dataset you want to synchronize. The ID can be found in the URL when opening the dataset. See here for more details. (Note: As the Senseforce API only allows to synchronize a specific dataset, each dataset you want to synchronize needs to be implemented as a separate airbyte source)."
- },
- "start_date": {
- "type": "string",
- "title": "The first day (in UTC) when to read data from.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "description": "UTC date and time in the format 2017-01-25. Only data with \"Timestamp\" after this date will be replicated. Important note: This start date must be set to the first day of where your dataset provides data. If your dataset has data from 2020-10-10 10:21:10, set the start_date to 2020-10-10 or later",
- "examples": [ "2017-01-25" ],
- "format": "date"
- },
- "slice_range": {
- "type": "integer",
- "title": "Data request time increment in days",
- "default": 10,
- "minimum": 1,
- "maximum": 365,
- "examples": [ 1, 3, 10, 30, 180, 360 ],
- "airbyte_hidden": true,
- "description": "The time increment used by the connector when requesting data from the Senseforce API. The bigger the value is, the less requests will be made and faster the sync will be. On the other hand, the more seldom the state is persisted and the more likely one could run into rate limites. Furthermore, consider that large chunks of time might take a long time for the Senseforce query to return data - meaning it could take in effect longer than with more smaller time slices. If there are a lot of data per day, set this setting to 1. If there is only very little data per day, you might change the setting to 10 or more."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "galaxyapi.senseforce.io", "senseforce.io" ]
- }
- }, {
- "sourceDefinitionId": "2e88fa20-a2f6-43cc-bba6-98a0a3f244fb",
- "name": "Sendinblue",
- "dockerRepository": "airbyte/source-sendinblue",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sendinblue",
- "icon": "sendinblue.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sendinblue",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Sendinblue Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Your API Key. See here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "9da77001-af33-4bcd-be46-6252bf9342b9",
- "name": "Shopify",
- "dockerRepository": "airbyte/source-shopify",
- "dockerImageTag": "0.3.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/shopify",
- "icon": "shopify.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/shopify",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Shopify Source CDK Specifications",
- "type": "object",
- "required": [ "shop", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "shop": {
- "type": "string",
- "title": "Shopify Store",
- "description": "The name of your Shopify store found in the URL. For example, if your URL was https://NAME.myshopify.com, then the name would be 'NAME'.",
- "order": 1
- },
- "credentials": {
- "title": "Shopify Authorization Method",
- "description": "The authorization method to use to retrieve data from Shopify",
- "type": "object",
- "order": 2,
- "oneOf": [ {
- "title": "API Password",
- "description": "API Password Auth",
- "type": "object",
- "required": [ "auth_method", "api_password" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "api_password",
- "order": 0
- },
- "api_password": {
- "type": "string",
- "title": "API Password",
- "description": "The API Password for your private application in the `Shopify` store.",
- "airbyte_secret": true,
- "order": 1
- }
- }
- }, {
- "type": "object",
- "title": "OAuth2.0",
- "description": "OAuth2.0",
- "required": [ "auth_method" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "oauth2.0",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of the Shopify developer application.",
- "airbyte_secret": true,
- "order": 1
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of the Shopify developer application.",
- "airbyte_secret": true,
- "order": 2
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The Access Token for making authenticated requests.",
- "airbyte_secret": true,
- "order": 3
- }
- }
- } ]
- },
- "start_date": {
- "type": "string",
- "title": "Replication Start Date",
- "description": "The date you would like to replicate data from. Format: YYYY-MM-DD. Any data before this date will not be replicated.",
- "examples": [ "2021-01-01" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "format": "date",
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_method" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "shop": {
- "type": "string",
- "path_in_connector_config": [ "shop" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "2fed2292-5586-480c-af92-9944e39fe12d",
- "name": "Short.io",
- "dockerRepository": "airbyte/source-shortio",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/shortio",
- "icon": "short.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://developers.short.io/reference",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Shortio Spec",
- "type": "object",
- "required": [ "domain_id", "secret_key", "start_date" ],
- "properties": {
- "domain_id": {
- "type": "string",
- "desciprtion": "Short.io Domain ID",
- "title": "Domain ID",
- "airbyte_secret": false
- },
- "secret_key": {
- "type": "string",
- "title": "Secret Key",
- "description": "Short.io Secret Key",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "airbyte_secret": false
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "c2281cee-86f9-4a86-bb48-d23286b4c7bd",
- "name": "Slack",
- "dockerRepository": "airbyte/source-slack",
- "dockerImageTag": "0.1.25",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/slack",
- "icon": "slack.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/slack",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Slack Spec",
- "type": "object",
- "required": [ "start_date", "lookback_window", "join_channels" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "title": "Start Date",
- "format": "date-time"
- },
- "lookback_window": {
- "type": "integer",
- "title": "Threads Lookback window (Days)",
- "description": "How far into the past to look for messages in threads.",
- "examples": [ 7, 14 ]
- },
- "join_channels": {
- "type": "boolean",
- "default": true,
- "title": "Join all channels",
- "description": "Whether to join all channels or to sync data only from channels the bot is already in. If false, you'll need to manually add the bot to all the channels from which you'd like to sync messages. "
- },
- "channel_filter": {
- "type": "array",
- "default": [ ],
- "items": {
- "type": "string",
- "minLength": 0
- },
- "title": "Channel name filter",
- "description": "A channel name list (without leading '#' char) which limit the channels from which you'd like to sync. Empty list means no filter.",
- "examples": [ "channel_one", "channel_two" ]
- },
- "credentials": {
- "title": "Authentication mechanism",
- "description": "Choose how to authenticate into Slack",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "Sign in via Slack (OAuth)",
- "required": [ "option_title", "client_id", "client_secret", "access_token" ],
- "properties": {
- "option_title": {
- "type": "string",
- "const": "Default OAuth2.0 authorization"
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "Slack client_id. See our docs if you need help finding this id."
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "Slack client_secret. See our docs if you need help finding this secret.",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "title": "Access token",
- "description": "Slack access_token. See our docs if you need help generating the token.",
- "airbyte_secret": true
- }
- },
- "order": 0
- }, {
- "type": "object",
- "title": "API Token",
- "required": [ "option_title", "api_token" ],
- "properties": {
- "option_title": {
- "type": "string",
- "const": "API Token Credentials"
- },
- "api_token": {
- "type": "string",
- "title": "API Token",
- "description": "A Slack bot token. See the docs for instructions on how to generate it.",
- "airbyte_secret": true
- }
- },
- "order": 1
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "option_title" ],
- "predicate_value": "Default OAuth2.0 authorization",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "slack.com" ]
- }
- }, {
- "sourceDefinitionId": "781f8b1d-4e20-4842-a2c3-cd9b119d65fa",
- "name": "Smaily",
- "dockerRepository": "airbyte/source-smaily",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/smaily",
- "icon": "smaily.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/smaily",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Smaily Spec",
- "type": "object",
- "required": [ "api_subdomain", "api_username", "api_password" ],
- "additionalProperties": true,
- "properties": {
- "api_subdomain": {
- "type": "string",
- "title": "API Subdomain",
- "description": "API Subdomain. See https://smaily.com/help/api/general/create-api-user/"
- },
- "api_username": {
- "type": "string",
- "title": "API User Username",
- "description": "API user username. See https://smaily.com/help/api/general/create-api-user/"
- },
- "api_password": {
- "type": "string",
- "title": "API User Password",
- "description": "API user password. See https://smaily.com/help/api/general/create-api-user/",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "21cc4a17-a011-4485-8a3e-e2341a91ab9f",
- "name": "SmartEngage",
- "dockerRepository": "airbyte/source-smartengage",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/smartengage",
- "icon": "smartengage.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/smartengage",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "SmartEngage Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "API Key",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "374ebc65-6636-4ea0-925c-7d35999a8ffc",
- "name": "Smartsheets",
- "dockerRepository": "airbyte/source-smartsheets",
- "dockerImageTag": "1.0.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/smartsheets",
- "icon": "smartsheet.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/smartsheets",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Smartsheets Source Spec",
- "type": "object",
- "required": [ "credentials", "spreadsheet_id" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "order": 0,
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "oauth2.0"
- },
- "client_id": {
- "type": "string",
- "description": "The API ID of the SmartSheets developer application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "description": "The API Secret the SmartSheets developer application.",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true
- },
- "token_expiry_date": {
- "type": "string",
- "description": "The date-time when the access token should be refreshed.",
- "format": "date-time"
- },
- "refresh_token": {
- "type": "string",
- "description": "The key to refresh the expired access_token.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "API Access Token",
- "type": "object",
- "required": [ "access_token" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "access_token"
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The access token to use for accessing your data from Smartsheets. This access token must be generated by a user with at least read access to the data you'd like to replicate. Generate an access token in the Smartsheets main menu by clicking Account > Apps & Integrations > API Access. See the setup guide for information on how to obtain this token.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "spreadsheet_id": {
- "title": "Sheet ID",
- "description": "The spreadsheet ID. Find it by opening the spreadsheet then navigating to File > Properties",
- "type": "string",
- "order": 1
- },
- "start_datetime": {
- "title": "Start Datetime",
- "type": "string",
- "examples": [ "2000-01-01T13:00:00", "2000-01-01T13:00:00-07:00" ],
- "description": "Only rows modified after this date/time will be replicated. This should be an ISO 8601 string, for instance: `2000-01-01T13:00:00`",
- "format": "date-time",
- "default": "2020-01-01T00:00:00+00:00",
- "order": 2,
- "airbyte_hidden": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- },
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- },
- "token_expiry_date": {
- "type": "string",
- "format": "date-time",
- "path_in_connector_config": [ "credentials", "token_expiry_date" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "app.smartsheet.com", "api.smartsheet.com" ]
- }
- }, {
- "sourceDefinitionId": "200330b2-ea62-4d11-ac6d-cfe3e3f8ab2b",
- "name": "Snapchat Marketing",
- "dockerRepository": "airbyte/source-snapchat-marketing",
- "dockerImageTag": "0.1.16",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/snapchat-marketing",
- "icon": "snapchat.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/snapchat-marketing",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Snapchat Marketing Spec",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your Snapchat developer application.",
- "airbyte_secret": true,
- "order": 0
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The Client Secret of your Snapchat developer application.",
- "airbyte_secret": true,
- "order": 1
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "Refresh Token to renew the expired Access Token.",
- "airbyte_secret": true,
- "order": 2
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "Date in the format 2022-01-01. Any data before this date will not be replicated.",
- "examples": [ "2022-01-01" ],
- "default": "2022-01-01",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 3,
- "format": "date"
- },
- "end_date": {
- "type": "string",
- "title": "End Date",
- "description": "Date in the format 2017-01-25. Any data after this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "2022-01-30" ],
- "order": 4,
- "format": "date"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "accounts.snapchat.com", "adsapi.snapchat.com" ]
- }
- }, {
- "sourceDefinitionId": "e2d65910-8c8b-40a1-ae7d-ee2416b2bfa2",
- "name": "Snowflake",
- "dockerRepository": "airbyte/source-snowflake",
- "dockerImageTag": "0.1.34",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/snowflake",
- "icon": "snowflake.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/snowflake",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Snowflake Source Spec",
- "type": "object",
- "required": [ "host", "role", "warehouse", "database" ],
- "properties": {
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "order": 0,
- "required": [ "client_id", "client_secret", "auth_type" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "OAuth",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your Snowflake developer application.",
- "airbyte_secret": true,
- "order": 1
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your Snowflake developer application.",
- "airbyte_secret": true,
- "order": 2
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true,
- "order": 3
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "Refresh Token for making authenticated requests.",
- "airbyte_secret": true,
- "order": 4
- }
- }
- }, {
- "title": "Username and Password",
- "type": "object",
- "required": [ "username", "password", "auth_type" ],
- "order": 1,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "username/password",
- "order": 0
- },
- "username": {
- "description": "The username you created to allow Airbyte to access the database.",
- "examples": [ "AIRBYTE_USER" ],
- "type": "string",
- "title": "Username",
- "order": 1
- },
- "password": {
- "description": "The password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "title": "Password",
- "order": 2
- }
- }
- } ],
- "order": 0
- },
- "host": {
- "description": "The host domain of the snowflake instance (must include the account, region, cloud environment, and end with snowflakecomputing.com).",
- "examples": [ "accountname.us-east-2.aws.snowflakecomputing.com" ],
- "type": "string",
- "title": "Account Name",
- "order": 1
- },
- "role": {
- "description": "The role you created for Airbyte to access Snowflake.",
- "examples": [ "AIRBYTE_ROLE" ],
- "type": "string",
- "title": "Role",
- "order": 2
- },
- "warehouse": {
- "description": "The warehouse you created for Airbyte to access data.",
- "examples": [ "AIRBYTE_WAREHOUSE" ],
- "type": "string",
- "title": "Warehouse",
- "order": 3
- },
- "database": {
- "description": "The database you created for Airbyte to access data.",
- "examples": [ "AIRBYTE_DATABASE" ],
- "type": "string",
- "title": "Database",
- "order": 4
- },
- "schema": {
- "description": "The source Snowflake schema tables. Leave empty to access tables from multiple schemas.",
- "examples": [ "AIRBYTE_SCHEMA" ],
- "type": "string",
- "title": "Schema",
- "order": 5
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 6
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "OAuth",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "properties": {
- "host": {
- "type": "string",
- "path_in_connector_config": [ "host" ]
- },
- "role": {
- "type": "string",
- "path_in_connector_config": [ "role" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- },
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "${host}" ]
- }
- }, {
- "sourceDefinitionId": "3ab1d7d0-1577-4ab9-bcc4-1ff6a4c2c9f2",
- "name": "Sonar Cloud",
- "dockerRepository": "airbyte/source-sonar-cloud",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sonar-cloud",
- "icon": "sonarcloud.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sonar-cloud",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Sonar Cloud Spec",
- "type": "object",
- "required": [ "user_token", "organization", "component_keys" ],
- "additionalProperties": true,
- "properties": {
- "user_token": {
- "title": "User Token",
- "type": "string",
- "description": "Your User Token. See here. The token is case sensitive.",
- "airbyte_secret": true
- },
- "organization": {
- "title": "Organization",
- "type": "string",
- "description": "Organization key. See here.",
- "examples": [ "airbyte" ]
- },
- "component_keys": {
- "title": "Component Keys",
- "type": "array",
- "description": "Comma-separated list of component keys.",
- "examples": [ "airbyte-ws-order", "airbyte-ws-checkout" ]
- },
- "start_date": {
- "title": "Start date",
- "type": "string",
- "description": "To retrieve issues created after the given date (inclusive).",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ],
- "format": "date"
- },
- "end_date": {
- "title": "End date",
- "type": "string",
- "description": "To retrieve issues created before the given date (inclusive).",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ],
- "format": "date"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "sonarcloud.io" ]
- }
- }, {
- "sourceDefinitionId": "62235e65-af7a-4138-9130-0bda954eb6a8",
- "name": "SpaceX API",
- "dockerRepository": "airbyte/source-spacex-api",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/spacex-api",
- "icon": "spacex.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/spacex-api",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Spacex Api Spec",
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "id": {
- "title": "Unique ID for specific source target",
- "type": "string",
- "desciption": "Optional, For a specific ID"
- },
- "options": {
- "title": "Configuration options for endpoints",
- "type": "string",
- "desciption": "Optional, Possible values for an endpoint. Example values for launches-latest, upcoming, past"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "77225a51-cd15-4a13-af02-65816bd0ecf4",
- "name": "Square",
- "dockerRepository": "airbyte/source-square",
- "dockerImageTag": "0.2.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/square",
- "icon": "square.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/square",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Square Spec",
- "type": "object",
- "required": [ "is_sandbox" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authentication",
- "description": "Choose how to authenticate to Square.",
- "type": "object",
- "order": 0,
- "oneOf": [ {
- "title": "Oauth authentication",
- "type": "object",
- "required": [ "auth_type", "client_id", "client_secret", "refresh_token" ],
- "properties": {
- "credentials_title": {
- "type": "string",
- "const": "OAuth Credentials",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Square-issued ID of your application",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Square-issued application secret for your application",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "A refresh token generated using the above client ID and secret",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "API key",
- "type": "object",
- "required": [ "auth_type", "api_key" ],
- "properties": {
- "credentials_title": {
- "type": "string",
- "const": "API Key",
- "order": 0
- },
- "api_key": {
- "type": "string",
- "title": "API key token",
- "description": "The API key for a Square application",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "is_sandbox": {
- "type": "boolean",
- "description": "Determines whether to use the sandbox or production environment.",
- "title": "Sandbox",
- "default": false,
- "order": 1
- },
- "start_date": {
- "type": "string",
- "description": "UTC date in the format YYYY-MM-DD. Any data before this date will not be replicated. If not set, all data will be replicated.",
- "title": "Start Date",
- "default": "2021-01-01",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": "2,",
- "format": "date"
- },
- "include_deleted_objects": {
- "type": "boolean",
- "description": "In some streams there is an option to include deleted objects (Items, Categories, Discounts, Taxes)",
- "title": "Include Deleted Objects",
- "default": false,
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials", "0" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- },
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "Oauth",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "connect.squareupsandbox.com", "connect.squareup.com" ]
- }
- }, {
- "sourceDefinitionId": "7a4327c4-315a-11ec-8d3d-0242ac130003",
- "name": "Strava",
- "dockerRepository": "airbyte/source-strava",
- "dockerImageTag": "0.1.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/strava",
- "icon": "strava.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/strava",
- "connectionSpecification": {
- "$schema": "https://json-schema.org/draft-07/schema#",
- "title": "Strava Spec",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token", "athlete_id", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "Client",
- "enum": [ "Client" ],
- "default": "Client"
- },
- "client_id": {
- "type": "string",
- "description": "The Client ID of your Strava developer application.",
- "title": "Client ID",
- "pattern": "^[0-9_\\-]+$",
- "examples": [ "12345" ],
- "order": 0
- },
- "client_secret": {
- "type": "string",
- "description": "The Client Secret of your Strava developer application.",
- "title": "Client Secret",
- "pattern": "^[0-9a-fA-F]+$",
- "examples": [ "fc6243f283e51f6ca989aab298b17da125496f50" ],
- "airbyte_secret": true,
- "order": 1
- },
- "refresh_token": {
- "type": "string",
- "description": "The Refresh Token with the activity: read_all permissions.",
- "title": "Refresh Token",
- "pattern": "^[0-9a-fA-F]+$",
- "examples": [ "fc6243f283e51f6ca989aab298b17da125496f50" ],
- "airbyte_secret": true,
- "order": 2
- },
- "athlete_id": {
- "type": "integer",
- "description": "The Athlete ID of your Strava developer application.",
- "title": "Athlete ID",
- "pattern": "^[0-9_\\-]+$",
- "examples": [ "17831421" ],
- "order": 3
- },
- "start_date": {
- "type": "string",
- "description": "UTC date and time. Any data before this date will not be replicated.",
- "title": "Start Date",
- "examples": [ "2021-03-01T00:00:00Z" ],
- "format": "date-time",
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "auth_type" ],
- "predicate_value": "Client",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "strava.com" ]
- }
- }, {
- "sourceDefinitionId": "74cbd708-46c3-4512-9c93-abd5c3e9a94d",
- "name": "Statuspage",
- "dockerRepository": "airbyte/source-statuspage",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/statuspage",
- "icon": "statuspage.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/statuspage",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Statuspage Spec",
- "type": "object",
- "required": [ "api_key" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Your API Key. See here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "e094cb9a-26de-4645-8761-65c0c425d1de",
- "name": "Stripe",
- "dockerRepository": "airbyte/source-stripe",
- "dockerImageTag": "3.4.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/stripe",
- "icon": "stripe.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/stripe",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Stripe Source Spec",
- "type": "object",
- "required": [ "client_secret", "account_id", "start_date" ],
- "properties": {
- "account_id": {
- "type": "string",
- "title": "Account ID",
- "description": "Your Stripe account ID (starts with 'acct_', find yours here).",
- "order": 0
- },
- "client_secret": {
- "type": "string",
- "title": "Secret Key",
- "description": "Stripe API key (usually starts with 'sk_live_'; find yours here).",
- "airbyte_secret": true,
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Replication start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Only data generated after this date will be replicated.",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "format": "date-time",
- "order": 2
- },
- "lookback_window_days": {
- "type": "integer",
- "title": "Lookback Window in days",
- "default": 0,
- "minimum": 0,
- "description": "When set, the connector will always re-export data from the past N days, where N is the value set here. This is useful if your data is frequently updated after creation. More info here",
- "order": 3
- },
- "slice_range": {
- "type": "integer",
- "title": "Data request time increment in days",
- "default": 365,
- "minimum": 1,
- "examples": [ 1, 3, 10, 30, 180, 360 ],
- "description": "The time increment used by the connector when requesting data from the Stripe API. The bigger the value is, the less requests will be made and faster the sync will be. On the other hand, the more seldom the state is persisted.",
- "order": 4
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.stripe.com" ]
- }
- }, {
- "sourceDefinitionId": "dd4632f4-15e0-4649-9b71-41719fb1fdee",
- "name": "SurveyCTO",
- "dockerRepository": "airbyte/source-surveycto",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/surveycto",
- "icon": "surveycto.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/surveycto",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Surveycto Spec",
- "type": "object",
- "required": [ "server_name", "username", "password", "form_id" ],
- "properties": {
- "server_name": {
- "type": "string",
- "title": "Server Name",
- "description": "The name of the SurveryCTO server",
- "order": 0
- },
- "username": {
- "type": "string",
- "title": "Username",
- "description": "Username to authenticate into the SurveyCTO server",
- "order": 1
- },
- "password": {
- "type": "string",
- "title": "Password",
- "description": "Password to authenticate into the SurveyCTO server",
- "airbyte_secret": true,
- "order": 2
- },
- "form_id": {
- "type": "array",
- "title": "Form's Id",
- "description": "Unique identifier for one of your forms",
- "order": 3
- },
- "start_date": {
- "type": "string",
- "description": "initial date for survey cto",
- "title": "Start Date",
- "examples": [ "Jan 09, 2022 00:00:00 AM" ],
- "default": "Jan 09, 2022 00:00:00 AM",
- "order": 4,
- "pattern": "^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{2}, [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} (AM|PM)$"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "badc5925-0485-42be-8caa-b34096cb71b5",
- "name": "SurveyMonkey",
- "dockerRepository": "airbyte/source-surveymonkey",
- "dockerImageTag": "0.1.16",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/surveymonkey",
- "icon": "surveymonkey.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/surveymonkey",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "SurveyMonkey Spec",
- "type": "object",
- "required": [ "start_date" ],
- "additionalProperties": true,
- "properties": {
- "origin": {
- "type": "string",
- "order": 1,
- "enum": [ "USA", "Europe", "Canada" ],
- "default": "USA",
- "title": "Origin datacenter of the SurveyMonkey account",
- "description": "Depending on the originating datacenter of the SurveyMonkey account, the API access URL may be different."
- },
- "credentials": {
- "title": "SurveyMonkey Authorization Method",
- "description": "The authorization method to use to retrieve data from SurveyMonkey",
- "type": "object",
- "required": [ "auth_method", "access_token" ],
- "order": 2,
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "oauth2.0",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of the SurveyMonkey developer application.",
- "airbyte_secret": true,
- "order": 1
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of the SurveyMonkey developer application.",
- "airbyte_secret": true,
- "order": 2
- },
- "access_token": {
- "title": "Access Token",
- "order": 3,
- "type": "string",
- "airbyte_secret": true,
- "description": "Access Token for making authenticated requests. See the docs for information on how to generate this key."
- }
- }
- },
- "start_date": {
- "title": "Start Date",
- "order": 3,
- "type": "string",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z?$",
- "examples": [ "2021-01-01T00:00:00Z" ],
- "format": "date-time"
- },
- "survey_ids": {
- "type": "array",
- "order": 4,
- "items": {
- "type": "string",
- "pattern": "^[0-9]{8,9}$"
- },
- "title": "Survey Monkey survey IDs",
- "description": "IDs of the surveys from which you'd like to replicate data. If left empty, data from all boards to which you have access will be replicated."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_method" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "origin": {
- "type": "string",
- "path_in_connector_config": [ "origin" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.surveymonkey.com" ]
- }
- }, {
- "sourceDefinitionId": "4a4d887b-0f2d-4b33-ab7f-9b01b9072804",
- "name": "SurveySparrow",
- "dockerRepository": "airbyte/source-survey-sparrow",
- "dockerImageTag": "0.2.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/survey-sparrow",
- "icon": "surveysparrow.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/surveysparrow",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Survey Sparrow Spec",
- "type": "object",
- "required": [ "access_token" ],
- "additionalProperties": true,
- "properties": {
- "access_token": {
- "type": "string",
- "description": "Your access token. See here. The key is case sensitive.",
- "airbyte_secret": true,
- "order": 0
- },
- "survey_id": {
- "type": "array",
- "description": "A List of your survey ids for survey-specific stream",
- "order": 2
- },
- "region": {
- "title": "Base URL",
- "type": "object",
- "description": "Is your account location is EU based? If yes, the base url to retrieve data will be different.",
- "oneOf": [ {
- "title": "EU-based account",
- "type": "object",
- "properties": {
- "url_base": {
- "type": "string",
- "const": "https://eu-api.surveysparrow.com/v3"
- }
- }
- }, {
- "title": "Global account",
- "type": "object",
- "properties": {
- "url_base": {
- "type": "string",
- "const": "https://api.surveysparrow.com/v3"
- }
- }
- } ],
- "default": {
- "title": "Global account",
- "type": "object",
- "properties": {
- "url_base": {
- "type": "string",
- "const": "https://api.surveysparrow.com/v3"
- }
- }
- },
- "order": 1
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "f00d2cf4-3c28-499a-ba93-b50b6f26359e",
- "name": "TalkDesk Explore",
- "dockerRepository": "airbyte/source-talkdesk-explore",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/talkdesk-explore",
- "icon": "talkdesk-explore.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Talkdesk Explore API Spec",
- "type": "object",
- "required": [ "start_date", "auth_url", "api_key" ],
- "additionalProperties": false,
- "properties": {
- "start_date": {
- "type": "string",
- "title": "START DATE",
- "description": "The date from which you'd like to replicate data for Talkdesk Explore API, in the format YYYY-MM-DDT00:00:00. All data generated after this date will be replicated.",
- "examples": [ "2020-10-15T00:00:00" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
- "order": 0
- },
- "timezone": {
- "type": "string",
- "title": "TIMEZONE",
- "description": "Timezone to use when generating reports. Only IANA timezones are supported (https://nodatime.org/TimeZones)",
- "examples": [ "Europe/London", "America/Los_Angeles" ],
- "default": "UTC",
- "order": 1
- },
- "auth_url": {
- "title": "AUTH URL",
- "type": "string",
- "description": "Talkdesk Auth URL. Only 'client_credentials' auth type supported at the moment.",
- "examples": [ "https://xxxxxx.talkdeskid.com/oauth/token?grant_type=client_credentials" ],
- "order": 2
- },
- "api_key": {
- "title": "API KEY",
- "type": "string",
- "description": "Talkdesk API key.",
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d1aa448b-7c54-498e-ad95-263cbebcd2db",
- "name": "Tempo",
- "dockerRepository": "airbyte/source-tempo",
- "dockerImageTag": "0.3.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tempo",
- "icon": "tempo.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Tempo Spec",
- "type": "object",
- "required": [ "api_token" ],
- "properties": {
- "api_token": {
- "type": "string",
- "title": "API token",
- "description": "Tempo API Token. Go to Tempo>Settings, scroll down to Data Access and select API integration.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.tempo.io" ]
- }
- }, {
- "sourceDefinitionId": "aa8ba6fd-4875-d94e-fc8d-4e1e09aa2503",
- "name": "Teradata",
- "dockerRepository": "airbyte/source-teradata",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/teradata",
- "icon": "teradata.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/teradata",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Teradata Source Spec",
- "type": "object",
- "required": [ "host", "database", "username" ],
- "properties": {
- "host": {
- "title": "Host",
- "description": "Hostname of the database.",
- "type": "string",
- "order": 0
- },
- "port": {
- "title": "Port",
- "description": "Port of the database.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 3306,
- "examples": [ "3306" ],
- "order": 1
- },
- "database": {
- "title": "Database",
- "description": "Name of the database.",
- "type": "string",
- "order": 2
- },
- "username": {
- "title": "Username",
- "description": "Username to use to access the database.",
- "type": "string",
- "order": 3
- },
- "password": {
- "title": "Password",
- "description": "Password associated with the username.",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "jdbc_url_params": {
- "title": "JDBC URL params",
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3)",
- "type": "string",
- "order": 5
- },
- "replication_method": {
- "title": "Replication method",
- "description": "Replication method to use for extracting data from the database. STANDARD replication requires no setup on the DB side but will not be able to represent deletions incrementally. CDC uses the Binlog to detect inserts, updates, and deletes. This needs to be configured on the source database itself.",
- "type": "string",
- "order": 6,
- "default": "STANDARD",
- "enum": [ "STANDARD", "CDC" ]
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL. When activating SSL, please select one of the connection modes.",
- "type": "boolean",
- "default": false,
- "order": 7
- },
- "ssl_mode": {
- "title": "SSL Modes",
- "description": "SSL connection modes. \n disable - Chose this mode to disable encryption of communication between Airbyte and destination database\n allow - Chose this mode to enable encryption only when required by the destination database\n prefer - Chose this mode to allow unencrypted connection only if the destination database does not support encryption\n require - Chose this mode to always require encryption. If the destination database server does not support encryption, connection will fail\n verify-ca - Chose this mode to always require encryption and to verify that the destination database server has a valid SSL certificate\n verify-full - This is the most secure mode. Chose this mode to always require encryption and to verify the identity of the destination database server\n See more information - in the docs.",
- "type": "object",
- "order": 8,
- "oneOf": [ {
- "title": "disable",
- "additionalProperties": true,
- "description": "Disable SSL.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "disable",
- "order": 0
- }
- }
- }, {
- "title": "allow",
- "additionalProperties": true,
- "description": "Allow SSL mode.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "allow",
- "order": 0
- }
- }
- }, {
- "title": "prefer",
- "additionalProperties": true,
- "description": "Prefer SSL mode.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "prefer",
- "order": 0
- }
- }
- }, {
- "title": "require",
- "additionalProperties": true,
- "description": "Require SSL mode.",
- "required": [ "mode" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "require",
- "order": 0
- }
- }
- }, {
- "title": "verify-ca",
- "additionalProperties": true,
- "description": "Verify-ca SSL mode.",
- "required": [ "mode", "ssl_ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-ca",
- "order": 0
- },
- "ssl_ca_certificate": {
- "type": "string",
- "title": "CA certificate",
- "description": "Specifies the file name of a PEM file that contains Certificate Authority (CA) certificates for use with SSLMODE=verify-ca.\n See more information - in the docs.",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- }
- }
- }, {
- "title": "verify-full",
- "additionalProperties": true,
- "description": "Verify-full SSL mode.",
- "required": [ "mode", "ssl_ca_certificate" ],
- "properties": {
- "mode": {
- "type": "string",
- "const": "verify-full",
- "order": 0
- },
- "ssl_ca_certificate": {
- "type": "string",
- "title": "CA certificate",
- "description": "Specifies the file name of a PEM file that contains Certificate Authority (CA) certificates for use with SSLMODE=verify-full.\n See more information - in the docs.",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "${host}" ]
- }
- }, {
- "sourceDefinitionId": "0dad1a35-ccf8-4d03-b73e-6788c00b13ae",
- "name": "TiDB",
- "dockerRepository": "airbyte/source-tidb",
- "dockerImageTag": "0.2.4",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tidb",
- "icon": "tidb.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tidb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "TiDB Source Spec",
- "type": "object",
- "required": [ "host", "port", "database", "username" ],
- "properties": {
- "host": {
- "description": "Hostname of the database.",
- "title": "Host",
- "type": "string",
- "order": 0
- },
- "port": {
- "description": "Port of the database.",
- "title": "Port",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 4000,
- "examples": [ "4000" ],
- "order": 1
- },
- "database": {
- "description": "Name of the database.",
- "title": "Database",
- "type": "string",
- "order": 2
- },
- "username": {
- "description": "Username to use to access the database.",
- "title": "Username",
- "type": "string",
- "order": 3
- },
- "password": {
- "description": "Password associated with the username.",
- "title": "Password",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- },
- "jdbc_url_params": {
- "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3)",
- "title": "JDBC URL Params",
- "type": "string",
- "order": 5
- },
- "ssl": {
- "title": "SSL Connection",
- "description": "Encrypt data using SSL.",
- "type": "boolean",
- "default": false,
- "order": 6
- },
- "tunnel_method": {
- "type": "object",
- "title": "SSH Tunnel Method",
- "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
- "oneOf": [ {
- "title": "No Tunnel",
- "required": [ "tunnel_method" ],
- "properties": {
- "tunnel_method": {
- "description": "No ssh tunnel needed to connect to database",
- "type": "string",
- "const": "NO_TUNNEL",
- "order": 0
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "ssh_key" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host.",
- "type": "string",
- "order": 3
- },
- "ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 4
- }
- }
- }, {
- "title": "Password Authentication",
- "required": [ "tunnel_method", "tunnel_host", "tunnel_port", "tunnel_user", "tunnel_user_password" ],
- "properties": {
- "tunnel_method": {
- "description": "Connect through a jump server tunnel host using username and password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "tunnel_host": {
- "title": "SSH Tunnel Jump Server Host",
- "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
- "type": "string",
- "order": 1
- },
- "tunnel_port": {
- "title": "SSH Connection Port",
- "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
- "type": "integer",
- "minimum": 0,
- "maximum": 65536,
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "tunnel_user": {
- "title": "SSH Login Username",
- "description": "OS-level username for logging into the jump server host",
- "type": "string",
- "order": 3
- },
- "tunnel_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 4
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha",
- "allowedHosts": {
- "hosts": [ "${host}", "${tunnel_method.tunnel_host}" ]
- }
- }, {
- "sourceDefinitionId": "4bfac00d-ce15-44ff-95b9-9e3c3e8fbd35",
- "name": "TikTok Marketing",
- "dockerRepository": "airbyte/source-tiktok-marketing",
- "dockerImageTag": "3.0.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tiktok-marketing",
- "icon": "tiktok.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tiktok-marketing",
- "changelogUrl": "https://docs.airbyte.com/integrations/sources/tiktok-marketing",
- "connectionSpecification": {
- "title": "TikTok Marketing Source Spec",
- "type": "object",
- "properties": {
- "credentials": {
- "title": "Authentication Method",
- "description": "Authentication method",
- "default": { },
- "order": 0,
- "type": "object",
- "oneOf": [ {
- "title": "OAuth2.0",
- "type": "object",
- "properties": {
- "auth_type": {
- "title": "Auth Type",
- "const": "oauth2.0",
- "order": 0,
- "type": "string"
- },
- "app_id": {
- "title": "App ID",
- "description": "The Developer Application App ID.",
- "airbyte_secret": true,
- "type": "string"
- },
- "secret": {
- "title": "Secret",
- "description": "The Developer Application Secret.",
- "airbyte_secret": true,
- "type": "string"
- },
- "access_token": {
- "title": "Access Token",
- "description": "Long-term Authorized Access Token.",
- "airbyte_secret": true,
- "type": "string"
- },
- "advertiser_id": {
- "title": "Advertiser ID",
- "description": "The Advertiser ID to filter reports and streams. Let this empty to retrieve all.",
- "type": "string"
- }
- },
- "required": [ "app_id", "secret", "access_token" ]
- }, {
- "title": "Sandbox Access Token",
- "type": "object",
- "properties": {
- "auth_type": {
- "title": "Auth Type",
- "const": "sandbox_access_token",
- "order": 0,
- "type": "string"
- },
- "advertiser_id": {
- "title": "Advertiser ID",
- "description": "The Advertiser ID which generated for the developer's Sandbox application.",
- "type": "string"
- },
- "access_token": {
- "title": "Access Token",
- "description": "The long-term authorized access token.",
- "airbyte_secret": true,
- "type": "string"
- }
- },
- "required": [ "advertiser_id", "access_token" ]
- } ]
- },
- "start_date": {
- "title": "Replication Start Date",
- "description": "The Start Date in format: YYYY-MM-DD. Any data before this date will not be replicated. If this parameter is not set, all data will be replicated.",
- "default": "2016-09-01",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 1,
- "type": "string",
- "format": "date"
- },
- "end_date": {
- "title": "End Date",
- "description": "The date until which you'd like to replicate data for all incremental streams, in the format YYYY-MM-DD. All data generated between start_date and this date will be replicated. Not setting this option will result in always syncing the data till the current date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "order": 2,
- "type": "string",
- "format": "date"
- },
- "attribution_window": {
- "title": "Attribution Window",
- "description": "The attribution window in days.",
- "default": 0,
- "order": 3,
- "type": "integer"
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "overwrite", "append", "append_dedup" ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "title": "CompleteOauthOutputSpecification",
- "type": "object",
- "properties": {
- "access_token": {
- "title": "Access Token",
- "path_in_connector_config": [ "credentials", "access_token" ],
- "type": "string"
- }
- },
- "required": [ "access_token" ]
- },
- "complete_oauth_server_input_specification": {
- "title": "CompleteOauthServerInputSpecification",
- "type": "object",
- "properties": {
- "app_id": {
- "title": "App Id",
- "type": "string"
- },
- "secret": {
- "title": "Secret",
- "type": "string"
- }
- },
- "required": [ "app_id", "secret" ]
- },
- "complete_oauth_server_output_specification": {
- "title": "CompleteOauthServerOutputSpecification",
- "type": "object",
- "properties": {
- "app_id": {
- "title": "App Id",
- "path_in_connector_config": [ "credentials", "app_id" ],
- "type": "string"
- },
- "secret": {
- "title": "Secret",
- "path_in_connector_config": [ "credentials", "secret" ],
- "type": "string"
- }
- },
- "required": [ "app_id", "secret" ]
- }
- }
- },
- "additionalProperties": true
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "sandbox-ads.tiktok.com", "business-api.tiktok.com" ]
- }
- }, {
- "sourceDefinitionId": "bc617b5f-1b9e-4a2d-bebe-782fd454a771",
- "name": "Timely",
- "dockerRepository": "airbyte/source-timely",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/timely",
- "icon": "timely.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Timely Integration Spec",
- "type": "object",
- "required": [ "account_id", "start_date", "bearer_token" ],
- "additionalProperties": false,
- "properties": {
- "account_id": {
- "title": "account_id",
- "type": "string",
- "description": "Timely account id"
- },
- "start_date": {
- "title": "startDate",
- "type": "string",
- "description": "start date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "example": "2022-05-06"
- },
- "bearer_token": {
- "title": "Bearer token",
- "type": "string",
- "description": "Timely bearer token"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6240848f-f795-45eb-8f5e-c7542822fc03",
- "name": "TMDb",
- "dockerRepository": "airbyte/source-tmdb",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tmdb",
- "icon": "tmdb.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tmdb",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Tmdb Spec",
- "type": "object",
- "required": [ "api_key", "movie_id", "query", "language" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "Unique key for establishing connection",
- "type": "string",
- "description": "API Key from tmdb account",
- "airbyte_secret": true
- },
- "movie_id": {
- "title": "Movie ID for targeting movies",
- "type": "string",
- "description": "Target movie ID, Mandate for movie streams (Example is 550)",
- "examples": [ 550, 560 ]
- },
- "query": {
- "title": "Query for search streams",
- "type": "string",
- "description": "Target movie ID, Mandate for search streams",
- "examples": [ "Marvel", "DC" ]
- },
- "language": {
- "title": "Language for filtering",
- "type": "string",
- "description": "Language expressed in ISO 639-1 scheme, Mandate for required streams (Example en-US)",
- "examples": [ "en-US", "en-UK" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "7d272065-c316-4c04-a433-cd4ee143f83e",
- "name": "Todoist",
- "dockerRepository": "airbyte/source-todoist",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/todoist",
- "icon": "todoist.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/todoist",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Todoist Spec",
- "type": "object",
- "required": [ "token" ],
- "properties": {
- "token": {
- "type": "string",
- "description": "Your API Token. See here. The token is case sensitive.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "7e7c844f-2300-4342-b7d3-6dd7992593cd",
- "name": "Toggl",
- "dockerRepository": "airbyte/source-toggl",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/toggl",
- "icon": "toggl.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/toggl",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Toggl Spec",
- "type": "object",
- "required": [ "api_token", "organization_id", "workspace_id", "start_date", "end_date" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "title": "API token",
- "type": "string",
- "description": "Your API Token. See here. The token is case sensitive.",
- "airbyte_secret": true
- },
- "organization_id": {
- "title": "Organization ID",
- "type": "integer",
- "description": "Your organization id. See here."
- },
- "workspace_id": {
- "title": "Workspace ID",
- "type": "integer",
- "description": "Your workspace id. See here."
- },
- "start_date": {
- "title": "Start date",
- "type": "string",
- "description": "To retrieve time entries created after the given date (inclusive).",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ]
- },
- "end_date": {
- "title": "End date",
- "type": "string",
- "description": "To retrieve time entries created before the given date (inclusive).",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d42bd69f-6bf0-4d0b-9209-16231af07a92",
- "name": "The Guardian API",
- "dockerRepository": "airbyte/source-the-guardian-api",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/the-guardian-api",
- "icon": "theguardian.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/the-guardian-api",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "The Guardian Api Spec",
- "type": "object",
- "required": [ "api_key", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Your API Key. See here. The key is case sensitive.",
- "airbyte_secret": true
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "Use this to set the minimum date (YYYY-MM-DD) of the results. Results older than the start_date will not be shown.",
- "pattern": "^([1-9][0-9]{3})\\-(0?[1-9]|1[012])\\-(0?[1-9]|[12][0-9]|3[01])$",
- "examples": [ "YYYY-MM-DD" ]
- },
- "query": {
- "title": "Query",
- "type": "string",
- "description": "(Optional) The query (q) parameter filters the results to only those that include that search term. The q parameter supports AND, OR and NOT operators.",
- "examples": [ "environment AND NOT water", "environment AND political", "amusement park", "political" ]
- },
- "tag": {
- "title": "Tag",
- "type": "string",
- "description": "(Optional) A tag is a piece of data that is used by The Guardian to categorise content. Use this parameter to filter results by showing only the ones matching the entered tag. See here for a list of all tags, and here for the tags endpoint documentation.",
- "examples": [ "environment/recycling", "environment/plasticbags", "environment/energyefficiency" ]
- },
- "section": {
- "title": "Section",
- "type": "string",
- "description": "(Optional) Use this to filter the results by a particular section. See here for a list of all sections, and here for the sections endpoint documentation.",
- "examples": [ "media", "technology", "housing-network" ]
- },
- "end_date": {
- "title": "End Date",
- "type": "string",
- "description": "(Optional) Use this to set the maximum date (YYYY-MM-DD) of the results. Results newer than the end_date will not be shown. Default is set to the current date (today) for incremental syncs.",
- "pattern": "^([1-9][0-9]{3})\\-(0?[1-9]|1[012])\\-(0?[1-9]|[12][0-9]|3[01])$",
- "examples": [ "YYYY-MM-DD" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "f9b6c538-ee12-42fe-8d4b-0c10f5955417",
- "name": "TPLcentral",
- "dockerRepository": "airbyte/source-tplcentral",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tplcentral",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tplcentral",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Tplcentral Spec",
- "type": "object",
- "required": [ "url_base", "client_id", "client_secret" ],
- "additionalProperties": false,
- "properties": {
- "url_base": {
- "title": "URL base",
- "type": "string",
- "format": "uri",
- "default": "https://secure-wms.com/",
- "pattern": "^https://"
- },
- "client_id": {
- "title": "Client ID",
- "type": "string"
- },
- "client_secret": {
- "title": "Client secret",
- "type": "string",
- "airbyte_secret": true
- },
- "user_login_id": {
- "title": "User login ID",
- "description": "User login ID and/or name is required",
- "type": "integer"
- },
- "user_login": {
- "title": "User login name",
- "description": "User login ID and/or name is required",
- "type": "string"
- },
- "tpl_key": {
- "title": "3PL GUID",
- "type": "string"
- },
- "customer_id": {
- "title": "Customer ID",
- "type": "integer"
- },
- "facility_id": {
- "title": "Facility ID",
- "type": "integer"
- },
- "start_date": {
- "title": "Start date",
- "description": "Date and time together in RFC 3339 format, for example, 2018-11-13T20:20:39+00:00.",
- "type": "string",
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "8da67652-004c-11ec-9a03-0242ac130003",
- "name": "Trello",
- "dockerRepository": "airbyte/source-trello",
- "dockerImageTag": "0.3.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/trello",
- "icon": "trello.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/trello",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Trello Spec",
- "type": "object",
- "required": [ "key", "token", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "key": {
- "type": "string",
- "title": "API key",
- "description": "Trello API key. See the docs for instructions on how to generate it.",
- "airbyte_secret": true,
- "order": 0
- },
- "token": {
- "type": "string",
- "title": "API token",
- "description": "Trello API token. See the docs for instructions on how to generate it.",
- "airbyte_secret": true,
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": [ "2021-03-01T00:00:00Z" ],
- "format": "date-time",
- "order": 2
- },
- "board_ids": {
- "type": "array",
- "items": {
- "type": "string",
- "pattern": "^[0-9a-fA-F]{24}$"
- },
- "title": "Trello Board IDs",
- "description": "IDs of the boards to replicate data from. If left empty, data from all boards to which you have access will be replicated.",
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ ],
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "token": {
- "type": "string",
- "path_in_connector_config": [ "token" ]
- },
- "key": {
- "type": "string",
- "path_in_connector_config": [ "key" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.trello.com" ]
- }
- }, {
- "sourceDefinitionId": "d7e23ea6-d741-4314-9209-a33c91a2e945",
- "name": "TrustPilot",
- "dockerRepository": "airbyte/source-trustpilot",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/trustpilot",
- "icon": "trustpilot.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Trustpilot Spec",
- "type": "object",
- "required": [ "credentials", "business_units", "start_date" ],
- "properties": {
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "order": 0,
- "oneOf": [ {
- "type": "object",
- "title": "OAuth 2.0",
- "required": [ "client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "oauth2.0"
- },
- "client_id": {
- "type": "string",
- "title": "API key",
- "description": "The API key of the Trustpilot API application. (represents the OAuth Client ID)",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Secret",
- "description": "The Secret of the Trustpilot API application. (represents the OAuth Client Secret)",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true
- },
- "token_expiry_date": {
- "type": "string",
- "title": "Token expiry date time",
- "description": "The date-time when the access token should be refreshed.",
- "format": "date-time"
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh token",
- "description": "The key to refresh the expired access_token.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "API Key",
- "description": "The API key authentication method gives you access to only the streams which are part of the Public API. When you want to get streams available via the Consumer API (e.g. the private reviews) you need to use authentication method OAuth 2.0.",
- "required": [ "client_id" ],
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "apikey"
- },
- "client_id": {
- "type": "string",
- "title": "API key",
- "description": "The API key of the Trustpilot API application.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "business_units": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "title": "Business Unit names",
- "description": "The names of business units which shall be synchronized. Some streams e.g. configured_business_units or private_reviews use this configuration.",
- "examples": [ "mydomain.com", "www.mydomain.com" ]
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "For streams with sync. method incremental the start date time to be used",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "%Y-%m-%dT%H:%M:%S" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "bd14b08f-9f43-400f-b2b6-7248b5c72561",
- "name": "TVMaze Schedule",
- "dockerRepository": "airbyte/source-tvmaze-schedule",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tvmaze-schedule",
- "icon": "tvmazeschedule.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tvmaze-schedule",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "TVMaze Schedule Spec",
- "type": "object",
- "required": [ "start_date", "domestic_schedule_country_code" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "description": "Start date for TV schedule retrieval. May be in the future.",
- "order": 0,
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
- },
- "end_date": {
- "type": "string",
- "description": "End date for TV schedule retrieval. May be in the future. Optional.\n",
- "order": 1,
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
- },
- "domestic_schedule_country_code": {
- "type": "string",
- "description": "Country code for domestic TV schedule retrieval.",
- "examples": [ "US", "GB" ]
- },
- "web_schedule_country_code": {
- "type": "string",
- "description": "ISO 3166-1 country code for web TV schedule retrieval. Leave blank for\nall countries plus global web channels (e.g. Netflix). Alternatively,\nset to 'global' for just global web channels.\n",
- "examples": [ "US", "GB", "global" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "b9dc6155-672e-42ea-b10d-9f1f1fb95ab1",
- "name": "Twilio",
- "dockerRepository": "airbyte/source-twilio",
- "dockerImageTag": "0.5.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/twilio",
- "icon": "twilio.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/twilio",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Twilio Spec",
- "type": "object",
- "required": [ "account_sid", "auth_token", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "account_sid": {
- "title": "Account ID",
- "description": "Twilio account SID",
- "airbyte_secret": true,
- "type": "string",
- "order": 1
- },
- "auth_token": {
- "title": "Auth Token",
- "description": "Twilio Auth Token.",
- "airbyte_secret": true,
- "type": "string",
- "order": 2
- },
- "start_date": {
- "title": "Replication Start Date",
- "description": "UTC date and time in the format 2020-10-01T00:00:00Z. Any data before this date will not be replicated.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2020-10-01T00:00:00Z" ],
- "type": "string",
- "order": 3,
- "format": "date-time"
- },
- "lookback_window": {
- "title": "Lookback window",
- "description": "How far into the past to look for records. (in minutes)",
- "examples": [ 60 ],
- "default": 0,
- "minimum": 0,
- "maximum": 576000,
- "type": "integer",
- "order": 4
- }
- }
- },
- "supportsIncremental": true,
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ "append" ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "api.twilio.com", "monitor.twilio.com" ]
- }
- }, {
- "sourceDefinitionId": "2446953b-b794-429b-a9b3-c821ba992a48",
- "name": "Twilio Taskrouter",
- "dockerRepository": "airbyte/source-twilio-taskrouter",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/twilio-taskrouter",
- "icon": "twilio.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/twilio-taskrouter",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Twilio Taskrouter Spec",
- "type": "object",
- "required": [ "account_sid", "auth_token" ],
- "additionalProperties": true,
- "properties": {
- "account_sid": {
- "title": "Account SID",
- "type": "string",
- "description": "Twilio Account ID",
- "airbyte_secret": true
- },
- "auth_token": {
- "type": "string",
- "description": "Twilio Auth Token",
- "airbyte_secret": true,
- "title": "Auth Token"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "d7fd4f40-5e5a-4b8b-918f-a73077f8c131",
- "name": "Twitter",
- "dockerRepository": "airbyte/source-twitter",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/twitter",
- "icon": "twitter.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/twitter",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Twitter Spec",
- "type": "object",
- "required": [ "api_key", "query" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "Access Token",
- "description": "App only Bearer Token. See the docs for more information on how to obtain this token.",
- "airbyte_secret": true,
- "order": 0
- },
- "query": {
- "type": "string",
- "title": "Search Query",
- "description": "Query for matching Tweets. You can learn how to build this query by reading build a query guide .",
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The start date for retrieving tweets cannot be more than 7 days in the past.",
- "format": "date-time",
- "order": 2
- },
- "end_date": {
- "type": "string",
- "title": "End Date",
- "description": "The end date for retrieving tweets must be a minimum of 10 seconds prior to the request time.",
- "format": "date-time",
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.twitter.com" ]
- }
- }, {
- "sourceDefinitionId": "3c0c3cd1-b3e0-464a-9090-d3ceb5f92346",
- "name": "Tyntec SMS",
- "dockerRepository": "airbyte/source-tyntec-sms",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tyntec-sms",
- "icon": "tyntec.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/tyntec-sms",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Tyntec Sms Spec",
- "type": "object",
- "required": [ "api_key", "to", "from" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "Tyntec API Key",
- "description": "Your Tyntec API Key. See here",
- "order": 0,
- "airbyte_secret": true
- },
- "to": {
- "type": "string",
- "title": "SMS Message Recipient Phone",
- "description": "The phone number of the SMS message recipient (international).",
- "order": 1
- },
- "from": {
- "type": "string",
- "title": "SMS Message Sender Phone",
- "description": "The phone number of the SMS message sender (international).",
- "order": 2
- },
- "message": {
- "type": "string",
- "title": "SMS Message Body",
- "description": "The content of the SMS message to be sent.",
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "e7eff203-90bf-43e5-a240-19ea3056c474",
- "name": "Typeform",
- "dockerRepository": "airbyte/source-typeform",
- "dockerImageTag": "0.1.12",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/typeform",
- "icon": "typeform.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/typeform",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Typeform Spec",
- "type": "object",
- "required": [ "token", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "token": {
- "type": "string",
- "description": "The API Token for a Typeform account.",
- "title": "API Token",
- "airbyte_secret": true,
- "order": 0
- },
- "start_date": {
- "type": "string",
- "description": "UTC date and time in the format: YYYY-MM-DDTHH:mm:ss[Z]. Any data before this date will not be replicated.",
- "title": "Start Date",
- "examples": [ "2020-01-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "order": 1,
- "format": "date-time"
- },
- "form_ids": {
- "title": "Form IDs to replicate",
- "description": "When this parameter is set, the connector will replicate data only from the input forms. Otherwise, all forms in your Typeform account will be replicated. You can find form IDs in your form URLs. For example, in the URL \"https://mysite.typeform.com/to/u6nXL7\" the form_id is u6nXL7. You can find form URLs on Share panel",
- "type": "array",
- "items": {
- "type": "string"
- },
- "uniqueItems": true,
- "order": 2
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.typeform.com" ]
- }
- }, {
- "sourceDefinitionId": "f77914a1-442b-4195-9355-8810a1f4ed3f",
- "name": "Unleash",
- "dockerRepository": "airbyte/source-unleash",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/unleash",
- "icon": "unleash.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/unleash",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Unleash Source Spec",
- "type": "object",
- "required": [ "api_token", "api_url" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "title": "API Token Client",
- "type": "string",
- "description": "Your API Token (Server-Side SDK [Client]). See here. The token is case sensitive.",
- "airbyte_secret": true,
- "examples": [ "project:environment.be44368985f7fb3237c584ef86f3d6bdada42ddbd63a019d26955178", "*:environment.be44368985f7fb3237c584ef86f3d6bdada42ddbd63a019d26955178", "be44368985f7fb3237c584ef86f3d6bdada42ddbd63a019d26955178" ]
- },
- "api_url": {
- "title": "API URL",
- "type": "string",
- "description": "Your API URL. No trailing slash. ex: http://unleash.host.com/api"
- },
- "project_name": {
- "title": "Project Name",
- "type": "string",
- "description": "Use this if you want to filter the API call for only one given project (can be used in addition to the \"Feature Name Prefix\" field). See here"
- },
- "nameprefix": {
- "title": "Feature Name Prefix",
- "type": "string",
- "description": "Use this if you want to filter the API call for only one given project (can be used in addition to the \"Feature Name Prefix\" field). See here"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "c4cfaeda-c757-489a-8aba-859fb08b6970",
- "name": "US Census",
- "dockerRepository": "airbyte/source-us-census",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/us-census",
- "icon": "uscensus.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/us-census",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "https://api.census.gov/ Source Spec",
- "type": "object",
- "required": [ "api_key", "query_path" ],
- "additionalProperties": false,
- "properties": {
- "query_params": {
- "type": "string",
- "description": "The query parameters portion of the GET request, without the api key",
- "pattern": "^\\w+=[\\w,:*]+(&(?!key)\\w+=[\\w,:*]+)*$",
- "examples": [ "get=NAME,NAICS2017_LABEL,LFO_LABEL,EMPSZES_LABEL,ESTAB,PAYANN,PAYQTR1,EMP&for=us:*&NAICS2017=72&LFO=001&EMPSZES=001", "get=MOVEDIN,GEOID1,GEOID2,MOVEDOUT,FULL1_NAME,FULL2_NAME,MOVEDNET&for=county:*" ]
- },
- "query_path": {
- "type": "string",
- "description": "The path portion of the GET request",
- "pattern": "^data(\\/[\\w\\d]+)+$",
- "examples": [ "data/2019/cbp", "data/2018/acs", "data/timeseries/healthins/sahie" ]
- },
- "api_key": {
- "type": "string",
- "description": "Your API Key. Get your key here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "afa734e4-3571-11ec-991a-1e0031268139",
- "name": "YouTube Analytics",
- "dockerRepository": "airbyte/source-youtube-analytics",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/youtube-analytics",
- "icon": "youtube-analytics.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/youtube-analytics",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "YouTube Analytics Spec",
- "type": "object",
- "required": [ "credentials" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "title": "Authenticate via OAuth 2.0",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token" ],
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "title": "Client ID",
- "type": "string",
- "description": "The Client ID of your developer application",
- "airbyte_secret": true
- },
- "client_secret": {
- "title": "Client Secret",
- "type": "string",
- "description": "The client secret of your developer application",
- "airbyte_secret": true
- },
- "refresh_token": {
- "title": "Refresh Token",
- "type": "string",
- "description": "A refresh token generated using the above client ID and secret",
- "airbyte_secret": true
- }
- }
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "authSpecification": {
- "auth_type": "oauth2.0",
- "oauth2Specification": {
- "rootObject": [ "credentials" ],
- "oauthFlowInitParameters": [ [ "client_id" ], [ "client_secret" ] ],
- "oauthFlowOutputParameters": [ [ "refresh_token" ] ]
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "*.googleapis.com" ]
- }
- }, {
- "sourceDefinitionId": "28ce1fbd-1e15-453f-aa9f-da6c4d928e92",
- "name": "Vantage",
- "dockerRepository": "airbyte/source-vantage",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/vantage",
- "icon": "vantage.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/vantage",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Vantage Spec",
- "type": "object",
- "required": [ "access_token" ],
- "additionalProperties": true,
- "properties": {
- "access_token": {
- "title": "API Access Token",
- "type": "string",
- "description": "Your API Access token. See here.",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "7e20ce3e-d820-4327-ad7a-88f3927fd97a",
- "name": "VictorOps",
- "dockerRepository": "farosai/airbyte-victorops-source",
- "dockerImageTag": "0.1.23",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/victorops",
- "icon": "victorops.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.faros.ai",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "VictorOps Spec",
- "type": "object",
- "required": [ "apiId", "apiKey" ],
- "additionalProperties": true,
- "properties": {
- "apiId": {
- "type": "string",
- "title": "VictorOps API ID",
- "airbyte_secret": true
- },
- "apiKey": {
- "type": "string",
- "title": "VictorOps API key",
- "airbyte_secret": true
- },
- "maxContentLength": {
- "type": "number",
- "title": "VictorOps Content Length",
- "description": "VictorOps API response content length limit, try increasing if 'RequestError' is encountered.",
- "default": 500000
- },
- "pageLimit": {
- "type": "number",
- "title": "VictorOps Page Limit",
- "default": 100
- },
- "currentPhase": {
- "type": "string",
- "title": "VictorOps Current Phase",
- "default": "triggered,acknowledged,resolved"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "42495935-95de-4f5c-ae08-8fac00f6b308",
- "name": "Visma E-conomic",
- "dockerRepository": "airbyte/source-visma-economic",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/visma-economic",
- "icon": "visma-e-conomic.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/visma-economic",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Visma E-conomic Spec",
- "type": "object",
- "required": [ "app_secret_token", "agreement_grant_token" ],
- "properties": {
- "app_secret_token": {
- "title": "App Secret Token",
- "type": "string",
- "description": "Identification token for app accessing data",
- "airbyte_secret": true
- },
- "agreement_grant_token": {
- "title": "Agreement Grant Token",
- "type": "string",
- "description": "Identifier for the grant issued by an agreement",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6c6d8b0c-db35-4cd1-a7de-0ca8b080f5ac",
- "name": "Vitally",
- "dockerRepository": "airbyte/source-vitally",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/vitally",
- "icon": "vitally.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/vitally",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Vitally Spec",
- "type": "object",
- "required": [ "api_key", "status" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Token",
- "description": "The API Token for a Vitally account.",
- "airbyte_secret": true
- },
- "status": {
- "type": "string",
- "title": "Status",
- "description": "Status of the Vitally accounts. One of the following values; active, churned, activeOrChurned.",
- "enum": [ "active", "churned", "activeOrChurned" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6fd1e833-dd6e-45ec-a727-ab917c5be892",
- "name": "Xero",
- "dockerRepository": "airbyte/source-xero",
- "dockerImageTag": "0.2.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/xero",
- "icon": "xero.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/xero",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Xero Spec",
- "type": "object",
- "required": [ "authentication", "tenant_id", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "authentication": {
- "type": "object",
- "title": "Authenticate via Xero (OAuth)",
- "required": [ "client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date" ],
- "properties": {
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "Enter your Xero application's Client ID"
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "Enter your Xero application's Client Secret",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "Enter your Xero application's refresh token",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Enter your Xero application's access token",
- "airbyte_secret": true
- },
- "token_expiry_date": {
- "type": "string",
- "description": "The date-time when the access token should be refreshed"
- }
- },
- "order": 0
- },
- "tenant_id": {
- "title": "Tenant ID",
- "type": "string",
- "description": "Enter your Xero organization's Tenant ID",
- "airbyte_secret": true,
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format YYYY-MM-DDTHH:mm:ssZ. Any data with created_at before this data will not be synced.",
- "examples": [ "2022-03-01T00:00:00Z" ],
- "format": "date-time",
- "order": 2
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ ],
- "oauth_config_specification": {
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "authentication", "refresh_token" ]
- },
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "authentication", "access_token" ]
- },
- "token_expiry_date": {
- "type": "string",
- "path_in_connector_config": [ "authentication", "token_expiry_date" ],
- "format": "date-time"
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "authentication", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "authentication", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.xero.com" ]
- }
- }, {
- "sourceDefinitionId": "80fddd16-17bd-4c0c-bf4a-80df7863fc9d",
- "name": "xkcd",
- "dockerRepository": "airbyte/source-xkcd",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/xkcd",
- "icon": "xkcd.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/xkcd",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Xkcd Spec",
- "type": "object",
- "properties": { }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "5db8292c-5f5a-11ed-9b6a-0242ac120002",
- "name": "Weatherstack",
- "dockerRepository": "airbyte/source-weatherstack",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/weatherstack",
- "icon": "weatherstack.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/weatherstack",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Weatherstack Spec",
- "type": "object",
- "required": [ "access_key", "query", "historical_date" ],
- "properties": {
- "is_paid_account": {
- "order": 0,
- "title": "Is Paid Account",
- "description": "Toggle if you're using a Paid subscription",
- "type": "boolean",
- "default": false
- },
- "access_key": {
- "order": 1,
- "type": "string",
- "description": "API access key used to retrieve data from the Weatherstack API.(https://weatherstack.com/product)",
- "airbyte_secret": true
- },
- "query": {
- "order": 2,
- "type": "string",
- "description": "A location to query such as city, IP, latitudeLongitude, or zipcode. Multiple locations with semicolon seperated if using a professional plan or higher. For more info- (https://weatherstack.com/documentation#query_parameter)",
- "examples": [ "New York", "London", "98101" ]
- },
- "historical_date": {
- "order": 3,
- "type": "string",
- "description": "This is required for enabling the Historical date API with format- (YYYY-MM-DD). * Note, only supported by paid accounts",
- "examples": [ "2015-01-21" ],
- "default\"": "2000-01-01",
- "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "ef580275-d9a9-48bb-af5e-db0f5855be04",
- "name": "Webflow",
- "dockerRepository": "airbyte/source-webflow",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/webflow",
- "icon": "webflow.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/webflow",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Webflow Spec",
- "type": "object",
- "required": [ "api_key", "site_id" ],
- "additionalProperties": false,
- "properties": {
- "site_id": {
- "title": "Site id",
- "type": "string",
- "description": "The id of the Webflow site you are requesting data from. See https://developers.webflow.com/#sites",
- "example": "a relatively long hex sequence",
- "order": 0
- },
- "api_key": {
- "title": "API token",
- "type": "string",
- "description": "The API token for authenticating to Webflow. See https://university.webflow.com/lesson/intro-to-the-webflow-api",
- "example": "a very long hex sequence",
- "order": 1,
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "e65f84c0-7598-458a-bfac-f770c381ff5d",
- "name": "Whisky Hunter",
- "dockerRepository": "airbyte/source-whisky-hunter",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/whisky-hunter",
- "icon": "whiskyhunter.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/whisky-hunter",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Whisky Hunter Spec",
- "type": "object",
- "additionalProperties": true,
- "properties": { }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "2a2552ca-9f78-4c1c-9eb7-4d0dc66d72df",
- "name": "WooCommerce",
- "dockerRepository": "airbyte/source-woocommerce",
- "dockerImageTag": "0.2.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/woocommerce",
- "icon": "woocommerce.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/woocommerce",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Woocommerce Spec",
- "type": "object",
- "required": [ "api_key", "api_secret", "shop", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "Customer Key",
- "description": "Customer Key for API in WooCommerce shop",
- "airbyte_secret": true,
- "order": 0
- },
- "api_secret": {
- "type": "string",
- "title": "Customer Secret",
- "description": "Customer Secret for API in WooCommerce shop",
- "airbyte_secret": true,
- "order": 1
- },
- "shop": {
- "type": "string",
- "title": "Shop Name",
- "description": "The name of the store. For https://EXAMPLE.com, the shop name is 'EXAMPLE.com'.",
- "order": 2
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date you would like to replicate data from. Format: YYYY-MM-DD",
- "examples": [ "2021-01-01" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "format": "date",
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "${domain}" ]
- }
- }, {
- "sourceDefinitionId": "ef3c99c6-9e90-43c8-9517-926cfd978517",
- "name": "Workable",
- "dockerRepository": "airbyte/source-workable",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/workable",
- "icon": "workable.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/workable",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Workable API Spec",
- "type": "object",
- "required": [ "api_key", "account_subdomain", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "title": "API Key",
- "type": "string",
- "description": "Your Workable API Key. See here.",
- "airbyte_secret": true
- },
- "account_subdomain": {
- "title": "Account Subdomain",
- "type": "string",
- "description": "Your Workable account subdomain, e.g. https://your_account_subdomain.workable.com."
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "Get data that was created since this date (format: YYYYMMDDTHHMMSSZ).",
- "pattern": "^[0-9]{8}T[0-9]{6}Z$",
- "examples": [ "20150708T115616Z", "20221115T225616Z" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "9c13f986-a13b-4988-b808-4705badf71c2",
- "name": "Wrike",
- "dockerRepository": "airbyte/source-wrike",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/wrike",
- "icon": "wrike.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Wrike Spec",
- "type": "object",
- "required": [ "access_token", "wrike_instance" ],
- "properties": {
- "access_token": {
- "type": "string",
- "title": "Permanent Access Token",
- "description": "Permanent access token. You can find documentation on how to acquire a permanent access token here",
- "airbyte_secret": true,
- "order": 0
- },
- "wrike_instance": {
- "type": "string",
- "title": "Wrike Instance (hostname)",
- "description": "Wrike's instance such as `app-us2.wrike.com`",
- "default": "app-us2.wrike.com",
- "order": 1
- },
- "start_date": {
- "type": "string",
- "title": "Start date for comments",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Only comments after this date will be replicated.",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "order": 2
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "b8c917bc-7d1b-4828-995f-6726820266d0",
- "name": "Zapier Supported Storage",
- "dockerRepository": "airbyte/source-zapier-supported-storage",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-supported-storage",
- "icon": "zapiersupportedstorage.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zapier-supported-storage",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Zapier Supported Storage Spec",
- "type": "object",
- "required": [ "secret" ],
- "additionalProperties": true,
- "properties": {
- "secret": {
- "title": "Secret Key",
- "type": "string",
- "description": "Secret key supplied by zapier",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "40d24d0f-b8f9-4fe0-9e6c-b06c0f3f45e4",
- "name": "Zendesk Chat",
- "dockerRepository": "airbyte/source-zendesk-chat",
- "dockerImageTag": "0.1.14",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-chat",
- "icon": "zendesk-chat.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-chat",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Zendesk Chat Spec",
- "type": "object",
- "required": [ "start_date" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for Zendesk Chat API, in the format YYYY-MM-DDT00:00:00Z.",
- "examples": [ "2021-02-01T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "format": "date-time"
- },
- "subdomain": {
- "type": "string",
- "title": "Subdomain",
- "description": "Required if you access Zendesk Chat from a Zendesk Support subdomain.",
- "default": ""
- },
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "credentials" ],
- "properties": {
- "credentials": {
- "type": "string",
- "const": "oauth2.0",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your OAuth application",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your OAuth application.",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Access Token for making authenticated requests.",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "Refresh Token to obtain new Access Token, when it's expired.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "Access Token",
- "required": [ "credentials", "access_token" ],
- "properties": {
- "credentials": {
- "type": "string",
- "const": "access_token",
- "order": 0
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The Access Token to make authenticated requests.",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "credentials" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "properties": {
- "subdomain": {
- "type": "string",
- "path_in_connector_config": [ "subdomain" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- },
- "refresh_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "refresh_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "zopim.com" ]
- }
- }, {
- "sourceDefinitionId": "982eaa4c-bba1-4cce-a971-06a41f700b8c",
- "name": "Zendesk Sell",
- "dockerRepository": "airbyte/source-zendesk-sell",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-sell",
- "icon": "zendesk.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-sell",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Zendesk Sell Spec",
- "type": "object",
- "required": [ "api_token" ],
- "properties": {
- "api_token": {
- "title": "API token",
- "type": "string",
- "description": "The API token for authenticating to Zendesk Sell",
- "examples": [ "f23yhd630otl94y85a8bf384958473pto95847fd006da49382716or937ruw059" ],
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "325e0640-e7b3-4e24-b823-3361008f603f",
- "name": "Zendesk Sunshine",
- "dockerRepository": "airbyte/source-zendesk-sunshine",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-sunshine",
- "icon": "zendesk-sunshine.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk_sunshine",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Zendesk Sunshine Spec",
- "type": "object",
- "required": [ "start_date", "subdomain" ],
- "additionalProperties": true,
- "properties": {
- "subdomain": {
- "title": "Subdomain",
- "type": "string",
- "description": "The subdomain for your Zendesk Account."
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "The date from which you'd like to replicate data for Zendesk Sunshine API, in the format YYYY-MM-DDT00:00:00Z.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2021-01-01T00:00:00Z" ]
- },
- "credentials": {
- "title": "Authorization Method",
- "type": "object",
- "oneOf": [ {
- "type": "object",
- "title": "OAuth2.0",
- "required": [ "auth_method", "client_id", "client_secret", "access_token" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "oauth2.0",
- "enum": [ "oauth2.0" ],
- "default": "oauth2.0",
- "order": 0
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "The Client ID of your OAuth application.",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "The Client Secret of your OAuth application.",
- "airbyte_secret": true
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "Long-term access Token for making authenticated requests.",
- "airbyte_secret": true
- }
- }
- }, {
- "type": "object",
- "title": "API Token",
- "required": [ "auth_method", "api_token", "email" ],
- "properties": {
- "auth_method": {
- "type": "string",
- "const": "api_token",
- "enum": [ "api_token" ],
- "default": "api_token",
- "order": 1
- },
- "api_token": {
- "type": "string",
- "title": "API Token",
- "description": "API Token. See the docs for information on how to generate this key.",
- "airbyte_secret": true
- },
- "email": {
- "type": "string",
- "title": "Email",
- "description": "The user email for your Zendesk account"
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_method" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "subdomain": {
- "type": "string",
- "path_in_connector_config": [ "subdomain" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "79c1aa37-dae3-42ae-b333-d1c105477715",
- "name": "Zendesk Support",
- "dockerRepository": "airbyte/source-zendesk-support",
- "dockerImageTag": "0.2.27",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-support",
- "icon": "zendesk-support.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-support",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Zendesk Support Spec",
- "type": "object",
- "required": [ "start_date", "subdomain" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "The date from which you'd like to replicate data for Zendesk Support API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "examples": [ "2020-10-15T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "format": "date-time"
- },
- "subdomain": {
- "type": "string",
- "title": "Subdomain",
- "description": "This is your Zendesk subdomain that can be found in your account URL. For example, in https://{MY_SUBDOMAIN}.zendesk.com/, where MY_SUBDOMAIN is the value of your subdomain."
- },
- "credentials": {
- "title": "Authentication",
- "type": "object",
- "description": "Zendesk service provides two authentication methods. Choose between: `OAuth2.0` or `API token`.",
- "oneOf": [ {
- "title": "OAuth2.0",
- "type": "object",
- "required": [ "access_token" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "type": "string",
- "const": "oauth2.0",
- "order": 0
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The value of the API token generated. See the docs for more information.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "API Token",
- "type": "object",
- "required": [ "email", "api_token" ],
- "additionalProperties": true,
- "properties": {
- "credentials": {
- "type": "string",
- "const": "api_token",
- "order": 0
- },
- "email": {
- "title": "Email",
- "type": "string",
- "description": "The user email for your Zendesk account."
- },
- "api_token": {
- "title": "API Token",
- "type": "string",
- "description": "The value of the API token generated. See the docs for more information.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "ignore_pagination": {
- "type": "boolean",
- "default": false,
- "description": "Makes each stream read a single page of data.",
- "title": "Should the connector read the second and further pages of data.",
- "airbyte_hidden": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "credentials" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "subdomain": {
- "type": "string",
- "path_in_connector_config": [ "subdomain" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "${subdomain}.zendesk.com", "zendesk.com" ]
- },
- "maxSecondsBetweenMessages": 10800
- }, {
- "sourceDefinitionId": "c8630570-086d-4a40-99ae-ea5b18673071",
- "name": "Zendesk Talk",
- "dockerRepository": "airbyte/source-zendesk-talk",
- "dockerImageTag": "0.1.7",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-talk",
- "icon": "zendesk-talk.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-talk",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Zendesk Talk Spec",
- "type": "object",
- "required": [ "start_date", "subdomain" ],
- "properties": {
- "subdomain": {
- "type": "string",
- "title": "Subdomain",
- "order": 0,
- "description": "This is your Zendesk subdomain that can be found in your account URL. For example, in https://{MY_SUBDOMAIN}.zendesk.com/, where MY_SUBDOMAIN is the value of your subdomain."
- },
- "credentials": {
- "title": "Authentication",
- "type": "object",
- "order": 1,
- "description": "Zendesk service provides two authentication methods. Choose between: `OAuth2.0` or `API token`.",
- "oneOf": [ {
- "title": "API Token",
- "type": "object",
- "required": [ "email", "api_token" ],
- "additionalProperties": true,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "api_token"
- },
- "email": {
- "title": "Email",
- "type": "string",
- "description": "The user email for your Zendesk account."
- },
- "api_token": {
- "title": "API Token",
- "type": "string",
- "description": "The value of the API token generated. See the docs for more information.",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "OAuth2.0",
- "type": "object",
- "required": [ "access_token" ],
- "additionalProperties": true,
- "properties": {
- "auth_type": {
- "type": "string",
- "const": "oauth2.0",
- "order": 0
- },
- "access_token": {
- "type": "string",
- "title": "Access Token",
- "description": "The value of the API token generated. See the docs for more information.",
- "airbyte_secret": true
- }
- }
- } ]
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "order": 2,
- "description": "The date from which you'd like to replicate data for Zendesk Talk API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "examples": [ "2020-10-15T00:00:00Z" ],
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "format": "date-time"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ],
- "advanced_auth": {
- "auth_flow_type": "oauth2.0",
- "predicate_key": [ "credentials", "auth_type" ],
- "predicate_value": "oauth2.0",
- "oauth_config_specification": {
- "oauth_user_input_from_connector_config_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "subdomain": {
- "type": "string",
- "path_in_connector_config": [ "subdomain" ]
- }
- }
- },
- "complete_oauth_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "access_token": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "access_token" ]
- }
- }
- },
- "complete_oauth_server_input_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string"
- },
- "client_secret": {
- "type": "string"
- }
- }
- },
- "complete_oauth_server_output_specification": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "client_id": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_id" ]
- },
- "client_secret": {
- "type": "string",
- "path_in_connector_config": [ "credentials", "client_secret" ]
- }
- }
- }
- }
- }
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "${subdomain}.zendesk.com", "zendesk.com" ]
- }
- }, {
- "sourceDefinitionId": "8baba53d-2fe3-4e33-bc85-210d0eb62884",
- "name": "Zenefits",
- "dockerRepository": "airbyte/source-zenefits",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zenefits",
- "icon": "zenefits.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Zenefits Integration Spec",
- "type": "object",
- "required": [ "token" ],
- "additionalProperties": false,
- "properties": {
- "token": {
- "title": "token",
- "type": "string",
- "description": "Use Sync with Zenefits button on the link given on the readme file, and get the token to access the api"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "f1e4c7f6-db5c-4035-981f-d35ab4998794",
- "name": "Zenloop",
- "dockerRepository": "airbyte/source-zenloop",
- "dockerImageTag": "0.1.6",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zenloop",
- "icon": "zenloop.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zenloop",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Zenloop Spec",
- "type": "object",
- "required": [ "api_token" ],
- "properties": {
- "api_token": {
- "type": "string",
- "description": "Zenloop API Token. You can get the API token in settings page here ",
- "airbyte_secret": true
- },
- "date_from": {
- "type": "string",
- "description": "Zenloop date_from. Format: 2021-10-24T03:30:30Z or 2021-10-24. Leave empty if only data from current data should be synced",
- "examples": [ "2021-10-24T03:30:30Z" ]
- },
- "survey_id": {
- "type": "string",
- "description": "Zenloop Survey ID. Can be found here. Leave empty to pull answers from all surveys",
- "airbyte_secret": true
- },
- "survey_group_id": {
- "type": "string",
- "description": "Zenloop Survey Group ID. Can be found by pulling All Survey Groups via SurveyGroups stream. Leave empty to pull answers from all survey groups",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api.zenloop.com" ]
- }
- }, {
- "sourceDefinitionId": "cdaf146a-9b75-49fd-9dd2-9d64a0bb4781",
- "name": "Sentry",
- "dockerRepository": "airbyte/source-sentry",
- "dockerImageTag": "0.2.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sentry",
- "icon": "sentry.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sentry",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Sentry Spec",
- "type": "object",
- "required": [ "auth_token", "organization", "project" ],
- "additionalProperties": true,
- "properties": {
- "auth_token": {
- "type": "string",
- "title": "Authentication Tokens",
- "description": "Log into Sentry and then create authentication tokens.For self-hosted, you can find or create authentication tokens by visiting \"{instance_url_prefix}/settings/account/api/auth-tokens/\"",
- "airbyte_secret": true
- },
- "hostname": {
- "type": "string",
- "title": "Host Name",
- "description": "Host name of Sentry API server.For self-hosted, specify your host name here. Otherwise, leave it empty.",
- "default": "sentry.io"
- },
- "organization": {
- "type": "string",
- "title": "Organization",
- "description": "The slug of the organization the groups belong to."
- },
- "project": {
- "type": "string",
- "title": "Project",
- "description": "The name (slug) of the Project you want to sync."
- },
- "discover_fields": {
- "type": "array",
- "item": "string",
- "title": "Discover Event Fields",
- "description": "Fields to retrieve when fetching discover events"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "generally_available",
- "allowedHosts": {
- "hosts": [ "*" ]
- },
- "maxSecondsBetweenMessages": 64800
- }, {
- "sourceDefinitionId": "3dc3037c-5ce8-4661-adc2-f7a9e3c5ece5",
- "name": "Zuora",
- "dockerRepository": "airbyte/source-zuora",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zuora",
- "icon": "zuora.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zuora",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Zuora Connector Configuration",
- "type": "object",
- "required": [ "start_date", "tenant_endpoint", "data_query", "client_id", "client_secret" ],
- "properties": {
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "description": "Start Date in format: YYYY-MM-DD",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
- },
- "window_in_days": {
- "type": "string",
- "title": "Query Window (in days)",
- "description": "The amount of days for each data-chunk begining from start_date. Bigger the value - faster the fetch. (0.1 - as for couple of hours, 1 - as for a Day; 364 - as for a Year).",
- "examples": [ "0.5", "1", "30", "60", "90", "120", "200", "364" ],
- "pattern": "^(0|[1-9]\\d*)(\\.\\d+)?$",
- "default": "90"
- },
- "tenant_endpoint": {
- "title": "Tenant Endpoint Location",
- "type": "string",
- "description": "Please choose the right endpoint where your Tenant is located. More info by this Link",
- "enum": [ "US Production", "US Cloud Production", "US API Sandbox", "US Cloud API Sandbox", "US Central Sandbox", "US Performance Test", "EU Production", "EU API Sandbox", "EU Central Sandbox" ]
- },
- "data_query": {
- "title": "Data Query Type",
- "type": "string",
- "description": "Choose between `Live`, or `Unlimited` - the optimized, replicated database at 12 hours freshness for high volume extraction Link",
- "enum": [ "Live", "Unlimited" ],
- "default": "Live"
- },
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "Your OAuth user Client ID",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "Your OAuth user Client Secret",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "cd06e646-31bf-4dc8-af48-cbc6530fcad3",
- "name": "Kustomer",
- "dockerRepository": "airbyte/source-kustomer-singer",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/kustomer",
- "icon": "kustomer.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/kustomer",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Source Kustomer Singer Spec",
- "type": "object",
- "required": [ "api_token", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "api_token": {
- "title": "API Token",
- "type": "string",
- "description": "Kustomer API Token. See the docs on how to obtain this",
- "airbyte_secret": true
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "The date from which you'd like to replicate the data",
- "examples": [ "2019-01-01T00:00:00Z" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "4942d392-c7b5-4271-91f9-3b4f4e51eb3e",
- "name": "ZohoCRM",
- "dockerRepository": "airbyte/source-zoho-crm",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zoho-crm",
- "icon": "zohocrm.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zoho-crm",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Zoho Crm Configuration",
- "type": "object",
- "required": [ "client_id", "client_secret", "refresh_token", "environment", "dc_region", "edition" ],
- "additionalProperties": true,
- "properties": {
- "client_id": {
- "type": "string",
- "title": "Client ID",
- "description": "OAuth2.0 Client ID",
- "airbyte_secret": true
- },
- "client_secret": {
- "type": "string",
- "title": "Client Secret",
- "description": "OAuth2.0 Client Secret",
- "airbyte_secret": true
- },
- "refresh_token": {
- "type": "string",
- "title": "Refresh Token",
- "description": "OAuth2.0 Refresh Token",
- "airbyte_secret": true
- },
- "dc_region": {
- "title": "Data Center Location",
- "type": "string",
- "description": "Please choose the region of your Data Center location. More info by this Link",
- "enum": [ "US", "AU", "EU", "IN", "CN", "JP" ]
- },
- "environment": {
- "title": "Environment",
- "type": "string",
- "description": "Please choose the environment",
- "enum": [ "Production", "Developer", "Sandbox" ]
- },
- "start_datetime": {
- "title": "Start Date",
- "type": [ "string", "null" ],
- "examples": [ "2000-01-01", "2000-01-01 13:00", "2000-01-01 13:00:00", "2000-01-01T13:00+00:00", "2000-01-01T13:00:00-07:00" ],
- "description": "ISO 8601, for instance: `YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS+HH:MM`",
- "format": "date-time"
- },
- "edition": {
- "title": "Zoho CRM Edition",
- "type": "string",
- "description": "Choose your Edition of Zoho CRM to determine API Concurrency Limits",
- "enum": [ "Free", "Standard", "Professional", "Enterprise", "Ultimate" ],
- "default": "Free"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "a827c52e-791c-4135-a245-e233c5255199",
- "name": "SFTP",
- "dockerRepository": "airbyte/source-sftp",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sftp",
- "icon": "sftp.svg",
- "sourceType": "file",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/source/sftp",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "SFTP Source Spec",
- "type": "object",
- "required": [ "user", "host", "port" ],
- "additionalProperties": true,
- "properties": {
- "user": {
- "title": "User Name",
- "description": "The server user",
- "type": "string",
- "order": 0
- },
- "host": {
- "title": "Host Address",
- "description": "The server host address",
- "type": "string",
- "examples": [ "www.host.com", "192.0.2.1" ],
- "order": 1
- },
- "port": {
- "title": "Port",
- "description": "The server port",
- "type": "integer",
- "default": 22,
- "examples": [ "22" ],
- "order": 2
- },
- "credentials": {
- "type": "object",
- "title": "Authentication",
- "description": "The server authentication method",
- "order": 3,
- "oneOf": [ {
- "title": "Password Authentication",
- "required": [ "auth_method", "auth_user_password" ],
- "properties": {
- "auth_method": {
- "description": "Connect through password authentication",
- "type": "string",
- "const": "SSH_PASSWORD_AUTH",
- "order": 0
- },
- "auth_user_password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 1
- }
- }
- }, {
- "title": "SSH Key Authentication",
- "required": [ "auth_method", "auth_ssh_key" ],
- "properties": {
- "auth_method": {
- "description": "Connect through ssh key",
- "type": "string",
- "const": "SSH_KEY_AUTH",
- "order": 0
- },
- "auth_ssh_key": {
- "title": "SSH Private Key",
- "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
- "type": "string",
- "airbyte_secret": true,
- "multiline": true,
- "order": 1
- }
- }
- } ]
- },
- "file_types": {
- "title": "File types",
- "description": "Coma separated file types. Currently only 'csv' and 'json' types are supported.",
- "type": "string",
- "default": "csv,json",
- "order": 4,
- "examples": [ "csv,json", "csv" ]
- },
- "folder_path": {
- "title": "Folder Path",
- "description": "The directory to search files for sync",
- "type": "string",
- "default": "",
- "examples": [ "/logs/2022" ],
- "order": 5
- },
- "file_pattern": {
- "title": "File Pattern",
- "description": "The regular expression to specify files for sync in a chosen Folder Path",
- "type": "string",
- "default": "",
- "examples": [ "log-([0-9]{4})([0-9]{2})([0-9]{2}) - This will filter files which `log-yearmmdd`" ],
- "order": 6
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "31e3242f-dee7-4cdc-a4b8-8e06c5458517",
- "name": "SFTP Bulk",
- "dockerRepository": "airbyte/source-sftp-bulk",
- "dockerImageTag": "0.1.2",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/sftp-bulk",
- "icon": "sftp.svg",
- "sourceType": "file",
- "spec": {
- "documentationUrl": "https://docs.airbyte.io/integrations/source/ftp",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "FTP Source Spec",
- "type": "object",
- "required": [ "username", "host", "port", "stream_name", "start_date", "folder_path" ],
- "additionalProperties": true,
- "properties": {
- "username": {
- "title": "User Name",
- "description": "The server user",
- "type": "string",
- "order": 0
- },
- "password": {
- "title": "Password",
- "description": "OS-level password for logging into the jump server host",
- "type": "string",
- "airbyte_secret": true,
- "order": 1
- },
- "private_key": {
- "title": "Private key",
- "description": "The private key",
- "type": "string",
- "multiline": true,
- "order": 2
- },
- "host": {
- "title": "Host Address",
- "description": "The server host address",
- "type": "string",
- "examples": [ "www.host.com", "192.0.2.1" ],
- "order": 3
- },
- "port": {
- "title": "Port",
- "description": "The server port",
- "type": "integer",
- "default": 22,
- "examples": [ "22" ],
- "order": 4
- },
- "stream_name": {
- "title": "Stream name",
- "description": "The name of the stream or table you want to create",
- "type": "string",
- "examples": [ "ftp_contacts" ],
- "order": 5
- },
- "file_type": {
- "title": "File type",
- "description": "The file type you want to sync. Currently only 'csv' and 'json' files are supported.",
- "type": "string",
- "default": "csv",
- "enum": [ "csv", "json" ],
- "order": 6,
- "examples": [ "csv", "json" ]
- },
- "separator": {
- "title": "CSV Separator (Optional)",
- "description": "The separator used in the CSV files. Define None if you want to use the Sniffer functionality",
- "type": "string",
- "default": ",",
- "examples": [ "," ],
- "order": 7
- },
- "folder_path": {
- "title": "Folder Path (Optional)",
- "description": "The directory to search files for sync",
- "type": "string",
- "default": "",
- "examples": [ "/logs/2022" ],
- "order": 8
- },
- "file_pattern": {
- "title": "File Pattern (Optional)",
- "description": "The regular expression to specify files for sync in a chosen Folder Path",
- "type": "string",
- "default": "",
- "examples": [ "log-([0-9]{4})([0-9]{2})([0-9]{2}) - This will filter files which `log-yearmmdd`" ],
- "order": 9
- },
- "file_most_recent": {
- "title": "Most recent file (Optional)",
- "description": "Sync only the most recent file for the configured folder path and file pattern",
- "type": "boolean",
- "default": false,
- "order": 10
- },
- "start_date": {
- "type": "string",
- "title": "Start Date",
- "format": "date-time",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "examples": [ "2017-01-25T00:00:00Z" ],
- "description": "The date from which you'd like to replicate data for all incremental streams, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
- "order": 11
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "6f2ac653-8623-43c4-8950-19218c7caf3d",
- "name": "Firebolt",
- "dockerRepository": "airbyte/source-firebolt",
- "dockerImageTag": "0.2.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/firebolt",
- "icon": "firebolt.svg",
- "sourceType": "database",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/firebolt",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Firebolt Spec",
- "type": "object",
- "required": [ "username", "password", "database" ],
- "additionalProperties": true,
- "properties": {
- "username": {
- "type": "string",
- "title": "Username",
- "description": "Firebolt email address you use to login.",
- "examples": [ "username@email.com" ]
- },
- "password": {
- "type": "string",
- "title": "Password",
- "description": "Firebolt password.",
- "airbyte_secret": true
- },
- "account": {
- "type": "string",
- "title": "Account",
- "description": "Firebolt account to login."
- },
- "host": {
- "type": "string",
- "title": "Host",
- "description": "The host name of your Firebolt database.",
- "examples": [ "api.app.firebolt.io" ]
- },
- "database": {
- "type": "string",
- "title": "Database",
- "description": "The database to connect to."
- },
- "engine": {
- "type": "string",
- "title": "Engine",
- "description": "Engine name or url to connect to."
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "7cf88806-25f5-4e1a-b422-b2fa9e1b0090",
- "name": "Elasticsearch",
- "dockerRepository": "airbyte/source-elasticsearch",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/elasticsearch",
- "icon": "elasticsearch.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/source/elasticsearch",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Elasticsearch Connection Configuration",
- "type": "object",
- "required": [ "endpoint" ],
- "additionalProperties": true,
- "properties": {
- "endpoint": {
- "title": "Server Endpoint",
- "type": "string",
- "description": "The full url of the Elasticsearch server"
- },
- "authenticationMethod": {
- "title": "Authentication Method",
- "type": "object",
- "description": "The type of authentication to be used",
- "oneOf": [ {
- "title": "None",
- "additionalProperties": true,
- "description": "No authentication will be used",
- "required": [ "method" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "none"
- }
- }
- }, {
- "title": "Api Key/Secret",
- "additionalProperties": true,
- "description": "Use a api key and secret combination to authenticate",
- "required": [ "method", "apiKeyId", "apiKeySecret" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "secret"
- },
- "apiKeyId": {
- "title": "API Key ID",
- "description": "The Key ID to used when accessing an enterprise Elasticsearch instance.",
- "type": "string"
- },
- "apiKeySecret": {
- "title": "API Key Secret",
- "description": "The secret associated with the API Key ID.",
- "type": "string",
- "airbyte_secret": true
- }
- }
- }, {
- "title": "Username/Password",
- "additionalProperties": true,
- "description": "Basic auth header with a username and password",
- "required": [ "method", "username", "password" ],
- "properties": {
- "method": {
- "type": "string",
- "const": "basic"
- },
- "username": {
- "title": "Username",
- "description": "Basic auth username to access a secure Elasticsearch server",
- "type": "string"
- },
- "password": {
- "title": "Password",
- "description": "Basic auth password to access a secure Elasticsearch server",
- "type": "string",
- "airbyte_secret": true
- }
- }
- } ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "03a53b13-794a-4d6b-8544-3b36ed8f3ce4",
- "name": "Waiteraid",
- "dockerRepository": "airbyte/source-waiteraid",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/waiteraid",
- "icon": "waiteraid.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Waiteraid Spec",
- "type": "object",
- "required": [ "start_date", "auth_hash", "restid" ],
- "additionalProperties": true,
- "properties": {
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "Start getting data from that date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "examples": [ "YYYY-MM-DD" ]
- },
- "auth_hash": {
- "title": "Authentication Hash",
- "type": "string",
- "description": "Your WaiterAid API key, obtained from API request with Username and Password",
- "airbyte_secret": true
- },
- "restid": {
- "title": "Restaurant ID",
- "type": "string",
- "description": "Your WaiterAid restaurant id from API request to getRestaurants",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "87c58f70-6f7a-4f70-aba5-bab1a458f5ba",
- "name": "Wikipedia Pageviews",
- "dockerRepository": "airbyte/source-wikipedia-pageviews",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/wikipedia-pageviews",
- "icon": "wikipediapageviews.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docsurl.com",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Wikipedia Pageviews Spec",
- "type": "object",
- "required": [ "project", "access", "agent", "article", "start", "end", "country" ],
- "additionalProperties": true,
- "properties": {
- "project": {
- "type": "string",
- "title": "Project",
- "description": "If you want to filter by project, use the domain of any Wikimedia project.",
- "examples": [ "en.wikipedia.org", "www.mediawiki.org", "commons.wikimedia.org" ]
- },
- "access": {
- "type": "string",
- "title": "Access",
- "description": "If you want to filter by access method, use one of desktop, mobile-app or mobile-web. If you are interested in pageviews regardless of access method, use all-access.",
- "examples": [ "all-access", "desktop", "mobile-app", "mobile-web" ]
- },
- "agent": {
- "type": "string",
- "title": "Agent",
- "description": "If you want to filter by agent type, use one of user, automated or spider. If you are interested in pageviews regardless of agent type, use all-agents.",
- "examples": [ "all-agents", "user", "spider", "automated" ]
- },
- "article": {
- "type": "string",
- "title": "Article",
- "description": "The title of any article in the specified project. Any spaces should be replaced with underscores. It also should be URI-encoded, so that non-URI-safe characters like %, / or ? are accepted.",
- "examples": [ "Are_You_the_One%3F" ]
- },
- "start": {
- "type": "string",
- "title": "Start",
- "description": "The date of the first day to include, in YYYYMMDD or YYYYMMDDHH format."
- },
- "end": {
- "type": "string",
- "title": "End",
- "description": "The date of the last day to include, in YYYYMMDD or YYYYMMDDHH format."
- },
- "country": {
- "type": "string",
- "title": "Country",
- "description": "The ISO 3166-1 alpha-2 code of a country for which to retrieve top articles.",
- "examples": [ "FR", "IN" ]
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "05b0bce2-4ec4-4534-bb1a-5d0127bd91b7",
- "name": "WorkRamp",
- "dockerRepository": "airbyte/source-workramp",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/workramp",
- "icon": "workramp.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/workramp",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Workramp Spec",
- "type": "object",
- "required": [ "api_key", "academy_id" ],
- "additionalProperties": true,
- "properties": {
- "api_key": {
- "type": "string",
- "title": "API Token",
- "description": "The API Token for Workramp",
- "airbyte_secret": true
- },
- "academy_id": {
- "type": "string",
- "title": "Academy ID",
- "description": "The id of the Academy"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "7865dce4-2211-4f6a-88e5-9d0fe161afe7",
- "name": "Yandex Metrica",
- "dockerRepository": "airbyte/source-yandex-metrica",
- "dockerImageTag": "1.0.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/yandex-metrica",
- "icon": "yandexmetrica.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/yandex-metrica",
- "connectionSpecification": {
- "$schema": "https://json-schema.org/draft-07/schema#",
- "title": "Yandex Metrica Spec",
- "type": "object",
- "required": [ "auth_token", "counter_id", "start_date" ],
- "additionalProperties": true,
- "properties": {
- "auth_token": {
- "type": "string",
- "title": "Authentication Token",
- "description": "Your Yandex Metrica API access token",
- "airbyte_secret": true,
- "order": 0
- },
- "counter_id": {
- "type": "string",
- "title": "Counter ID",
- "description": "Counter ID",
- "pattern": "^[0-9]+$",
- "order": 1
- },
- "start_date": {
- "title": "Start Date",
- "type": "string",
- "description": "Starting point for your data replication, in format of \"YYYY-MM-DD\".",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "format": "date",
- "examples": [ "2022-01-01" ],
- "order": 2
- },
- "end_date": {
- "title": "End Date",
- "type": "string",
- "description": "Starting point for your data replication, in format of \"YYYY-MM-DD\". If not provided will sync till most recent date.",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "format": "date",
- "examples": [ "2022-01-01" ],
- "order": 3
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "beta",
- "allowedHosts": {
- "hosts": [ "api-metrica.yandex.net" ]
- }
- }, {
- "sourceDefinitionId": "9c74c2d7-531a-4ebf-b6d8-6181f805ecdc",
- "name": "Younium",
- "dockerRepository": "airbyte/source-younium",
- "dockerImageTag": "0.1.0",
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/younium",
- "icon": "younium.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/younium",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Younium Spec",
- "type": "object",
- "required": [ "username", "password", "legal_entity" ],
- "properties": {
- "username": {
- "title": "Username",
- "type": "string",
- "description": "Username for Younium account"
- },
- "password": {
- "title": "Password",
- "type": "string",
- "description": "Account password for younium account API key",
- "airbyte_secret": true
- },
- "legal_entity": {
- "title": "Legal Entity",
- "type": "string",
- "description": "Legal Entity that data should be pulled from"
- },
- "playground": {
- "title": "Playground environment",
- "type": "boolean",
- "description": "Property defining if connector is used against playground or production environment",
- "default": false
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "cbfd9856-1322-44fb-bcf1-0b39b7a8e92e",
- "name": "Zoom",
- "dockerRepository": "airbyte/source-zoom",
- "dockerImageTag": "0.1.1",
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/zoom",
- "icon": "zoom.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/zoom",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Zoom Spec",
- "type": "object",
- "required": [ "jwt_token" ],
- "additionalProperties": true,
- "properties": {
- "jwt_token": {
- "type": "string",
- "description": "JWT Token",
- "airbyte_secret": true
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- }, {
- "sourceDefinitionId": "68b9c98e-0747-4c84-b05b-d30b47686725",
- "name": "Braze",
- "dockerRepository": "airbyte/source-braze",
- "dockerImageTag": "0.1.3",
- "documentationUrl": "https://docs.airbyte.io/integrations/sources/braze",
- "icon": "braze.svg",
- "sourceType": "api",
- "spec": {
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/braze",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Braze Spec",
- "type": "object",
- "additionalProperties": true,
- "required": [ "url", "api_key", "start_date" ],
- "properties": {
- "url": {
- "type": "string",
- "title": "URL",
- "description": "Braze REST API endpoint"
- },
- "api_key": {
- "type": "string",
- "title": "Rest API Key",
- "airbyte_secret": true,
- "description": "Braze REST API key"
- },
- "start_date": {
- "type": "string",
- "format": "date",
- "title": "Start date",
- "description": "Rows after this date will be synced"
- }
- }
- },
- "supportsNormalization": false,
- "supportsDBT": false,
- "supported_destination_sync_modes": [ ]
- },
- "tombstone": false,
- "public": true,
- "custom": false,
- "releaseStage": "alpha"
- } ]
-}
\ No newline at end of file
+{
+ "destinations": [
+ {
+ "destinationDefinitionId": "b4c5d105-31fd-4817-96b6-cb923bfc04cb",
+ "name": "Azure Blob Storage",
+ "dockerRepository": "airbyte/destination-azure-blob-storage",
+ "dockerImageTag": "0.2.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/azureblobstorage",
+ "icon": "azureblobstorage.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/azureblobstorage",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "AzureBlobStorage Destination Spec",
+ "type": "object",
+ "required": [
+ "azure_blob_storage_account_name",
+ "azure_blob_storage_account_key",
+ "format"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "azure_blob_storage_endpoint_domain_name": {
+ "title": "Endpoint Domain Name",
+ "type": "string",
+ "default": "blob.core.windows.net",
+ "description": "This is Azure Blob Storage endpoint domain name. Leave default value (or leave it empty if run container from command line) to use Microsoft native from example.",
+ "examples": ["blob.core.windows.net"]
+ },
+ "azure_blob_storage_container_name": {
+ "title": "Azure blob storage container (Bucket) Name",
+ "type": "string",
+ "description": "The name of the Azure blob storage container. If not exists - will be created automatically. May be empty, then will be created automatically airbytecontainer+timestamp",
+ "examples": ["airbytetescontainername"]
+ },
+ "azure_blob_storage_account_name": {
+ "title": "Azure Blob Storage account name",
+ "type": "string",
+ "description": "The account's name of the Azure Blob Storage.",
+ "examples": ["airbyte5storage"]
+ },
+ "azure_blob_storage_account_key": {
+ "title": "Azure Blob Storage account key",
+ "description": "The Azure blob storage account key.",
+ "airbyte_secret": true,
+ "type": "string",
+ "examples": [
+ "Z8ZkZpteggFx394vm+PJHnGTvdRncaYS+JhLKdj789YNmD+iyGTnG+PV+POiuYNhBg/ACS+LKjd%4FG3FHGN12Nd=="
+ ]
+ },
+ "azure_blob_storage_output_buffer_size": {
+ "title": "Azure Blob Storage output buffer size (Megabytes)",
+ "type": "integer",
+ "description": "The amount of megabytes to buffer for the output stream to Azure. This will impact memory footprint on workers, but may need adjustment for performance and appropriate block size in Azure.",
+ "minimum": 1,
+ "maximum": 2047,
+ "default": 5,
+ "examples": [5]
+ },
+ "azure_blob_storage_spill_size": {
+ "title": "Azure Blob Storage file spill size",
+ "type": "integer",
+ "description": "The amount of megabytes after which the connector should spill the records in a new blob object. Make sure to configure size greater than individual records. Enter 0 if not applicable",
+ "default": 500,
+ "examples": [500]
+ },
+ "format": {
+ "title": "Output Format",
+ "type": "object",
+ "description": "Output data format",
+ "oneOf": [
+ {
+ "title": "CSV: Comma-Separated Values",
+ "required": ["format_type", "flattening"],
+ "properties": {
+ "format_type": {
+ "type": "string",
+ "const": "CSV"
+ },
+ "flattening": {
+ "type": "string",
+ "title": "Normalization (Flattening)",
+ "description": "Whether the input json data should be normalized (flattened) in the output CSV. Please refer to docs for details.",
+ "default": "No flattening",
+ "enum": ["No flattening", "Root level flattening"]
+ }
+ }
+ },
+ {
+ "title": "JSON Lines: newline-delimited JSON",
+ "required": ["format_type"],
+ "properties": {
+ "format_type": {
+ "type": "string",
+ "const": "JSONL"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "resourceRequirements": {
+ "jobSpecific": [
+ {
+ "jobType": "sync",
+ "resourceRequirements": {
+ "memory_request": "1Gi",
+ "memory_limit": "1Gi"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "destinationDefinitionId": "0eeee7fb-518f-4045-bacc-9619e31c43ea",
+ "name": "Amazon SQS",
+ "dockerRepository": "airbyte/destination-amazon-sqs",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/amazon-sqs",
+ "icon": "awssqs.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/amazon-sqs",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Amazon Sqs",
+ "type": "object",
+ "required": ["queue_url", "region"],
+ "additionalProperties": false,
+ "properties": {
+ "queue_url": {
+ "title": "Queue URL",
+ "description": "URL of the SQS Queue",
+ "type": "string",
+ "examples": [
+ "https://sqs.eu-west-1.amazonaws.com/1234567890/my-example-queue"
+ ],
+ "order": 0
+ },
+ "region": {
+ "title": "AWS Region",
+ "description": "AWS Region of the SQS Queue",
+ "type": "string",
+ "enum": [
+ "us-east-1",
+ "us-east-2",
+ "us-west-1",
+ "us-west-2",
+ "af-south-1",
+ "ap-east-1",
+ "ap-south-1",
+ "ap-northeast-1",
+ "ap-northeast-2",
+ "ap-northeast-3",
+ "ap-southeast-1",
+ "ap-southeast-2",
+ "ca-central-1",
+ "cn-north-1",
+ "cn-northwest-1",
+ "eu-central-1",
+ "eu-north-1",
+ "eu-south-1",
+ "eu-west-1",
+ "eu-west-2",
+ "eu-west-3",
+ "sa-east-1",
+ "me-south-1",
+ "us-gov-east-1",
+ "us-gov-west-1"
+ ],
+ "order": 1
+ },
+ "message_delay": {
+ "title": "Message Delay",
+ "description": "Modify the Message Delay of the individual message from the Queue's default (seconds).",
+ "type": "integer",
+ "examples": ["15"],
+ "order": 2
+ },
+ "access_key": {
+ "title": "AWS IAM Access Key ID",
+ "description": "The Access Key ID of the AWS IAM Role to use for sending messages",
+ "type": "string",
+ "examples": ["xxxxxHRNxxx3TBxxxxxx"],
+ "order": 3,
+ "airbyte_secret": true
+ },
+ "secret_key": {
+ "title": "AWS IAM Secret Key",
+ "description": "The Secret Key of the AWS IAM Role to use for sending messages",
+ "type": "string",
+ "examples": ["hu+qE5exxxxT6o/ZrKsxxxxxxBhxxXLexxxxxVKz"],
+ "order": 4,
+ "airbyte_secret": true
+ },
+ "message_body_key": {
+ "title": "Message Body Key",
+ "description": "Use this property to extract the contents of the named key in the input record to use as the SQS message body. If not set, the entire content of the input record data is used as the message body.",
+ "type": "string",
+ "examples": ["myDataPath"],
+ "order": 5
+ },
+ "message_group_id": {
+ "title": "Message Group Id",
+ "description": "The tag that specifies that a message belongs to a specific message group. This parameter applies only to, and is REQUIRED by, FIFO queues.",
+ "type": "string",
+ "examples": ["my-fifo-group"],
+ "order": 6
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "05c161bf-ca73-4d48-b524-d392be417002",
+ "name": "Apache Doris",
+ "dockerRepository": "airbyte/destination-doris",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/doris",
+ "icon": "apachedoris.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/destinations/doris",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Doris Destination Spec",
+ "type": "object",
+ "required": ["host", "httpport", "queryport", "username", "database"],
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database",
+ "type": "string",
+ "order": 0
+ },
+ "httpport": {
+ "title": "HttpPort",
+ "description": "Http Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 8030,
+ "examples": ["8030"],
+ "order": 1
+ },
+ "queryport": {
+ "title": "QueryPort",
+ "description": "Query(SQL) Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 9030,
+ "examples": ["9030"],
+ "order": 2
+ },
+ "database": {
+ "title": "DataBase Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 3
+ },
+ "username": {
+ "title": "UserName",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 4
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 5
+ }
+ }
+ },
+ "supportsIncremental": false,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["append", "overwrite"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "df65a8f3-9908-451b-aa9b-445462803560",
+ "name": "Apache Iceberg",
+ "dockerRepository": "airbyte/destination-iceberg",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/iceberg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/iceberg",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Iceberg Destination Spec",
+ "type": "object",
+ "required": ["catalog_config", "storage_config", "format_config"],
+ "properties": {
+ "catalog_config": {
+ "title": "Iceberg catalog config",
+ "type": "object",
+ "description": "Catalog config of Iceberg.",
+ "oneOf": [
+ {
+ "title": "HiveCatalog: Use Apache Hive MetaStore",
+ "required": ["catalog_type", "hive_thrift_uri"],
+ "properties": {
+ "catalog_type": {
+ "title": "Catalog Type",
+ "type": "string",
+ "default": "Hive",
+ "enum": ["Hive"],
+ "order": 0
+ },
+ "hive_thrift_uri": {
+ "title": "Hive Metastore thrift uri",
+ "type": "string",
+ "description": "Hive MetaStore thrift server uri of iceberg catalog.",
+ "examples": ["host:port"],
+ "order": 1
+ },
+ "database": {
+ "title": "Default database",
+ "description": "The default database tables are written to if the source does not specify a namespace. The usual value for this field is \"default\".",
+ "type": "string",
+ "default": "default",
+ "examples": ["default"],
+ "order": 2
+ }
+ }
+ },
+ {
+ "title": "HadoopCatalog: Use hierarchical file systems as same as storage config",
+ "description": "A Hadoop catalog doesn’t need to connect to a Hive MetaStore, but can only be used with HDFS or similar file systems that support atomic rename.",
+ "required": ["catalog_type"],
+ "properties": {
+ "catalog_type": {
+ "title": "Catalog Type",
+ "type": "string",
+ "default": "Hadoop",
+ "enum": ["Hadoop"],
+ "order": 0
+ },
+ "database": {
+ "title": "Default database",
+ "description": "The default database tables are written to if the source does not specify a namespace. The usual value for this field is \"default\".",
+ "type": "string",
+ "default": "default",
+ "examples": ["default"],
+ "order": 1
+ }
+ }
+ },
+ {
+ "title": "JdbcCatalog: Use relational database",
+ "description": "Using a table in a relational database to manage Iceberg tables through JDBC. Read more here. Supporting: PostgreSQL",
+ "required": ["catalog_type"],
+ "properties": {
+ "catalog_type": {
+ "title": "Catalog Type",
+ "type": "string",
+ "default": "Jdbc",
+ "enum": ["Jdbc"],
+ "order": 0
+ },
+ "database": {
+ "title": "Default schema",
+ "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
+ "type": "string",
+ "default": "public",
+ "examples": ["public"],
+ "order": 1
+ },
+ "jdbc_url": {
+ "title": "Jdbc url",
+ "type": "string",
+ "examples": [
+ "jdbc:postgresql://{host}:{port}/{database}"
+ ],
+ "order": 2
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL. When activating SSL, please select one of the connection modes.",
+ "type": "boolean",
+ "default": false,
+ "order": 5
+ },
+ "catalog_schema": {
+ "title": "schema for Iceberg catalog",
+ "description": "Iceberg catalog metadata tables are written to catalog schema. The usual value for this field is \"public\".",
+ "type": "string",
+ "default": "public",
+ "examples": ["public"],
+ "order": 6
+ }
+ }
+ }
+ ],
+ "order": 0
+ },
+ "storage_config": {
+ "title": "Storage config",
+ "type": "object",
+ "description": "Storage config of Iceberg.",
+ "oneOf": [
+ {
+ "title": "S3",
+ "type": "object",
+ "description": "S3 object storage",
+ "required": [
+ "storage_type",
+ "access_key_id",
+ "secret_access_key",
+ "s3_warehouse_uri"
+ ],
+ "properties": {
+ "storage_type": {
+ "title": "Storage Type",
+ "type": "string",
+ "default": "S3",
+ "enum": ["S3"],
+ "order": 0
+ },
+ "access_key_id": {
+ "type": "string",
+ "description": "The access key ID to access the S3 bucket. Airbyte requires Read and Write permissions to the given bucket. Read more here.",
+ "title": "S3 Key ID",
+ "airbyte_secret": true,
+ "examples": ["A012345678910EXAMPLE"],
+ "order": 0
+ },
+ "secret_access_key": {
+ "type": "string",
+ "description": "The corresponding secret to the access key ID. Read more here",
+ "title": "S3 Access Key",
+ "airbyte_secret": true,
+ "examples": ["a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY"],
+ "order": 1
+ },
+ "s3_warehouse_uri": {
+ "title": "S3 Warehouse Uri for Iceberg",
+ "type": "string",
+ "description": "The Warehouse Uri for Iceberg",
+ "examples": [
+ "s3a://my-bucket/path/to/warehouse",
+ "s3://my-bucket/path/to/warehouse"
+ ],
+ "order": 2
+ },
+ "s3_bucket_region": {
+ "title": "S3 Bucket Region",
+ "type": "string",
+ "default": "",
+ "description": "The region of the S3 bucket. See here for all region codes.",
+ "enum": [
+ "",
+ "us-east-1",
+ "us-east-2",
+ "us-west-1",
+ "us-west-2",
+ "af-south-1",
+ "ap-east-1",
+ "ap-south-1",
+ "ap-northeast-1",
+ "ap-northeast-2",
+ "ap-northeast-3",
+ "ap-southeast-1",
+ "ap-southeast-2",
+ "ca-central-1",
+ "cn-north-1",
+ "cn-northwest-1",
+ "eu-central-1",
+ "eu-north-1",
+ "eu-south-1",
+ "eu-west-1",
+ "eu-west-2",
+ "eu-west-3",
+ "sa-east-1",
+ "me-south-1",
+ "us-gov-east-1",
+ "us-gov-west-1"
+ ],
+ "order": 3
+ },
+ "s3_endpoint": {
+ "title": "Endpoint",
+ "type": "string",
+ "default": "",
+ "description": "Your S3 endpoint url. Read more here",
+ "examples": ["http://localhost:9000", "localhost:9000"],
+ "order": 4
+ },
+ "s3_path_style_access": {
+ "type": "boolean",
+ "description": "Use path style access",
+ "examples": [true, false],
+ "default": true,
+ "order": 5
+ }
+ }
+ }
+ ],
+ "order": 1
+ },
+ "format_config": {
+ "title": "File format",
+ "type": "object",
+ "required": ["format"],
+ "description": "File format of Iceberg storage.",
+ "properties": {
+ "format": {
+ "title": "File storage format",
+ "type": "string",
+ "default": "Parquet",
+ "description": "",
+ "enum": ["Parquet", "Avro"],
+ "order": 0
+ },
+ "flush_batch_size": {
+ "title": "Data file flushing batch size",
+ "description": "Iceberg data file flush batch size. Incoming rows write to cache firstly; When cache size reaches this 'batch size', flush into real Iceberg data file.",
+ "type": "integer",
+ "default": 10000,
+ "order": 1
+ },
+ "auto_compact": {
+ "title": "Auto compact data files",
+ "description": "Auto compact data files when stream close",
+ "type": "boolean",
+ "default": false,
+ "order": 2
+ },
+ "compact_target_file_size_in_mb": {
+ "title": "Target size of compacted data file",
+ "description": "Specify the target size of Iceberg data file when performing a compaction action. ",
+ "type": "integer",
+ "default": 100,
+ "order": 3
+ }
+ },
+ "order": 2
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "99878c90-0fbd-46d3-9d98-ffde879d17fc",
+ "name": "AWS Datalake",
+ "dockerRepository": "airbyte/destination-aws-datalake",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/aws-datalake",
+ "icon": "awsdatalake.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/aws-datalake",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "AWS Datalake Destination Spec",
+ "type": "object",
+ "required": [
+ "credentials",
+ "region",
+ "bucket_name",
+ "lakeformation_database_name"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "aws_account_id": {
+ "type": "string",
+ "title": "AWS Account Id",
+ "description": "target aws account id",
+ "examples": ["111111111111"],
+ "order": 1
+ },
+ "credentials": {
+ "title": "Authentication mode",
+ "description": "Choose How to Authenticate to AWS.",
+ "type": "object",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "IAM Role",
+ "required": ["role_arn", "credentials_title"],
+ "properties": {
+ "credentials_title": {
+ "type": "string",
+ "title": "Credentials Title",
+ "description": "Name of the credentials",
+ "const": "IAM Role",
+ "enum": ["IAM Role"],
+ "default": "IAM Role",
+ "order": 0
+ },
+ "role_arn": {
+ "title": "Target Role Arn",
+ "type": "string",
+ "description": "Will assume this role to write data to s3",
+ "airbyte_secret": false
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "IAM User",
+ "required": [
+ "credentials_title",
+ "aws_access_key_id",
+ "aws_secret_access_key"
+ ],
+ "properties": {
+ "credentials_title": {
+ "type": "string",
+ "title": "Credentials Title",
+ "description": "Name of the credentials",
+ "const": "IAM User",
+ "enum": ["IAM User"],
+ "default": "IAM User",
+ "order": 0
+ },
+ "aws_access_key_id": {
+ "title": "Access Key Id",
+ "type": "string",
+ "description": "AWS User Access Key Id",
+ "airbyte_secret": true
+ },
+ "aws_secret_access_key": {
+ "title": "Secret Access Key",
+ "type": "string",
+ "description": "Secret Access Key",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ],
+ "order": 2
+ },
+ "region": {
+ "title": "S3 Bucket Region",
+ "type": "string",
+ "default": "",
+ "description": "The region of the S3 bucket. See here for all region codes.",
+ "enum": [
+ "",
+ "us-east-1",
+ "us-east-2",
+ "us-west-1",
+ "us-west-2",
+ "af-south-1",
+ "ap-east-1",
+ "ap-south-1",
+ "ap-northeast-1",
+ "ap-northeast-2",
+ "ap-northeast-3",
+ "ap-southeast-1",
+ "ap-southeast-2",
+ "ca-central-1",
+ "cn-north-1",
+ "cn-northwest-1",
+ "eu-central-1",
+ "eu-north-1",
+ "eu-south-1",
+ "eu-west-1",
+ "eu-west-2",
+ "eu-west-3",
+ "sa-east-1",
+ "me-south-1",
+ "us-gov-east-1",
+ "us-gov-west-1"
+ ],
+ "order": 3
+ },
+ "bucket_name": {
+ "title": "S3 Bucket Name",
+ "type": "string",
+ "description": "The name of the S3 bucket. Read more here.",
+ "order": 4
+ },
+ "bucket_prefix": {
+ "title": "Target S3 Bucket Prefix",
+ "type": "string",
+ "description": "S3 prefix",
+ "order": 5
+ },
+ "lakeformation_database_name": {
+ "title": "Lake Formation Database Name",
+ "type": "string",
+ "description": "The default database this destination will use to create tables in per stream. Can be changed per connection by customizing the namespace.",
+ "order": 6
+ },
+ "lakeformation_database_default_tag_key": {
+ "title": "Lake Formation Database Tag Key",
+ "description": "Add a default tag key to databases created by this destination",
+ "examples": ["pii_level"],
+ "type": "string",
+ "order": 7
+ },
+ "lakeformation_database_default_tag_values": {
+ "title": "Lake Formation Database Tag Values",
+ "description": "Add default values for the `Tag Key` to databases created by this destination. Comma separate for multiple values.",
+ "examples": ["private,public"],
+ "type": "string",
+ "order": 8
+ },
+ "lakeformation_governed_tables": {
+ "title": "Lake Formation Governed Tables",
+ "description": "Whether to create tables as LF governed tables.",
+ "type": "boolean",
+ "default": false,
+ "order": 9
+ },
+ "format": {
+ "title": "Output Format *",
+ "type": "object",
+ "description": "Format of the data output.",
+ "oneOf": [
+ {
+ "title": "JSON Lines: Newline-delimited JSON",
+ "required": ["format_type"],
+ "properties": {
+ "format_type": {
+ "title": "Format Type *",
+ "type": "string",
+ "enum": ["JSONL"],
+ "default": "JSONL"
+ },
+ "compression_codec": {
+ "title": "Compression Codec (Optional)",
+ "description": "The compression algorithm used to compress data.",
+ "type": "string",
+ "enum": ["UNCOMPRESSED", "GZIP"],
+ "default": "UNCOMPRESSED"
+ }
+ }
+ },
+ {
+ "title": "Parquet: Columnar Storage",
+ "required": ["format_type"],
+ "properties": {
+ "format_type": {
+ "title": "Format Type *",
+ "type": "string",
+ "enum": ["Parquet"],
+ "default": "Parquet"
+ },
+ "compression_codec": {
+ "title": "Compression Codec (Optional)",
+ "description": "The compression algorithm used to compress data.",
+ "type": "string",
+ "enum": ["UNCOMPRESSED", "SNAPPY", "GZIP", "ZSTD"],
+ "default": "SNAPPY"
+ }
+ }
+ }
+ ],
+ "order": 10
+ },
+ "partitioning": {
+ "title": "Choose how to partition data",
+ "description": "Partition data by cursor fields when a cursor field is a date",
+ "type": "string",
+ "enum": [
+ "NO PARTITIONING",
+ "DATE",
+ "YEAR",
+ "MONTH",
+ "DAY",
+ "YEAR/MONTH",
+ "YEAR/MONTH/DAY"
+ ],
+ "default": "NO PARTITIONING",
+ "order": 11
+ },
+ "glue_catalog_float_as_decimal": {
+ "title": "Glue Catalog: Float as Decimal",
+ "description": "Cast float/double as decimal(38,18). This can help achieve higher accuracy and represent numbers correctly as received from the source.",
+ "type": "boolean",
+ "default": false,
+ "order": 12
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "22f6c74f-5699-40ff-833c-4a879ea40133",
+ "name": "BigQuery",
+ "dockerRepository": "airbyte/destination-bigquery",
+ "dockerImageTag": "1.3.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
+ "icon": "bigquery.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "BigQuery Destination Spec",
+ "type": "object",
+ "required": ["project_id", "dataset_location", "dataset_id"],
+ "additionalProperties": true,
+ "properties": {
+ "project_id": {
+ "type": "string",
+ "description": "The GCP project ID for the project containing the target BigQuery dataset. Read more here.",
+ "title": "Project ID",
+ "order": 0
+ },
+ "dataset_location": {
+ "type": "string",
+ "description": "The location of the dataset. Warning: Changes made after creation will not be applied. Read more here.",
+ "title": "Dataset Location",
+ "order": 1,
+ "enum": [
+ "US",
+ "EU",
+ "asia-east1",
+ "asia-east2",
+ "asia-northeast1",
+ "asia-northeast2",
+ "asia-northeast3",
+ "asia-south1",
+ "asia-south2",
+ "asia-southeast1",
+ "asia-southeast2",
+ "australia-southeast1",
+ "australia-southeast2",
+ "europe-central1",
+ "europe-central2",
+ "europe-north1",
+ "europe-southwest1",
+ "europe-west1",
+ "europe-west2",
+ "europe-west3",
+ "europe-west4",
+ "europe-west6",
+ "europe-west7",
+ "europe-west8",
+ "europe-west9",
+ "me-west1",
+ "northamerica-northeast1",
+ "northamerica-northeast2",
+ "southamerica-east1",
+ "southamerica-west1",
+ "us-central1",
+ "us-east1",
+ "us-east2",
+ "us-east3",
+ "us-east4",
+ "us-east5",
+ "us-west1",
+ "us-west2",
+ "us-west3",
+ "us-west4"
+ ]
+ },
+ "dataset_id": {
+ "type": "string",
+ "description": "The default BigQuery Dataset ID that tables are replicated to if the source does not specify a namespace. Read more here.",
+ "title": "Default Dataset ID",
+ "order": 2
+ },
+ "loading_method": {
+ "type": "object",
+ "title": "Loading Method",
+ "description": "Loading method used to send select the way data will be uploaded to BigQuery.
Standard Inserts - Direct uploading using SQL INSERT statements. This method is extremely inefficient and provided only for quick testing. In almost all cases, you should use staging.
GCS Staging - Writes large batches of records to a file, uploads the file to GCS, then uses COPY INTO table to upload the file. Recommended for most workloads for better speed and scalability. Read more about GCS Staging here.",
+ "order": 3,
+ "oneOf": [
+ {
+ "title": "Standard Inserts",
+ "required": ["method"],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "Standard"
+ }
+ }
+ },
+ {
+ "title": "GCS Staging",
+ "required": [
+ "method",
+ "gcs_bucket_name",
+ "gcs_bucket_path",
+ "credential"
+ ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "GCS Staging",
+ "order": 0
+ },
+ "credential": {
+ "title": "Credential",
+ "description": "An HMAC key is a type of credential and can be associated with a service account or a user account in Cloud Storage. Read more here.",
+ "type": "object",
+ "order": 1,
+ "oneOf": [
+ {
+ "title": "HMAC key",
+ "required": [
+ "credential_type",
+ "hmac_key_access_id",
+ "hmac_key_secret"
+ ],
+ "properties": {
+ "credential_type": {
+ "type": "string",
+ "const": "HMAC_KEY",
+ "order": 0
+ },
+ "hmac_key_access_id": {
+ "type": "string",
+ "description": "HMAC key access ID. When linked to a service account, this ID is 61 characters long; when linked to a user account, it is 24 characters long.",
+ "title": "HMAC Key Access ID",
+ "airbyte_secret": true,
+ "examples": ["1234567890abcdefghij1234"],
+ "order": 1
+ },
+ "hmac_key_secret": {
+ "type": "string",
+ "description": "The corresponding secret for the access ID. It is a 40-character base-64 encoded string.",
+ "title": "HMAC Key Secret",
+ "airbyte_secret": true,
+ "examples": [
+ "1234567890abcdefghij1234567890ABCDEFGHIJ"
+ ],
+ "order": 2
+ }
+ }
+ }
+ ]
+ },
+ "gcs_bucket_name": {
+ "title": "GCS Bucket Name",
+ "type": "string",
+ "description": "The name of the GCS bucket. Read more here.",
+ "examples": ["airbyte_sync"],
+ "order": 2
+ },
+ "gcs_bucket_path": {
+ "title": "GCS Bucket Path",
+ "description": "Directory under the GCS bucket where data will be written.",
+ "type": "string",
+ "examples": ["data_sync/test"],
+ "order": 3
+ },
+ "keep_files_in_gcs-bucket": {
+ "type": "string",
+ "description": "This upload method is supposed to temporary store records in GCS bucket. By this select you can chose if these records should be removed from GCS when migration has finished. The default \"Delete all tmp files from GCS\" value is used if not set explicitly.",
+ "title": "GCS Tmp Files Afterward Processing",
+ "default": "Delete all tmp files from GCS",
+ "enum": [
+ "Delete all tmp files from GCS",
+ "Keep all tmp files in GCS"
+ ],
+ "order": 4
+ },
+ "file_buffer_count": {
+ "title": "File Buffer Count",
+ "type": "integer",
+ "minimum": 10,
+ "maximum": 50,
+ "default": 10,
+ "description": "Number of file buffers allocated for writing data. Increasing this number is beneficial for connections using Change Data Capture (CDC) and up to the number of streams within a connection. Increasing the number of file buffers past the maximum number of streams has deteriorating effects",
+ "examples": ["10"],
+ "order": 5
+ }
+ }
+ }
+ ]
+ },
+ "credentials_json": {
+ "type": "string",
+ "description": "The contents of the JSON service account key. Check out the docs if you need help generating this key. Default credentials will be used if this field is left empty.",
+ "title": "Service Account Key JSON (Required for cloud, optional for open-source)",
+ "airbyte_secret": true,
+ "order": 4,
+ "always_show": true
+ },
+ "transformation_priority": {
+ "type": "string",
+ "description": "Interactive run type means that the query is executed as soon as possible, and these queries count towards concurrent rate limit and daily limit. Read more about interactive run type here. Batch queries are queued and started as soon as idle resources are available in the BigQuery shared resource pool, which usually occurs within a few minutes. Batch queries don’t count towards your concurrent rate limit. Read more about batch queries here. The default \"interactive\" value is used if not set explicitly.",
+ "title": "Transformation Query Run Type",
+ "default": "interactive",
+ "enum": ["interactive", "batch"],
+ "order": 5
+ },
+ "big_query_client_buffer_size_mb": {
+ "title": "Google BigQuery Client Chunk Size",
+ "description": "Google BigQuery client's chunk (buffer) size (MIN=1, MAX = 15) for each table. The size that will be written by a single RPC. Written data will be buffered and only flushed upon reaching this size or closing the channel. The default 15MB value is used if not set explicitly. Read more here.",
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 15,
+ "default": 15,
+ "examples": ["15"],
+ "order": 6
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": [
+ "overwrite",
+ "append",
+ "append_dedup"
+ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "resourceRequirements": {
+ "jobSpecific": [
+ {
+ "jobType": "sync",
+ "resourceRequirements": {
+ "memory_request": "1Gi",
+ "memory_limit": "1Gi"
+ }
+ }
+ ]
+ },
+ "normalizationConfig": {
+ "normalizationRepository": "airbyte/normalization",
+ "normalizationTag": "0.4.0",
+ "normalizationIntegrationType": "bigquery"
+ },
+ "supportsDbt": true
+ },
+ {
+ "destinationDefinitionId": "079d5540-f236-4294-ba7c-ade8fd918496",
+ "name": "BigQuery (denormalized typed struct)",
+ "dockerRepository": "airbyte/destination-bigquery-denormalized",
+ "dockerImageTag": "1.3.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
+ "icon": "bigquery.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "BigQuery Denormalized Typed Struct Destination Spec",
+ "type": "object",
+ "required": ["project_id", "dataset_id"],
+ "additionalProperties": true,
+ "properties": {
+ "project_id": {
+ "type": "string",
+ "description": "The GCP project ID for the project containing the target BigQuery dataset. Read more here.",
+ "title": "Project ID",
+ "order": 0
+ },
+ "dataset_id": {
+ "type": "string",
+ "description": "The default BigQuery Dataset ID that tables are replicated to if the source does not specify a namespace. Read more here.",
+ "title": "Default Dataset ID",
+ "order": 1
+ },
+ "loading_method": {
+ "type": "object",
+ "title": "Loading Method",
+ "description": "Loading method used to send select the way data will be uploaded to BigQuery.
Standard Inserts - Direct uploading using SQL INSERT statements. This method is extremely inefficient and provided only for quick testing. In almost all cases, you should use staging.
GCS Staging - Writes large batches of records to a file, uploads the file to GCS, then uses COPY INTO table to upload the file. Recommended for most workloads for better speed and scalability. Read more about GCS Staging here.",
+ "order": 2,
+ "oneOf": [
+ {
+ "title": "Standard Inserts",
+ "required": ["method"],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "Standard"
+ }
+ }
+ },
+ {
+ "title": "GCS Staging",
+ "type": "object",
+ "required": [
+ "method",
+ "gcs_bucket_name",
+ "gcs_bucket_path",
+ "credential"
+ ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "GCS Staging",
+ "order": 0
+ },
+ "credential": {
+ "title": "Credential",
+ "description": "An HMAC key is a type of credential and can be associated with a service account or a user account in Cloud Storage. Read more here.",
+ "type": "object",
+ "order": 1,
+ "oneOf": [
+ {
+ "title": "HMAC key",
+ "order": 0,
+ "required": [
+ "credential_type",
+ "hmac_key_access_id",
+ "hmac_key_secret"
+ ],
+ "properties": {
+ "credential_type": {
+ "type": "string",
+ "const": "HMAC_KEY",
+ "order": 0
+ },
+ "hmac_key_access_id": {
+ "type": "string",
+ "description": "HMAC key access ID. When linked to a service account, this ID is 61 characters long; when linked to a user account, it is 24 characters long.",
+ "title": "HMAC Key Access ID",
+ "airbyte_secret": true,
+ "examples": ["1234567890abcdefghij1234"],
+ "order": 1
+ },
+ "hmac_key_secret": {
+ "type": "string",
+ "description": "The corresponding secret for the access ID. It is a 40-character base-64 encoded string.",
+ "title": "HMAC Key Secret",
+ "airbyte_secret": true,
+ "examples": [
+ "1234567890abcdefghij1234567890ABCDEFGHIJ"
+ ],
+ "order": 2
+ }
+ }
+ }
+ ]
+ },
+ "gcs_bucket_name": {
+ "title": "GCS Bucket Name",
+ "type": "string",
+ "description": "The name of the GCS bucket. Read more here.",
+ "examples": ["airbyte_sync"],
+ "order": 2
+ },
+ "gcs_bucket_path": {
+ "title": "GCS Bucket Path",
+ "description": "Directory under the GCS bucket where data will be written. Read more here.",
+ "type": "string",
+ "examples": ["data_sync/test"],
+ "order": 3
+ },
+ "keep_files_in_gcs-bucket": {
+ "type": "string",
+ "description": "This upload method is supposed to temporary store records in GCS bucket. By this select you can chose if these records should be removed from GCS when migration has finished. The default \"Delete all tmp files from GCS\" value is used if not set explicitly.",
+ "title": "GCS Tmp Files Afterward Processing",
+ "default": "Delete all tmp files from GCS",
+ "enum": [
+ "Delete all tmp files from GCS",
+ "Keep all tmp files in GCS"
+ ],
+ "order": 4
+ },
+ "file_buffer_count": {
+ "title": "File Buffer Count",
+ "type": "integer",
+ "minimum": 10,
+ "maximum": 50,
+ "default": 10,
+ "description": "Number of file buffers allocated for writing data. Increasing this number is beneficial for connections using Change Data Capture (CDC) and up to the number of streams within a connection. Increasing the number of file buffers past the maximum number of streams has deteriorating effects",
+ "examples": ["10"],
+ "order": 5
+ }
+ }
+ }
+ ]
+ },
+ "credentials_json": {
+ "type": "string",
+ "description": "The contents of the JSON service account key. Check out the docs if you need help generating this key. Default credentials will be used if this field is left empty.",
+ "title": "Service Account Key JSON (Required for cloud, optional for open-source)",
+ "airbyte_secret": true,
+ "order": 3,
+ "always_show": true
+ },
+ "dataset_location": {
+ "type": "string",
+ "description": "The location of the dataset. Warning: Changes made after creation will not be applied. The default \"US\" value is used if not set explicitly. Read more here.",
+ "title": "Dataset Location",
+ "default": "US",
+ "order": 4,
+ "enum": [
+ "US",
+ "EU",
+ "asia-east1",
+ "asia-east2",
+ "asia-northeast1",
+ "asia-northeast2",
+ "asia-northeast3",
+ "asia-south1",
+ "asia-south2",
+ "asia-southeast1",
+ "asia-southeast2",
+ "australia-southeast1",
+ "australia-southeast2",
+ "europe-central1",
+ "europe-central2",
+ "europe-north1",
+ "europe-southwest1",
+ "europe-west1",
+ "europe-west2",
+ "europe-west3",
+ "europe-west4",
+ "europe-west6",
+ "europe-west7",
+ "europe-west8",
+ "europe-west9",
+ "me-west1",
+ "northamerica-northeast1",
+ "northamerica-northeast2",
+ "southamerica-east1",
+ "southamerica-west1",
+ "us-central1",
+ "us-east1",
+ "us-east2",
+ "us-east3",
+ "us-east4",
+ "us-east5",
+ "us-west1",
+ "us-west2",
+ "us-west3",
+ "us-west4"
+ ]
+ },
+ "big_query_client_buffer_size_mb": {
+ "title": "Google BigQuery Client Chunk Size",
+ "description": "Google BigQuery client's chunk (buffer) size (MIN=1, MAX = 15) for each table. The size that will be written by a single RPC. Written data will be buffered and only flushed upon reaching this size or closing the channel. The default 15MB value is used if not set explicitly. Read more here.",
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 15,
+ "default": 15,
+ "examples": ["15"],
+ "order": 5
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "resourceRequirements": {
+ "jobSpecific": [
+ {
+ "jobType": "sync",
+ "resourceRequirements": {
+ "memory_request": "1Gi",
+ "memory_limit": "1Gi"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "destinationDefinitionId": "707456df-6f4f-4ced-b5c6-03f73bcad1c5",
+ "name": "Cassandra",
+ "dockerRepository": "airbyte/destination-cassandra",
+ "dockerImageTag": "0.1.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/cassandra",
+ "icon": "cassandra.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/cassandra",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Cassandra Destination Spec",
+ "type": "object",
+ "required": ["keyspace", "username", "password", "address", "port"],
+ "additionalProperties": true,
+ "properties": {
+ "keyspace": {
+ "title": "Keyspace",
+ "description": "Default Cassandra keyspace to create data in.",
+ "type": "string",
+ "order": 0
+ },
+ "username": {
+ "title": "Username",
+ "description": "Username to use to access Cassandra.",
+ "type": "string",
+ "order": 1
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with Cassandra.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "address": {
+ "title": "Address",
+ "description": "Address to connect to.",
+ "type": "string",
+ "examples": ["localhost,127.0.0.1"],
+ "order": 3
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of Cassandra.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 9042,
+ "order": 4
+ },
+ "datacenter": {
+ "title": "Datacenter",
+ "description": "Datacenter of the cassandra cluster.",
+ "type": "string",
+ "default": "datacenter1",
+ "order": 5
+ },
+ "replication": {
+ "title": "Replication factor",
+ "type": "integer",
+ "description": "Indicates to how many nodes the data should be replicated to.",
+ "default": 1,
+ "order": 6
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "e088acb6-9780-4568-880c-54c2dd7f431b",
+ "name": "Cumul.io",
+ "dockerRepository": "airbyte/destination-cumulio",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/cumulio",
+ "icon": "cumulio.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/cumulio",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Cumulio",
+ "type": "object",
+ "required": ["api_host", "api_key", "api_token"],
+ "additionalProperties": true,
+ "properties": {
+ "api_host": {
+ "title": "Cumul.io API Host URL",
+ "description": "URL of the Cumul.io API (e.g. 'https://api.cumul.io', 'https://api.us.cumul.io', or VPC-specific API url). Defaults to 'https://api.cumul.io'.",
+ "default": "https://api.cumul.io",
+ "type": "string",
+ "order": 0
+ },
+ "api_key": {
+ "title": "Cumul.io API Key",
+ "description": "An API key generated in Cumul.io's platform (can be generated here: https://app.cumul.io/start/profile/integration).",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "api_token": {
+ "title": "Cumul.io API Token",
+ "description": "The corresponding API token generated in Cumul.io's platform (can be generated here: https://app.cumul.io/start/profile/integration).",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 2
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "81740ce8-d764-4ea7-94df-16bb41de36ae",
+ "name": "Chargify (Keen)",
+ "dockerRepository": "airbyte/destination-keen",
+ "dockerImageTag": "0.2.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/keen",
+ "icon": "chargify.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/keen",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Keen Spec",
+ "type": "object",
+ "required": ["project_id", "api_key"],
+ "additionalProperties": false,
+ "properties": {
+ "project_id": {
+ "description": "To get Keen Project ID, navigate to the Access tab from the left-hand, side panel and check the Project Details section.",
+ "title": "Project ID",
+ "type": "string",
+ "examples": ["58b4acc22ba938934e888322e"]
+ },
+ "api_key": {
+ "title": "API Key",
+ "description": "To get Keen Master API Key, navigate to the Access tab from the left-hand, side panel and check the Project Details section.",
+ "type": "string",
+ "examples": ["ABCDEFGHIJKLMNOPRSTUWXYZ"],
+ "airbyte_secret": true
+ },
+ "infer_timestamp": {
+ "title": "Infer Timestamp",
+ "description": "Allow connector to guess keen.timestamp value based on the streamed data.",
+ "type": "boolean",
+ "default": true
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "ce0d828e-1dc4-496c-b122-2da42e637e48",
+ "name": "Clickhouse",
+ "dockerRepository": "airbyte/destination-clickhouse",
+ "dockerImageTag": "0.2.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/clickhouse",
+ "icon": "clickhouse.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/clickhouse",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "ClickHouse Destination Spec",
+ "type": "object",
+ "required": ["host", "port", "database", "username"],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "HTTP port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 8123,
+ "examples": ["8123"],
+ "order": 1
+ },
+ "database": {
+ "title": "DB Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 5
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL.",
+ "type": "boolean",
+ "default": false,
+ "order": 6
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [
+ {
+ "title": "No Tunnel",
+ "required": ["tunnel_method"],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "SSH Key Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "ssh_key"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Password Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "tunnel_user_password"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [
+ "overwrite",
+ "append",
+ "append_dedup"
+ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "normalizationConfig": {
+ "normalizationRepository": "airbyte/normalization-clickhouse",
+ "normalizationTag": "0.4.0",
+ "normalizationIntegrationType": "clickhouse"
+ },
+ "supportsDbt": false
+ },
+ {
+ "destinationDefinitionId": "0fb07be9-7c3b-4336-850d-5efc006152ee",
+ "name": "Cloudflare R2",
+ "dockerRepository": "airbyte/destination-r2",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/r2",
+ "icon": "cloudflare-r2.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/r2",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "R2 Destination Spec",
+ "type": "object",
+ "required": [
+ "account_id",
+ "access_key_id",
+ "secret_access_key",
+ "s3_bucket_name",
+ "s3_bucket_path",
+ "format"
+ ],
+ "properties": {
+ "account_id": {
+ "type": "string",
+ "description": "Cloudflare account ID",
+ "title": "Cloudflare account ID",
+ "examples": ["12345678aa1a1a11111aaa1234567abc"],
+ "order": 0
+ },
+ "access_key_id": {
+ "type": "string",
+ "description": "The access key ID to access the R2 bucket. Airbyte requires Read and Write permissions to the given bucket. Read more here.",
+ "title": "R2 Key ID",
+ "airbyte_secret": true,
+ "examples": ["A012345678910EXAMPLE"],
+ "order": 1
+ },
+ "secret_access_key": {
+ "type": "string",
+ "description": "The corresponding secret to the access key ID. Read more here",
+ "title": "R2 Access Key",
+ "airbyte_secret": true,
+ "examples": ["a012345678910ABCDEFGHAbCdEfGhEXAMPLEKEY"],
+ "order": 2
+ },
+ "s3_bucket_name": {
+ "title": "R2 Bucket Name",
+ "type": "string",
+ "description": "The name of the R2 bucket. Read more here.",
+ "examples": ["r2_sync"],
+ "order": 3
+ },
+ "s3_bucket_path": {
+ "title": "R2 Bucket Path",
+ "description": "Directory under the R2 bucket where data will be written.",
+ "type": "string",
+ "examples": ["data_sync/test"],
+ "order": 4
+ },
+ "format": {
+ "title": "Output Format",
+ "type": "object",
+ "description": "Format of the data output. See here for more details",
+ "oneOf": [
+ {
+ "title": "Avro: Apache Avro",
+ "required": ["format_type", "compression_codec"],
+ "properties": {
+ "format_type": {
+ "title": "Format Type",
+ "type": "string",
+ "enum": ["Avro"],
+ "default": "Avro",
+ "order": 0
+ },
+ "compression_codec": {
+ "title": "Compression Codec",
+ "description": "The compression algorithm used to compress data. Default to no compression.",
+ "type": "object",
+ "oneOf": [
+ {
+ "title": "No Compression",
+ "required": ["codec"],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": ["no compression"],
+ "default": "no compression"
+ }
+ }
+ },
+ {
+ "title": "Deflate",
+ "required": ["codec", "compression_level"],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": ["Deflate"],
+ "default": "Deflate"
+ },
+ "compression_level": {
+ "title": "Deflate Level",
+ "description": "0: no compression & fastest, 9: best compression & slowest.",
+ "type": "integer",
+ "default": 0,
+ "minimum": 0,
+ "maximum": 9
+ }
+ }
+ },
+ {
+ "title": "bzip2",
+ "required": ["codec"],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": ["bzip2"],
+ "default": "bzip2"
+ }
+ }
+ },
+ {
+ "title": "xz",
+ "required": ["codec", "compression_level"],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": ["xz"],
+ "default": "xz"
+ },
+ "compression_level": {
+ "title": "Compression Level",
+ "description": "See here for details.",
+ "type": "integer",
+ "default": 6,
+ "minimum": 0,
+ "maximum": 9
+ }
+ }
+ },
+ {
+ "title": "zstandard",
+ "required": ["codec", "compression_level"],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": ["zstandard"],
+ "default": "zstandard"
+ },
+ "compression_level": {
+ "title": "Compression Level",
+ "description": "Negative levels are 'fast' modes akin to lz4 or snappy, levels above 9 are generally for archival purposes, and levels above 18 use a lot of memory.",
+ "type": "integer",
+ "default": 3,
+ "minimum": -5,
+ "maximum": 22
+ },
+ "include_checksum": {
+ "title": "Include Checksum",
+ "description": "If true, include a checksum with each data block.",
+ "type": "boolean",
+ "default": false
+ }
+ }
+ },
+ {
+ "title": "snappy",
+ "required": ["codec"],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": ["snappy"],
+ "default": "snappy"
+ }
+ }
+ }
+ ],
+ "order": 1
+ }
+ }
+ },
+ {
+ "title": "CSV: Comma-Separated Values",
+ "required": ["format_type", "flattening"],
+ "properties": {
+ "format_type": {
+ "title": "Format Type",
+ "type": "string",
+ "enum": ["CSV"],
+ "default": "CSV"
+ },
+ "flattening": {
+ "type": "string",
+ "title": "Normalization (Flattening)",
+ "description": "Whether the input json data should be normalized (flattened) in the output CSV. Please refer to docs for details.",
+ "default": "No flattening",
+ "enum": ["No flattening", "Root level flattening"]
+ },
+ "compression": {
+ "title": "Compression",
+ "type": "object",
+ "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".csv.gz\").",
+ "oneOf": [
+ {
+ "title": "No Compression",
+ "requires": ["compression_type"],
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": ["No Compression"],
+ "default": "No Compression"
+ }
+ }
+ },
+ {
+ "title": "GZIP",
+ "requires": ["compression_type"],
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": ["GZIP"],
+ "default": "GZIP"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "title": "JSON Lines: Newline-delimited JSON",
+ "required": ["format_type"],
+ "properties": {
+ "format_type": {
+ "title": "Format Type",
+ "type": "string",
+ "enum": ["JSONL"],
+ "default": "JSONL"
+ },
+ "compression": {
+ "title": "Compression",
+ "type": "object",
+ "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".jsonl.gz\").",
+ "oneOf": [
+ {
+ "title": "No Compression",
+ "requires": "compression_type",
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": ["No Compression"],
+ "default": "No Compression"
+ }
+ }
+ },
+ {
+ "title": "GZIP",
+ "requires": "compression_type",
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": ["GZIP"],
+ "default": "GZIP"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "order": 5
+ },
+ "s3_path_format": {
+ "title": "R2 Path Format",
+ "description": "Format string on how data will be organized inside the R2 bucket directory. Read more here",
+ "type": "string",
+ "examples": [
+ "${NAMESPACE}/${STREAM_NAME}/${YEAR}_${MONTH}_${DAY}_${EPOCH}_"
+ ],
+ "order": 6
+ },
+ "file_name_pattern": {
+ "type": "string",
+ "description": "The pattern allows you to set the file-name format for the R2 staging file(s)",
+ "title": "R2 Filename pattern",
+ "examples": [
+ "{date}",
+ "{date:yyyy_MM}",
+ "{timestamp}",
+ "{part_number}",
+ "{sync_id}"
+ ],
+ "order": 7
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "3eb4d99c-11fa-4561-a259-fc88e0c2f8f4",
+ "name": "Convex",
+ "dockerRepository": "airbyte/destination-convex",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.io/integrations/destinations/convex",
+ "icon": "convex.svg",
+ "spec": {
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Convex",
+ "type": "object",
+ "required": ["deployment_url", "access_key"],
+ "properties": {
+ "deployment_url": {
+ "type": "string",
+ "title": "Deployment Url",
+ "examples": [
+ "https://murky-swan-635.convex.cloud",
+ "https://cluttered-owl-337.convex.cloud"
+ ]
+ },
+ "access_key": {
+ "type": "string",
+ "title": "Access Key",
+ "description": "API access key used to retrieve data from Convex.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [
+ "overwrite",
+ "append",
+ "append_dedup"
+ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "4528e960-6f7b-4412-8555-7e0097e1da17",
+ "name": "Starburst Galaxy",
+ "dockerRepository": "airbyte/destination-starburst-galaxy",
+ "dockerImageTag": "0.0.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/starburst-galaxy",
+ "icon": "starburst-galaxy.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/starburst-galaxy",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Starburst Galaxy Destination Spec",
+ "type": "object",
+ "required": [
+ "accept_terms",
+ "server_hostname",
+ "username",
+ "password",
+ "catalog",
+ "staging_object_store"
+ ],
+ "properties": {
+ "accept_terms": {
+ "title": "Agree to the Starburst Galaxy terms & conditions",
+ "type": "boolean",
+ "description": "You must agree to the Starburst Galaxy terms & conditions to use this connector.",
+ "default": false,
+ "order": 1
+ },
+ "server_hostname": {
+ "title": "Hostname",
+ "type": "string",
+ "description": "Starburst Galaxy cluster hostname.",
+ "examples": ["abc-12345678-wxyz.trino.galaxy-demo.io"],
+ "order": 2
+ },
+ "port": {
+ "title": "Port",
+ "type": "string",
+ "description": "Starburst Galaxy cluster port.",
+ "default": "443",
+ "examples": ["443"],
+ "order": 3
+ },
+ "username": {
+ "title": "User",
+ "type": "string",
+ "description": "Starburst Galaxy user.",
+ "examples": ["user@example.com"],
+ "order": 4
+ },
+ "password": {
+ "title": "Password",
+ "type": "string",
+ "description": "Starburst Galaxy password for the specified user.",
+ "examples": ["password"],
+ "airbyte_secret": true,
+ "order": 5
+ },
+ "catalog": {
+ "title": "Amazon S3 catalog",
+ "type": "string",
+ "description": "Name of the Starburst Galaxy Amazon S3 catalog.",
+ "examples": ["sample_s3_catalog"],
+ "order": 6
+ },
+ "catalog_schema": {
+ "title": "Amazon S3 catalog schema",
+ "type": "string",
+ "description": "The default Starburst Galaxy Amazon S3 catalog schema where tables are written to if the source does not specify a namespace. Defaults to \"public\".",
+ "default": "public",
+ "examples": ["public"],
+ "order": 7
+ },
+ "staging_object_store": {
+ "title": "Staging object store",
+ "type": "object",
+ "description": "Temporary storage on which temporary Iceberg table is created.",
+ "oneOf": [
+ {
+ "title": "Amazon S3",
+ "required": [
+ "object_store_type",
+ "s3_bucket_name",
+ "s3_bucket_path",
+ "s3_bucket_region",
+ "s3_access_key_id",
+ "s3_secret_access_key"
+ ],
+ "properties": {
+ "object_store_type": {
+ "type": "string",
+ "enum": ["S3"],
+ "default": "S3",
+ "order": 1
+ },
+ "s3_bucket_name": {
+ "title": "S3 bucket name",
+ "type": "string",
+ "description": "Name of the S3 bucket",
+ "examples": ["airbyte_staging"],
+ "order": 1
+ },
+ "s3_bucket_path": {
+ "title": "S3 bucket path",
+ "type": "string",
+ "description": "Directory in the S3 bucket where staging data is stored.",
+ "examples": ["temp_airbyte__sync/test"],
+ "order": 2
+ },
+ "s3_bucket_region": {
+ "title": "S3 bucket region",
+ "type": "string",
+ "default": "us-east-1",
+ "description": "The region of the S3 bucket.",
+ "enum": [
+ "ap-northeast-1",
+ "ap-southeast-1",
+ "ap-southeast-2",
+ "ca-central-1",
+ "eu-central-1",
+ "eu-west-1",
+ "eu-west-2",
+ "eu-west-3",
+ "us-east-1",
+ "us-east-2",
+ "us-west-1",
+ "us-west-2"
+ ],
+ "order": 3
+ },
+ "s3_access_key_id": {
+ "title": "Access key",
+ "type": "string",
+ "description": "Access key with access to the bucket. Airbyte requires read and write permissions to a given bucket.",
+ "examples": ["A012345678910EXAMPLE"],
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "s3_secret_access_key": {
+ "title": "Secret key",
+ "type": "string",
+ "description": "Secret key used with the specified access key.",
+ "examples": ["a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY"],
+ "airbyte_secret": true,
+ "order": 5
+ }
+ }
+ }
+ ],
+ "order": 8
+ },
+ "purge_staging_table": {
+ "title": "Purge staging Iceberg table",
+ "type": "boolean",
+ "description": "Defaults to 'true'. Switch to 'false' for debugging purposes.",
+ "default": true,
+ "order": 9
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "072d5540-f236-4294-ba7c-ade8fd918496",
+ "name": "Databricks Lakehouse",
+ "dockerRepository": "airbyte/destination-databricks",
+ "dockerImageTag": "1.0.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/databricks",
+ "icon": "databricks.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/databricks",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Databricks Lakehouse Destination Spec",
+ "type": "object",
+ "required": [
+ "accept_terms",
+ "databricks_server_hostname",
+ "databricks_http_path",
+ "databricks_personal_access_token",
+ "data_source"
+ ],
+ "properties": {
+ "accept_terms": {
+ "title": "Agree to the Databricks JDBC Driver Terms & Conditions",
+ "type": "boolean",
+ "description": "You must agree to the Databricks JDBC Driver Terms & Conditions to use this connector.",
+ "default": false,
+ "order": 1
+ },
+ "databricks_server_hostname": {
+ "title": "Server Hostname",
+ "type": "string",
+ "description": "Databricks Cluster Server Hostname.",
+ "examples": ["abc-12345678-wxyz.cloud.databricks.com"],
+ "order": 2
+ },
+ "databricks_http_path": {
+ "title": "HTTP Path",
+ "type": "string",
+ "description": "Databricks Cluster HTTP Path.",
+ "examples": ["sql/protocolvx/o/1234567489/0000-1111111-abcd90"],
+ "order": 3
+ },
+ "databricks_port": {
+ "title": "Port",
+ "type": "string",
+ "description": "Databricks Cluster Port.",
+ "default": "443",
+ "examples": ["443"],
+ "order": 4
+ },
+ "databricks_personal_access_token": {
+ "title": "Access Token",
+ "type": "string",
+ "description": "Databricks Personal Access Token for making authenticated requests.",
+ "examples": ["dapi0123456789abcdefghij0123456789AB"],
+ "airbyte_secret": true,
+ "order": 5
+ },
+ "database": {
+ "title": "Databricks catalog",
+ "description": "The name of the catalog. If not specified otherwise, the \"hive_metastore\" will be used.",
+ "type": "string",
+ "order": 6
+ },
+ "schema": {
+ "title": "Default Schema",
+ "description": "The default schema tables are written. If not specified otherwise, the \"default\" will be used.",
+ "type": "string",
+ "examples": ["default"],
+ "default": "default",
+ "order": 7
+ },
+ "data_source": {
+ "title": "Data Source",
+ "type": "object",
+ "description": "Storage on which the delta lake is built.",
+ "default": "MANAGED_TABLES_STORAGE",
+ "order": 8,
+ "oneOf": [
+ {
+ "title": "[Recommended] Managed tables",
+ "required": ["data_source_type"],
+ "properties": {
+ "data_source_type": {
+ "type": "string",
+ "const": "MANAGED_TABLES_STORAGE",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "Amazon S3",
+ "required": [
+ "data_source_type",
+ "s3_bucket_name",
+ "s3_bucket_path",
+ "s3_bucket_region",
+ "s3_access_key_id",
+ "s3_secret_access_key"
+ ],
+ "properties": {
+ "data_source_type": {
+ "type": "string",
+ "const": "S3_STORAGE",
+ "order": 1
+ },
+ "s3_bucket_name": {
+ "title": "S3 Bucket Name",
+ "type": "string",
+ "description": "The name of the S3 bucket to use for intermittent staging of the data.",
+ "examples": ["airbyte.staging"],
+ "order": 2
+ },
+ "s3_bucket_path": {
+ "title": "S3 Bucket Path",
+ "type": "string",
+ "description": "The directory under the S3 bucket where data will be written.",
+ "examples": ["data_sync/test"],
+ "order": 3
+ },
+ "s3_bucket_region": {
+ "title": "S3 Bucket Region",
+ "type": "string",
+ "default": "",
+ "description": "The region of the S3 staging bucket to use if utilising a copy strategy.",
+ "enum": [
+ "",
+ "us-east-1",
+ "us-east-2",
+ "us-west-1",
+ "us-west-2",
+ "af-south-1",
+ "ap-east-1",
+ "ap-south-1",
+ "ap-northeast-1",
+ "ap-northeast-2",
+ "ap-northeast-3",
+ "ap-southeast-1",
+ "ap-southeast-2",
+ "ca-central-1",
+ "cn-north-1",
+ "cn-northwest-1",
+ "eu-central-1",
+ "eu-north-1",
+ "eu-south-1",
+ "eu-west-1",
+ "eu-west-2",
+ "eu-west-3",
+ "sa-east-1",
+ "me-south-1",
+ "us-gov-east-1",
+ "us-gov-west-1"
+ ],
+ "order": 4
+ },
+ "s3_access_key_id": {
+ "type": "string",
+ "description": "The Access Key Id granting allow one to access the above S3 staging bucket. Airbyte requires Read and Write permissions to the given bucket.",
+ "title": "S3 Access Key ID",
+ "examples": ["A012345678910EXAMPLE"],
+ "airbyte_secret": true,
+ "order": 5
+ },
+ "s3_secret_access_key": {
+ "title": "S3 Secret Access Key",
+ "type": "string",
+ "description": "The corresponding secret to the above access key id.",
+ "examples": ["a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY"],
+ "airbyte_secret": true,
+ "order": 6
+ },
+ "file_name_pattern": {
+ "type": "string",
+ "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
+ "title": "S3 Filename pattern",
+ "examples": [
+ "{date}",
+ "{date:yyyy_MM}",
+ "{timestamp}",
+ "{part_number}",
+ "{sync_id}"
+ ],
+ "order": 7
+ }
+ }
+ },
+ {
+ "title": "Azure Blob Storage",
+ "required": [
+ "data_source_type",
+ "azure_blob_storage_account_name",
+ "azure_blob_storage_container_name",
+ "azure_blob_storage_sas_token"
+ ],
+ "properties": {
+ "data_source_type": {
+ "type": "string",
+ "const": "AZURE_BLOB_STORAGE",
+ "order": 0
+ },
+ "azure_blob_storage_endpoint_domain_name": {
+ "title": "Endpoint Domain Name",
+ "type": "string",
+ "default": "blob.core.windows.net",
+ "description": "This is Azure Blob Storage endpoint domain name. Leave default value (or leave it empty if run container from command line) to use Microsoft native from example.",
+ "examples": ["blob.core.windows.net"],
+ "order": 1
+ },
+ "azure_blob_storage_account_name": {
+ "title": "Azure Blob Storage Account Name",
+ "type": "string",
+ "description": "The account's name of the Azure Blob Storage.",
+ "examples": ["airbyte5storage"],
+ "order": 2
+ },
+ "azure_blob_storage_container_name": {
+ "title": "Azure Blob Storage Container Name",
+ "type": "string",
+ "description": "The name of the Azure blob storage container.",
+ "examples": ["airbytetestcontainername"],
+ "order": 3
+ },
+ "azure_blob_storage_sas_token": {
+ "title": "SAS Token",
+ "type": "string",
+ "airbyte_secret": true,
+ "description": "Shared access signature (SAS) token to grant limited access to objects in your storage account.",
+ "examples": [
+ "?sv=2016-05-31&ss=b&srt=sco&sp=rwdl&se=2018-06-27T10:05:50Z&st=2017-06-27T02:05:50Z&spr=https,http&sig=bgqQwoXwxzuD2GJfagRg7VOS8hzNr3QLT7rhS8OFRLQ%3D"
+ ],
+ "order": 4
+ }
+ }
+ }
+ ]
+ },
+ "purge_staging_data": {
+ "title": "Purge Staging Files and Tables",
+ "type": "boolean",
+ "description": "Default to 'true'. Switch it to 'false' for debugging purpose.",
+ "default": true,
+ "order": 9
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "8ccd8909-4e99-4141-b48d-4984b70b2d89",
+ "name": "DynamoDB",
+ "dockerRepository": "airbyte/destination-dynamodb",
+ "dockerImageTag": "0.1.7",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/dynamodb",
+ "icon": "dynamodb.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/dynamodb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "DynamoDB Destination Spec",
+ "type": "object",
+ "required": [
+ "dynamodb_table_name_prefix",
+ "dynamodb_region",
+ "access_key_id",
+ "secret_access_key"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "dynamodb_endpoint": {
+ "title": "Endpoint",
+ "type": "string",
+ "default": "",
+ "description": "This is your DynamoDB endpoint url.(if you are working with AWS DynamoDB, just leave empty).",
+ "examples": ["http://localhost:9000"]
+ },
+ "dynamodb_table_name_prefix": {
+ "title": "Table name prefix",
+ "type": "string",
+ "description": "The prefix to use when naming DynamoDB tables.",
+ "examples": ["airbyte_sync"]
+ },
+ "dynamodb_region": {
+ "title": "DynamoDB Region",
+ "type": "string",
+ "default": "",
+ "description": "The region of the DynamoDB.",
+ "enum": [
+ "",
+ "us-east-1",
+ "us-east-2",
+ "us-west-1",
+ "us-west-2",
+ "af-south-1",
+ "ap-east-1",
+ "ap-south-1",
+ "ap-northeast-1",
+ "ap-northeast-2",
+ "ap-northeast-3",
+ "ap-southeast-1",
+ "ap-southeast-2",
+ "ca-central-1",
+ "cn-north-1",
+ "cn-northwest-1",
+ "eu-central-1",
+ "eu-north-1",
+ "eu-south-1",
+ "eu-west-1",
+ "eu-west-2",
+ "eu-west-3",
+ "sa-east-1",
+ "me-south-1",
+ "us-gov-east-1",
+ "us-gov-west-1"
+ ]
+ },
+ "access_key_id": {
+ "type": "string",
+ "description": "The access key id to access the DynamoDB. Airbyte requires Read and Write permissions to the DynamoDB.",
+ "title": "DynamoDB Key Id",
+ "airbyte_secret": true,
+ "examples": ["A012345678910EXAMPLE"]
+ },
+ "secret_access_key": {
+ "type": "string",
+ "description": "The corresponding secret to the access key id.",
+ "title": "DynamoDB Access Key",
+ "airbyte_secret": true,
+ "examples": ["a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY"]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "2eb65e87-983a-4fd7-b3e3-9d9dc6eb8537",
+ "name": "E2E Testing",
+ "dockerRepository": "airbyte/destination-e2e-test",
+ "dockerImageTag": "0.2.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/e2e-test",
+ "icon": "airbyte.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/e2e-test",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "E2E Test Destination Spec",
+ "type": "object",
+ "oneOf": [
+ {
+ "title": "Logging",
+ "required": ["type", "logging_config"],
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "LOGGING",
+ "default": "LOGGING"
+ },
+ "logging_config": {
+ "title": "Logging Configuration",
+ "type": "object",
+ "description": "Configurate how the messages are logged.",
+ "oneOf": [
+ {
+ "title": "First N Entries",
+ "description": "Log first N entries per stream.",
+ "type": "object",
+ "required": ["logging_type", "max_entry_count"],
+ "properties": {
+ "logging_type": {
+ "type": "string",
+ "enum": ["FirstN"],
+ "default": "FirstN"
+ },
+ "max_entry_count": {
+ "title": "N",
+ "description": "Number of entries to log. This destination is for testing only. So it won't make sense to log infinitely. The maximum is 1,000 entries.",
+ "type": "number",
+ "default": 100,
+ "examples": [100],
+ "minimum": 1,
+ "maximum": 1000
+ }
+ }
+ },
+ {
+ "title": "Every N-th Entry",
+ "description": "For each stream, log every N-th entry with a maximum cap.",
+ "type": "object",
+ "required": [
+ "logging_type",
+ "nth_entry_to_log",
+ "max_entry_count"
+ ],
+ "properties": {
+ "logging_type": {
+ "type": "string",
+ "enum": ["EveryNth"],
+ "default": "EveryNth"
+ },
+ "nth_entry_to_log": {
+ "title": "N",
+ "description": "The N-th entry to log for each stream. N starts from 1. For example, when N = 1, every entry is logged; when N = 2, every other entry is logged; when N = 3, one out of three entries is logged.",
+ "type": "number",
+ "example": [3],
+ "minimum": 1,
+ "maximum": 1000
+ },
+ "max_entry_count": {
+ "title": "Max Log Entries",
+ "description": "Max number of entries to log. This destination is for testing only. So it won't make sense to log infinitely. The maximum is 1,000 entries.",
+ "type": "number",
+ "default": 100,
+ "examples": [100],
+ "minimum": 1,
+ "maximum": 1000
+ }
+ }
+ },
+ {
+ "title": "Random Sampling",
+ "description": "For each stream, randomly log a percentage of the entries with a maximum cap.",
+ "type": "object",
+ "required": [
+ "logging_type",
+ "sampling_ratio",
+ "max_entry_count"
+ ],
+ "properties": {
+ "logging_type": {
+ "type": "string",
+ "enum": ["RandomSampling"],
+ "default": "RandomSampling"
+ },
+ "sampling_ratio": {
+ "title": "Sampling Ratio",
+ "description": "A positive floating number smaller than 1.",
+ "type": "number",
+ "default": 0.001,
+ "examples": [0.001],
+ "minimum": 0,
+ "maximum": 1
+ },
+ "seed": {
+ "title": "Random Number Generator Seed",
+ "description": "When the seed is unspecified, the current time millis will be used as the seed.",
+ "type": "number",
+ "examples": [1900]
+ },
+ "max_entry_count": {
+ "title": "Max Log Entries",
+ "description": "Max number of entries to log. This destination is for testing only. So it won't make sense to log infinitely. The maximum is 1,000 entries.",
+ "type": "number",
+ "default": 100,
+ "examples": [100],
+ "minimum": 1,
+ "maximum": 1000
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "title": "Silent",
+ "required": ["type"],
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "SILENT",
+ "default": "SILENT"
+ }
+ }
+ },
+ {
+ "title": "Throttled",
+ "required": ["type", "millis_per_record"],
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "THROTTLED",
+ "default": "THROTTLED"
+ },
+ "millis_per_record": {
+ "description": "Number of milli-second to pause in between records.",
+ "type": "integer"
+ }
+ }
+ },
+ {
+ "title": "Failing",
+ "required": ["type", "num_messages"],
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "FAILING",
+ "default": "FAILING"
+ },
+ "num_messages": {
+ "description": "Number of messages after which to fail.",
+ "type": "integer"
+ }
+ }
+ }
+ ]
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false
+ },
+ {
+ "destinationDefinitionId": "68f351a7-2745-4bef-ad7f-996b8e51bb8c",
+ "name": "ElasticSearch",
+ "dockerRepository": "airbyte/destination-elasticsearch",
+ "dockerImageTag": "0.1.6",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/elasticsearch",
+ "icon": "elasticsearch.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/elasticsearch",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Elasticsearch Connection Configuration",
+ "type": "object",
+ "required": ["endpoint"],
+ "additionalProperties": false,
+ "properties": {
+ "endpoint": {
+ "title": "Server Endpoint",
+ "type": "string",
+ "description": "The full url of the Elasticsearch server"
+ },
+ "upsert": {
+ "type": "boolean",
+ "title": "Upsert Records",
+ "description": "If a primary key identifier is defined in the source, an upsert will be performed using the primary key value as the elasticsearch doc id. Does not support composite primary keys.",
+ "default": true
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true
+ },
+ "authenticationMethod": {
+ "title": "Authentication Method",
+ "type": "object",
+ "description": "The type of authentication to be used",
+ "oneOf": [
+ {
+ "title": "None",
+ "additionalProperties": false,
+ "description": "No authentication will be used",
+ "required": ["method"],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "none"
+ }
+ }
+ },
+ {
+ "title": "Api Key/Secret",
+ "additionalProperties": false,
+ "description": "Use a api key and secret combination to authenticate",
+ "required": ["method", "apiKeyId", "apiKeySecret"],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "secret"
+ },
+ "apiKeyId": {
+ "title": "API Key ID",
+ "description": "The Key ID to used when accessing an enterprise Elasticsearch instance.",
+ "type": "string"
+ },
+ "apiKeySecret": {
+ "title": "API Key Secret",
+ "description": "The secret associated with the API Key ID.",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "Username/Password",
+ "additionalProperties": false,
+ "description": "Basic auth header with a username and password",
+ "required": ["method", "username", "password"],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "basic"
+ },
+ "username": {
+ "title": "Username",
+ "description": "Basic auth username to access a secure Elasticsearch server",
+ "type": "string"
+ },
+ "password": {
+ "title": "Password",
+ "description": "Basic auth password to access a secure Elasticsearch server",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [
+ {
+ "title": "No Tunnel",
+ "required": ["tunnel_method"],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "SSH Key Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "ssh_key"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Password Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "tunnel_user_password"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"],
+ "supportsNamespaces": true
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "bb6071d9-6f34-4766-bec2-d1d4ed81a653",
+ "name": "Exasol",
+ "dockerRepository": "airbyte/destination-exasol",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/exasol",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/exasol",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Exasol Destination Spec",
+ "type": "object",
+ "required": ["host", "port", "username", "schema"],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 8563,
+ "examples": ["8563"],
+ "order": 1
+ },
+ "certificateFingerprint": {
+ "title": "Certificate Fingerprint",
+ "description": "Fingerprint of the Exasol server's TLS certificate",
+ "type": "string",
+ "examples": ["ABC123..."],
+ "order": 2
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "schema": {
+ "title": "Schema Name",
+ "description": "Schema Name",
+ "type": "string",
+ "order": 5
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol ';'. (example: key1=value1;key2=value2;key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 6
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "18081484-02a5-4662-8dba-b270b582f321",
+ "name": "Firebolt",
+ "dockerRepository": "airbyte/destination-firebolt",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/firebolt",
+ "icon": "firebolt.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/firebolt",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Firebolt Spec",
+ "type": "object",
+ "required": ["username", "password", "database"],
+ "additionalProperties": false,
+ "properties": {
+ "username": {
+ "type": "string",
+ "title": "Username",
+ "description": "Firebolt email address you use to login.",
+ "examples": ["username@email.com"],
+ "order": 0
+ },
+ "password": {
+ "type": "string",
+ "title": "Password",
+ "description": "Firebolt password.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "account": {
+ "type": "string",
+ "title": "Account",
+ "description": "Firebolt account to login."
+ },
+ "host": {
+ "type": "string",
+ "title": "Host",
+ "description": "The host name of your Firebolt database.",
+ "examples": ["api.app.firebolt.io"]
+ },
+ "database": {
+ "type": "string",
+ "title": "Database",
+ "description": "The database to connect to."
+ },
+ "engine": {
+ "type": "string",
+ "title": "Engine",
+ "description": "Engine name or url to connect to."
+ },
+ "loading_method": {
+ "type": "object",
+ "title": "Loading Method",
+ "description": "Loading method used to select the way data will be uploaded to Firebolt",
+ "oneOf": [
+ {
+ "title": "SQL Inserts",
+ "additionalProperties": false,
+ "required": ["method"],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "SQL"
+ }
+ }
+ },
+ {
+ "title": "External Table via S3",
+ "additionalProperties": false,
+ "required": [
+ "method",
+ "s3_bucket",
+ "s3_region",
+ "aws_key_id",
+ "aws_key_secret"
+ ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "S3"
+ },
+ "s3_bucket": {
+ "type": "string",
+ "title": "S3 bucket name",
+ "description": "The name of the S3 bucket."
+ },
+ "s3_region": {
+ "type": "string",
+ "title": "S3 region name",
+ "description": "Region name of the S3 bucket.",
+ "examples": ["us-east-1"]
+ },
+ "aws_key_id": {
+ "type": "string",
+ "title": "AWS Key ID",
+ "airbyte_secret": true,
+ "description": "AWS access key granting read and write access to S3."
+ },
+ "aws_key_secret": {
+ "type": "string",
+ "title": "AWS Key Secret",
+ "airbyte_secret": true,
+ "description": "Corresponding secret part of the AWS Key"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "supportsDbt": true
+ },
+ {
+ "destinationDefinitionId": "ca8f6566-e555-4b40-943a-545bf123117a",
+ "name": "Google Cloud Storage (GCS)",
+ "dockerRepository": "airbyte/destination-gcs",
+ "dockerImageTag": "0.2.16",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/gcs",
+ "icon": "googlecloudstorage.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/gcs",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "GCS Destination Spec",
+ "type": "object",
+ "required": [
+ "gcs_bucket_name",
+ "gcs_bucket_path",
+ "credential",
+ "format"
+ ],
+ "properties": {
+ "gcs_bucket_name": {
+ "title": "GCS Bucket Name",
+ "order": 1,
+ "type": "string",
+ "description": "You can find the bucket name in the App Engine Admin console Application Settings page, under the label Google Cloud Storage Bucket. Read more here.",
+ "examples": ["airbyte_sync"]
+ },
+ "gcs_bucket_path": {
+ "title": "GCS Bucket Path",
+ "description": "GCS Bucket Path string Subdirectory under the above bucket to sync the data into.",
+ "order": 2,
+ "type": "string",
+ "examples": ["data_sync/test"]
+ },
+ "gcs_bucket_region": {
+ "title": "GCS Bucket Region",
+ "type": "string",
+ "order": 3,
+ "default": "us",
+ "description": "Select a Region of the GCS Bucket. Read more here.",
+ "enum": [
+ "northamerica-northeast1",
+ "northamerica-northeast2",
+ "us-central1",
+ "us-east1",
+ "us-east4",
+ "us-west1",
+ "us-west2",
+ "us-west3",
+ "us-west4",
+ "southamerica-east1",
+ "southamerica-west1",
+ "europe-central2",
+ "europe-north1",
+ "europe-west1",
+ "europe-west2",
+ "europe-west3",
+ "europe-west4",
+ "europe-west6",
+ "asia-east1",
+ "asia-east2",
+ "asia-northeast1",
+ "asia-northeast2",
+ "asia-northeast3",
+ "asia-south1",
+ "asia-south2",
+ "asia-southeast1",
+ "asia-southeast2",
+ "australia-southeast1",
+ "australia-southeast2",
+ "asia",
+ "eu",
+ "us",
+ "asia1",
+ "eur4",
+ "nam4"
+ ]
+ },
+ "credential": {
+ "title": "Authentication",
+ "description": "An HMAC key is a type of credential and can be associated with a service account or a user account in Cloud Storage. Read more here.",
+ "type": "object",
+ "order": 0,
+ "oneOf": [
+ {
+ "title": "HMAC Key",
+ "required": [
+ "credential_type",
+ "hmac_key_access_id",
+ "hmac_key_secret"
+ ],
+ "properties": {
+ "credential_type": {
+ "type": "string",
+ "enum": ["HMAC_KEY"],
+ "default": "HMAC_KEY"
+ },
+ "hmac_key_access_id": {
+ "type": "string",
+ "description": "When linked to a service account, this ID is 61 characters long; when linked to a user account, it is 24 characters long. Read more here.",
+ "title": "Access ID",
+ "airbyte_secret": true,
+ "order": 0,
+ "examples": ["1234567890abcdefghij1234"]
+ },
+ "hmac_key_secret": {
+ "type": "string",
+ "description": "The corresponding secret for the access ID. It is a 40-character base-64 encoded string. Read more here.",
+ "title": "Secret",
+ "airbyte_secret": true,
+ "order": 1,
+ "examples": ["1234567890abcdefghij1234567890ABCDEFGHIJ"]
+ }
+ }
+ }
+ ]
+ },
+ "format": {
+ "title": "Output Format",
+ "type": "object",
+ "description": "Output data format. One of the following formats must be selected - AVRO format, PARQUET format, CSV format, or JSONL format.",
+ "order": 4,
+ "oneOf": [
+ {
+ "title": "Avro: Apache Avro",
+ "required": ["format_type", "compression_codec"],
+ "properties": {
+ "format_type": {
+ "type": "string",
+ "enum": ["Avro"],
+ "default": "Avro"
+ },
+ "compression_codec": {
+ "title": "Compression Codec",
+ "description": "The compression algorithm used to compress data. Default to no compression.",
+ "type": "object",
+ "oneOf": [
+ {
+ "title": "No Compression",
+ "required": ["codec"],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": ["no compression"],
+ "default": "no compression"
+ }
+ }
+ },
+ {
+ "title": "Deflate",
+ "required": ["codec"],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": ["Deflate"],
+ "default": "Deflate"
+ },
+ "compression_level": {
+ "title": "Deflate level",
+ "description": "0: no compression & fastest, 9: best compression & slowest.",
+ "type": "integer",
+ "default": 0,
+ "minimum": 0,
+ "maximum": 9
+ }
+ }
+ },
+ {
+ "title": "bzip2",
+ "required": ["codec"],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": ["bzip2"],
+ "default": "bzip2"
+ }
+ }
+ },
+ {
+ "title": "xz",
+ "required": ["codec"],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": ["xz"],
+ "default": "xz"
+ },
+ "compression_level": {
+ "title": "Compression Level",
+ "description": "The presets 0-3 are fast presets with medium compression. The presets 4-6 are fairly slow presets with high compression. The default preset is 6. The presets 7-9 are like the preset 6 but use bigger dictionaries and have higher compressor and decompressor memory requirements. Unless the uncompressed size of the file exceeds 8 MiB, 16 MiB, or 32 MiB, it is waste of memory to use the presets 7, 8, or 9, respectively. Read more here for details.",
+ "type": "integer",
+ "default": 6,
+ "minimum": 0,
+ "maximum": 9
+ }
+ }
+ },
+ {
+ "title": "zstandard",
+ "required": ["codec"],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": ["zstandard"],
+ "default": "zstandard"
+ },
+ "compression_level": {
+ "title": "Compression Level",
+ "description": "Negative levels are 'fast' modes akin to lz4 or snappy, levels above 9 are generally for archival purposes, and levels above 18 use a lot of memory.",
+ "type": "integer",
+ "default": 3,
+ "minimum": -5,
+ "maximum": 22
+ },
+ "include_checksum": {
+ "title": "Include Checksum",
+ "description": "If true, include a checksum with each data block.",
+ "type": "boolean",
+ "default": false
+ }
+ }
+ },
+ {
+ "title": "snappy",
+ "required": ["codec"],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": ["snappy"],
+ "default": "snappy"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "title": "CSV: Comma-Separated Values",
+ "required": ["format_type"],
+ "properties": {
+ "format_type": {
+ "type": "string",
+ "enum": ["CSV"],
+ "default": "CSV"
+ },
+ "flattening": {
+ "type": "string",
+ "title": "Normalization",
+ "description": "Whether the input JSON data should be normalized (flattened) in the output CSV. Please refer to docs for details.",
+ "default": "No flattening",
+ "enum": ["No flattening", "Root level flattening"]
+ },
+ "compression": {
+ "title": "Compression",
+ "type": "object",
+ "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".csv.gz\").",
+ "oneOf": [
+ {
+ "title": "No Compression",
+ "requires": ["compression_type"],
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": ["No Compression"],
+ "default": "No Compression"
+ }
+ }
+ },
+ {
+ "title": "GZIP",
+ "requires": ["compression_type"],
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": ["GZIP"],
+ "default": "GZIP"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "title": "JSON Lines: newline-delimited JSON",
+ "required": ["format_type"],
+ "properties": {
+ "format_type": {
+ "type": "string",
+ "enum": ["JSONL"],
+ "default": "JSONL"
+ },
+ "compression": {
+ "title": "Compression",
+ "type": "object",
+ "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".jsonl.gz\").",
+ "oneOf": [
+ {
+ "title": "No Compression",
+ "requires": "compression_type",
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": ["No Compression"],
+ "default": "No Compression"
+ }
+ }
+ },
+ {
+ "title": "GZIP",
+ "requires": "compression_type",
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": ["GZIP"],
+ "default": "GZIP"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "title": "Parquet: Columnar Storage",
+ "required": ["format_type"],
+ "properties": {
+ "format_type": {
+ "type": "string",
+ "enum": ["Parquet"],
+ "default": "Parquet"
+ },
+ "compression_codec": {
+ "title": "Compression Codec",
+ "description": "The compression algorithm used to compress data pages.",
+ "type": "string",
+ "default": "UNCOMPRESSED",
+ "enum": [
+ "UNCOMPRESSED",
+ "SNAPPY",
+ "GZIP",
+ "LZO",
+ "BROTLI",
+ "LZ4",
+ "ZSTD"
+ ]
+ },
+ "block_size_mb": {
+ "title": "Block Size (Row Group Size) (MB)",
+ "description": "This is the size of a row group being buffered in memory. It limits the memory usage when writing. Larger values will improve the IO when reading, but consume more memory when writing. Default: 128 MB.",
+ "type": "integer",
+ "default": 128,
+ "examples": [128]
+ },
+ "max_padding_size_mb": {
+ "title": "Max Padding Size (MB)",
+ "description": "Maximum size allowed as padding to align row groups. This is also the minimum size of a row group. Default: 8 MB.",
+ "type": "integer",
+ "default": 8,
+ "examples": [8]
+ },
+ "page_size_kb": {
+ "title": "Page Size (KB)",
+ "description": "The page size is for compression. A block is composed of pages. A page is the smallest unit that must be read fully to access a single record. If this value is too small, the compression will deteriorate. Default: 1024 KB.",
+ "type": "integer",
+ "default": 1024,
+ "examples": [1024]
+ },
+ "dictionary_page_size_kb": {
+ "title": "Dictionary Page Size (KB)",
+ "description": "There is one dictionary page per column per row group when dictionary encoding is used. The dictionary page size works like the page size but for dictionary. Default: 1024 KB.",
+ "type": "integer",
+ "default": 1024,
+ "examples": [1024]
+ },
+ "dictionary_encoding": {
+ "title": "Dictionary Encoding",
+ "description": "Default: true.",
+ "type": "boolean",
+ "default": true
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"],
+ "$schema": "http://json-schema.org/draft-07/schema#"
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "resourceRequirements": {
+ "jobSpecific": [
+ {
+ "jobType": "sync",
+ "resourceRequirements": {
+ "memory_request": "1Gi",
+ "memory_limit": "1Gi"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "destinationDefinitionId": "27dc7500-6d1b-40b1-8b07-e2f2aea3c9f4",
+ "name": "Google Firestore",
+ "dockerRepository": "airbyte/destination-firestore",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/firestore",
+ "icon": "firestore.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/firestore",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Google Firestore",
+ "type": "object",
+ "required": ["project_id"],
+ "additionalProperties": false,
+ "properties": {
+ "project_id": {
+ "type": "string",
+ "description": "The GCP project ID for the project containing the target BigQuery dataset.",
+ "title": "Project ID"
+ },
+ "credentials_json": {
+ "type": "string",
+ "description": "The contents of the JSON service account key. Check out the docs if you need help generating this key. Default credentials will be used if this field is left empty.",
+ "title": "Credentials JSON",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["append", "overwrite"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "356668e2-7e34-47f3-a3b0-67a8a481b692",
+ "name": "Google PubSub",
+ "dockerRepository": "airbyte/destination-pubsub",
+ "dockerImageTag": "0.2.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/pubsub",
+ "icon": "googlepubsub.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/pubsub",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Google PubSub Destination Spec",
+ "type": "object",
+ "required": [
+ "project_id",
+ "topic_id",
+ "credentials_json",
+ "ordering_enabled",
+ "batching_enabled"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "project_id": {
+ "type": "string",
+ "description": "The GCP project ID for the project containing the target PubSub.",
+ "title": "Project ID"
+ },
+ "topic_id": {
+ "type": "string",
+ "description": "The PubSub topic ID in the given GCP project ID.",
+ "title": "PubSub Topic ID"
+ },
+ "credentials_json": {
+ "type": "string",
+ "description": "The contents of the JSON service account key. Check out the docs if you need help generating this key.",
+ "title": "Credentials JSON",
+ "airbyte_secret": true
+ },
+ "ordering_enabled": {
+ "title": "Message Ordering Enabled",
+ "description": "If TRUE PubSub publisher will have message ordering enabled. Every message will have an ordering key of stream",
+ "type": "boolean",
+ "default": false
+ },
+ "batching_enabled": {
+ "type": "boolean",
+ "title": "Message Batching Enabled",
+ "description": "If TRUE messages will be buffered instead of sending them one by one",
+ "default": false
+ },
+ "batching_delay_threshold": {
+ "type": "integer",
+ "title": "Message Batching: Delay Threshold",
+ "description": "Number of ms before the buffer is flushed",
+ "default": 1,
+ "minimum": 1
+ },
+ "batching_element_count_threshold": {
+ "type": "integer",
+ "title": "Message Batching: Element Count Threshold",
+ "description": "Number of messages before the buffer is flushed",
+ "default": 1,
+ "minimum": 1
+ },
+ "batching_request_bytes_threshold": {
+ "type": "integer",
+ "title": "Message Batching: Request Bytes Threshold",
+ "description": "Number of bytes before the buffer is flushed",
+ "default": 1,
+ "minimum": 1
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "9f760101-60ae-462f-9ee6-b7a9dafd454d",
+ "name": "Kafka",
+ "dockerRepository": "airbyte/destination-kafka",
+ "dockerImageTag": "0.1.10",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/kafka",
+ "icon": "kafka.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/kafka",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Kafka Destination Spec",
+ "type": "object",
+ "required": [
+ "bootstrap_servers",
+ "topic_pattern",
+ "protocol",
+ "acks",
+ "enable_idempotence",
+ "compression_type",
+ "batch_size",
+ "linger_ms",
+ "max_in_flight_requests_per_connection",
+ "client_dns_lookup",
+ "buffer_memory",
+ "max_request_size",
+ "retries",
+ "socket_connection_setup_timeout_ms",
+ "socket_connection_setup_timeout_max_ms",
+ "max_block_ms",
+ "request_timeout_ms",
+ "delivery_timeout_ms",
+ "send_buffer_bytes",
+ "receive_buffer_bytes"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "bootstrap_servers": {
+ "title": "Bootstrap Servers",
+ "description": "A list of host/port pairs to use for establishing the initial connection to the Kafka cluster. The client will make use of all servers irrespective of which servers are specified here for bootstrapping—this list only impacts the initial hosts used to discover the full set of servers. This list should be in the form host1:port1,host2:port2,...
. Since these servers are just used for the initial connection to discover the full cluster membership (which may change dynamically), this list need not contain the full set of servers (you may want more than one, though, in case a server is down).",
+ "type": "string",
+ "examples": ["kafka-broker1:9092,kafka-broker2:9092"]
+ },
+ "topic_pattern": {
+ "title": "Topic Pattern",
+ "description": "Topic pattern in which the records will be sent. You can use patterns like '{namespace}' and/or '{stream}' to send the message to a specific topic based on these values. Notice that the topic name will be transformed to a standard naming convention.",
+ "type": "string",
+ "examples": ["sample.topic", "{namespace}.{stream}.sample"]
+ },
+ "test_topic": {
+ "title": "Test Topic",
+ "description": "Topic to test if Airbyte can produce messages.",
+ "type": "string",
+ "examples": ["test.topic"]
+ },
+ "sync_producer": {
+ "title": "Sync Producer",
+ "description": "Wait synchronously until the record has been sent to Kafka.",
+ "type": "boolean",
+ "default": false
+ },
+ "protocol": {
+ "title": "Protocol",
+ "type": "object",
+ "description": "Protocol used to communicate with brokers.",
+ "oneOf": [
+ {
+ "title": "PLAINTEXT",
+ "required": ["security_protocol"],
+ "properties": {
+ "security_protocol": {
+ "type": "string",
+ "enum": ["PLAINTEXT"],
+ "default": "PLAINTEXT"
+ }
+ }
+ },
+ {
+ "title": "SASL PLAINTEXT",
+ "required": [
+ "security_protocol",
+ "sasl_mechanism",
+ "sasl_jaas_config"
+ ],
+ "properties": {
+ "security_protocol": {
+ "type": "string",
+ "enum": ["SASL_PLAINTEXT"],
+ "default": "SASL_PLAINTEXT"
+ },
+ "sasl_mechanism": {
+ "title": "SASL Mechanism",
+ "description": "SASL mechanism used for client connections. This may be any mechanism for which a security provider is available.",
+ "type": "string",
+ "default": "PLAIN",
+ "enum": ["PLAIN"]
+ },
+ "sasl_jaas_config": {
+ "title": "SASL JAAS Config",
+ "description": "JAAS login context parameters for SASL connections in the format used by JAAS configuration files.",
+ "type": "string",
+ "default": "",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "SASL SSL",
+ "required": [
+ "security_protocol",
+ "sasl_mechanism",
+ "sasl_jaas_config"
+ ],
+ "properties": {
+ "security_protocol": {
+ "type": "string",
+ "enum": ["SASL_SSL"],
+ "default": "SASL_SSL"
+ },
+ "sasl_mechanism": {
+ "title": "SASL Mechanism",
+ "description": "SASL mechanism used for client connections. This may be any mechanism for which a security provider is available.",
+ "type": "string",
+ "default": "GSSAPI",
+ "enum": [
+ "GSSAPI",
+ "OAUTHBEARER",
+ "SCRAM-SHA-256",
+ "SCRAM-SHA-512",
+ "PLAIN"
+ ]
+ },
+ "sasl_jaas_config": {
+ "title": "SASL JAAS Config",
+ "description": "JAAS login context parameters for SASL connections in the format used by JAAS configuration files.",
+ "type": "string",
+ "default": "",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ },
+ "client_id": {
+ "title": "Client ID",
+ "description": "An ID string to pass to the server when making requests. The purpose of this is to be able to track the source of requests beyond just ip/port by allowing a logical application name to be included in server-side request logging.",
+ "type": "string",
+ "examples": ["airbyte-producer"]
+ },
+ "acks": {
+ "title": "ACKs",
+ "description": "The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent.",
+ "type": "string",
+ "default": "1",
+ "enum": ["0", "1", "all"]
+ },
+ "enable_idempotence": {
+ "title": "Enable Idempotence",
+ "description": "When set to 'true', the producer will ensure that exactly one copy of each message is written in the stream. If 'false', producer retries due to broker failures, etc., may write duplicates of the retried message in the stream.",
+ "type": "boolean",
+ "default": false
+ },
+ "compression_type": {
+ "title": "Compression Type",
+ "description": "The compression type for all data generated by the producer.",
+ "type": "string",
+ "default": "none",
+ "enum": ["none", "gzip", "snappy", "lz4", "zstd"]
+ },
+ "batch_size": {
+ "title": "Batch Size",
+ "description": "The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition.",
+ "type": "integer",
+ "examples": [16384]
+ },
+ "linger_ms": {
+ "title": "Linger ms",
+ "description": "The producer groups together any records that arrive in between request transmissions into a single batched request.",
+ "type": "string",
+ "examples": [0]
+ },
+ "max_in_flight_requests_per_connection": {
+ "title": "Max in Flight Requests per Connection",
+ "description": "The maximum number of unacknowledged requests the client will send on a single connection before blocking. Can be greater than 1, and the maximum value supported with idempotency is 5.",
+ "type": "integer",
+ "examples": [5]
+ },
+ "client_dns_lookup": {
+ "title": "Client DNS Lookup",
+ "description": "Controls how the client uses DNS lookups. If set to use_all_dns_ips, connect to each returned IP address in sequence until a successful connection is established. After a disconnection, the next IP is used. Once all IPs have been used once, the client resolves the IP(s) from the hostname again. If set to resolve_canonical_bootstrap_servers_only, resolve each bootstrap address into a list of canonical names. After the bootstrap phase, this behaves the same as use_all_dns_ips. If set to default (deprecated), attempt to connect to the first IP address returned by the lookup, even if the lookup returns multiple IP addresses.",
+ "type": "string",
+ "default": "use_all_dns_ips",
+ "enum": [
+ "default",
+ "use_all_dns_ips",
+ "resolve_canonical_bootstrap_servers_only",
+ "use_all_dns_ips"
+ ]
+ },
+ "buffer_memory": {
+ "title": "Buffer Memory",
+ "description": "The total bytes of memory the producer can use to buffer records waiting to be sent to the server.",
+ "type": "string",
+ "examples": 33554432
+ },
+ "max_request_size": {
+ "title": "Max Request Size",
+ "description": "The maximum size of a request in bytes.",
+ "type": "integer",
+ "examples": [1048576]
+ },
+ "retries": {
+ "title": "Retries",
+ "description": "Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error.",
+ "type": "integer",
+ "examples": [2147483647]
+ },
+ "socket_connection_setup_timeout_ms": {
+ "title": "Socket Connection Setup Timeout",
+ "description": "The amount of time the client will wait for the socket connection to be established.",
+ "type": "string",
+ "examples": [10000]
+ },
+ "socket_connection_setup_timeout_max_ms": {
+ "title": "Socket Connection Setup Max Timeout",
+ "description": "The maximum amount of time the client will wait for the socket connection to be established. The connection setup timeout will increase exponentially for each consecutive connection failure up to this maximum.",
+ "type": "string",
+ "examples": [30000]
+ },
+ "max_block_ms": {
+ "title": "Max Block ms",
+ "description": "The configuration controls how long the KafkaProducer's send(), partitionsFor(), initTransactions(), sendOffsetsToTransaction(), commitTransaction() and abortTransaction() methods will block.",
+ "type": "string",
+ "examples": [60000]
+ },
+ "request_timeout_ms": {
+ "title": "Request Timeout",
+ "description": "The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted.",
+ "type": "integer",
+ "examples": [30000]
+ },
+ "delivery_timeout_ms": {
+ "title": "Delivery Timeout",
+ "description": "An upper bound on the time to report success or failure after a call to 'send()' returns.",
+ "type": "integer",
+ "examples": [120000]
+ },
+ "send_buffer_bytes": {
+ "title": "Send Buffer bytes",
+ "description": "The size of the TCP send buffer (SO_SNDBUF) to use when sending data. If the value is -1, the OS default will be used.",
+ "type": "integer",
+ "examples": [131072]
+ },
+ "receive_buffer_bytes": {
+ "title": "Receive Buffer bytes",
+ "description": "The size of the TCP receive buffer (SO_RCVBUF) to use when reading data. If the value is -1, the OS default will be used.",
+ "type": "integer",
+ "examples": [32768]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "6d1d66d4-26ab-4602-8d32-f85894b04955",
+ "name": "Kinesis",
+ "dockerRepository": "airbyte/destination-kinesis",
+ "dockerImageTag": "0.1.5",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/kinesis",
+ "icon": "kinesis.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/kinesis",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Kinesis Destination Spec",
+ "type": "object",
+ "required": [
+ "endpoint",
+ "region",
+ "shardCount",
+ "accessKey",
+ "privateKey",
+ "bufferSize"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "endpoint": {
+ "title": "Endpoint",
+ "description": "AWS Kinesis endpoint.",
+ "type": "string",
+ "examples": ["kinesis.us‑west‑1.amazonaws.com"],
+ "order": 0
+ },
+ "region": {
+ "title": "Region",
+ "description": "AWS region. Your account determines the Regions that are available to you.",
+ "type": "string",
+ "examples": ["us‑west‑1"],
+ "order": 1
+ },
+ "shardCount": {
+ "title": "Shard Count",
+ "description": "Number of shards to which the data should be streamed.",
+ "type": "integer",
+ "default": 5,
+ "order": 2
+ },
+ "accessKey": {
+ "title": "Access Key",
+ "description": "Generate the AWS Access Key for current user.",
+ "airbyte_secret": true,
+ "type": "string",
+ "order": 3
+ },
+ "privateKey": {
+ "title": "Private Key",
+ "description": "The AWS Private Key - a string of numbers and letters that are unique for each account, also known as a \"recovery phrase\".",
+ "airbyte_secret": true,
+ "type": "string",
+ "order": 4
+ },
+ "bufferSize": {
+ "title": "Buffer Size",
+ "description": "Buffer size for storing kinesis records before being batch streamed.",
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 500,
+ "default": 100,
+ "order": 5
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "8be1cf83-fde1-477f-a4ad-318d23c9f3c6",
+ "name": "Local CSV",
+ "dockerRepository": "airbyte/destination-csv",
+ "dockerImageTag": "1.0.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-csv",
+ "icon": "file-csv.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-csv",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "CSV Destination Spec",
+ "type": "object",
+ "required": ["destination_path"],
+ "additionalProperties": true,
+ "properties": {
+ "destination_path": {
+ "description": "Path to the directory where csv files will be written. The destination uses the local mount \"/local\" and any data files will be placed inside that local mount. For more information check out our docs",
+ "type": "string",
+ "examples": ["/local"]
+ },
+ "delimiter_type": {
+ "type": "object",
+ "title": "Delimiter",
+ "description": "The character delimiting individual cells in the CSV data.",
+ "oneOf": [
+ {
+ "title": "Comma",
+ "required": ["delimiter"],
+ "properties": {
+ "delimiter": {
+ "type": "string",
+ "const": "\\u002c"
+ }
+ }
+ },
+ {
+ "title": "Semicolon",
+ "required": ["delimiter"],
+ "properties": {
+ "delimiter": {
+ "type": "string",
+ "const": "\\u003b"
+ }
+ }
+ },
+ {
+ "title": "Pipe",
+ "required": ["delimiter"],
+ "properties": {
+ "delimiter": {
+ "type": "string",
+ "const": "\\u007c"
+ }
+ }
+ },
+ {
+ "title": "Tab",
+ "required": ["delimiter"],
+ "properties": {
+ "delimiter": {
+ "type": "string",
+ "const": "\\u0009"
+ }
+ }
+ },
+ {
+ "title": "Space",
+ "required": ["delimiter"],
+ "properties": {
+ "delimiter": {
+ "type": "string",
+ "const": "\\u0020"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "a625d593-bba5-4a1c-a53d-2d246268a816",
+ "name": "Local JSON",
+ "dockerRepository": "airbyte/destination-local-json",
+ "dockerImageTag": "0.2.11",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-json",
+ "icon": "file-json.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-json",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Local Json Destination Spec",
+ "type": "object",
+ "required": ["destination_path"],
+ "additionalProperties": false,
+ "properties": {
+ "destination_path": {
+ "description": "Path to the directory where json files will be written. The files will be placed inside that local mount. For more information check out our docs",
+ "title": "Destination Path",
+ "type": "string",
+ "examples": ["/json_data"]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "f3802bc4-5406-4752-9e8d-01e504ca8194",
+ "name": "MQTT",
+ "dockerRepository": "airbyte/destination-mqtt",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mqtt",
+ "icon": "mqtt.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mqtt",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "MQTT Destination Spec",
+ "type": "object",
+ "required": [
+ "broker_host",
+ "broker_port",
+ "use_tls",
+ "topic_pattern",
+ "publisher_sync",
+ "connect_timeout",
+ "automatic_reconnect",
+ "clean_session",
+ "message_retained",
+ "message_qos"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "broker_host": {
+ "title": "MQTT broker host",
+ "description": "Host of the broker to connect to.",
+ "type": "string"
+ },
+ "broker_port": {
+ "title": "MQTT broker port",
+ "description": "Port of the broker.",
+ "type": "integer"
+ },
+ "use_tls": {
+ "title": "Use TLS",
+ "description": "Whether to use TLS encryption on the connection.",
+ "type": "boolean",
+ "default": false
+ },
+ "username": {
+ "title": "Username",
+ "description": "User name to use for the connection.",
+ "type": "string"
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password to use for the connection.",
+ "type": "string",
+ "airbyte_secret": true
+ },
+ "topic_pattern": {
+ "title": "Topic pattern",
+ "description": "Topic pattern in which the records will be sent. You can use patterns like '{namespace}' and/or '{stream}' to send the message to a specific topic based on these values. Notice that the topic name will be transformed to a standard naming convention.",
+ "type": "string",
+ "examples": ["sample.topic", "{namespace}/{stream}/sample"]
+ },
+ "topic_test": {
+ "title": "Test topic",
+ "description": "Topic to test if Airbyte can produce messages.",
+ "type": "string",
+ "examples": ["test/topic"]
+ },
+ "client": {
+ "title": "Client ID",
+ "description": "A client identifier that is unique on the server being connected to.",
+ "type": "string",
+ "examples": ["airbyte-client1"]
+ },
+ "publisher_sync": {
+ "title": "Sync publisher",
+ "description": "Wait synchronously until the record has been sent to the broker.",
+ "type": "boolean",
+ "default": false
+ },
+ "connect_timeout": {
+ "title": "Connect timeout",
+ "description": " Maximum time interval (in seconds) the client will wait for the network connection to the MQTT server to be established.",
+ "type": "integer",
+ "default": 30
+ },
+ "automatic_reconnect": {
+ "title": "Automatic reconnect",
+ "description": "Whether the client will automatically attempt to reconnect to the server if the connection is lost.",
+ "type": "boolean",
+ "default": true
+ },
+ "clean_session": {
+ "title": "Clean session",
+ "description": "Whether the client and server should remember state across restarts and reconnects.",
+ "type": "boolean",
+ "default": true
+ },
+ "message_retained": {
+ "title": "Message retained",
+ "description": "Whether or not the publish message should be retained by the messaging engine.",
+ "type": "boolean",
+ "default": false
+ },
+ "message_qos": {
+ "title": "Message QoS",
+ "description": "Quality of service used for each message to be delivered.",
+ "default": "AT_LEAST_ONCE",
+ "enum": ["AT_MOST_ONCE", "AT_LEAST_ONCE", "EXACTLY_ONCE"]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "d4353156-9217-4cad-8dd7-c108fd4f74cf",
+ "name": "MS SQL Server",
+ "dockerRepository": "airbyte/destination-mssql",
+ "dockerImageTag": "0.1.23",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mssql",
+ "icon": "mssql.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mssql",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "MS SQL Server Destination Spec",
+ "type": "object",
+ "required": ["host", "port", "username", "database", "schema"],
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "The host name of the MSSQL database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "The port of the MSSQL database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 1433,
+ "examples": ["1433"],
+ "order": 1
+ },
+ "database": {
+ "title": "DB Name",
+ "description": "The name of the MSSQL database.",
+ "type": "string",
+ "order": 2
+ },
+ "schema": {
+ "title": "Default Schema",
+ "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
+ "type": "string",
+ "examples": ["public"],
+ "default": "public",
+ "order": 3
+ },
+ "username": {
+ "title": "User",
+ "description": "The username which is used to access the database.",
+ "type": "string",
+ "order": 4
+ },
+ "password": {
+ "title": "Password",
+ "description": "The password associated with this username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 5
+ },
+ "jdbc_url_params": {
+ "title": "JDBC URL Params",
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "type": "string",
+ "order": 6
+ },
+ "ssl_method": {
+ "title": "SSL Method",
+ "type": "object",
+ "description": "The encryption method which is used to communicate with the database.",
+ "order": 7,
+ "oneOf": [
+ {
+ "title": "Unencrypted",
+ "description": "The data transfer will not be encrypted.",
+ "required": ["ssl_method"],
+ "type": "object",
+ "properties": {
+ "ssl_method": {
+ "type": "string",
+ "const": "unencrypted",
+ "enum": ["unencrypted"],
+ "default": "unencrypted"
+ }
+ }
+ },
+ {
+ "title": "Encrypted (trust server certificate)",
+ "description": "Use the certificate provided by the server without verification. (For testing purposes only!)",
+ "required": ["ssl_method"],
+ "type": "object",
+ "properties": {
+ "ssl_method": {
+ "type": "string",
+ "const": "encrypted_trust_server_certificate",
+ "enum": ["encrypted_trust_server_certificate"],
+ "default": "encrypted_trust_server_certificate"
+ }
+ }
+ },
+ {
+ "title": "Encrypted (verify certificate)",
+ "description": "Verify and use the certificate provided by the server.",
+ "required": [
+ "ssl_method",
+ "trustStoreName",
+ "trustStorePassword"
+ ],
+ "type": "object",
+ "properties": {
+ "ssl_method": {
+ "type": "string",
+ "const": "encrypted_verify_certificate",
+ "enum": ["encrypted_verify_certificate"],
+ "default": "encrypted_verify_certificate"
+ },
+ "hostNameInCertificate": {
+ "title": "Host Name In Certificate",
+ "type": "string",
+ "description": "Specifies the host name of the server. The value of this property must match the subject property of the certificate.",
+ "order": 8
+ }
+ }
+ }
+ ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [
+ {
+ "title": "No Tunnel",
+ "required": ["tunnel_method"],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "SSH Key Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "ssh_key"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Password Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "tunnel_user_password"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": [
+ "overwrite",
+ "append",
+ "append_dedup"
+ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "normalizationConfig": {
+ "normalizationRepository": "airbyte/normalization-mssql",
+ "normalizationTag": "0.4.0",
+ "normalizationIntegrationType": "mssql"
+ },
+ "supportsDbt": true
+ },
+ {
+ "destinationDefinitionId": "af7c921e-5892-4ff2-b6c1-4a5ab258fb7e",
+ "name": "MeiliSearch",
+ "dockerRepository": "airbyte/destination-meilisearch",
+ "dockerImageTag": "1.0.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/meilisearch",
+ "icon": "meilisearch.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/meilisearch",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Meilisearch",
+ "type": "object",
+ "required": ["host"],
+ "additionalProperties": false,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the MeiliSearch instance.",
+ "type": "string",
+ "order": 0
+ },
+ "api_key": {
+ "title": "API Key",
+ "airbyte_secret": true,
+ "description": "MeiliSearch API Key. See the docs for more information on how to obtain this key.",
+ "type": "string",
+ "order": 1
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "8b746512-8c2e-6ac1-4adc-b59faafd473c",
+ "name": "MongoDB",
+ "dockerRepository": "airbyte/destination-mongodb",
+ "dockerImageTag": "0.1.9",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mongodb",
+ "icon": "mongodb.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mongodb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "MongoDB Destination Spec",
+ "type": "object",
+ "required": ["database", "auth_type"],
+ "properties": {
+ "instance_type": {
+ "description": "MongoDb instance to connect to. For MongoDB Atlas and Replica Set TLS connection is used by default.",
+ "title": "MongoDb Instance Type",
+ "type": "object",
+ "order": 0,
+ "oneOf": [
+ {
+ "title": "Standalone MongoDb Instance",
+ "required": ["instance", "host", "port"],
+ "properties": {
+ "instance": {
+ "type": "string",
+ "enum": ["standalone"],
+ "default": "standalone"
+ },
+ "host": {
+ "title": "Host",
+ "type": "string",
+ "description": "The Host of a Mongo database to be replicated.",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "type": "integer",
+ "description": "The Port of a Mongo database to be replicated.",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 27017,
+ "examples": ["27017"],
+ "order": 1
+ },
+ "tls": {
+ "title": "TLS Connection",
+ "type": "boolean",
+ "description": "Indicates whether TLS encryption protocol will be used to connect to MongoDB. It is recommended to use TLS connection if possible. For more information see documentation.",
+ "default": false,
+ "order": 2
+ }
+ }
+ },
+ {
+ "title": "Replica Set",
+ "required": ["instance", "server_addresses"],
+ "properties": {
+ "instance": {
+ "type": "string",
+ "enum": ["replica"],
+ "default": "replica"
+ },
+ "server_addresses": {
+ "title": "Server addresses",
+ "type": "string",
+ "description": "The members of a replica set. Please specify `host`:`port` of each member seperated by comma.",
+ "examples": ["host1:27017,host2:27017,host3:27017"],
+ "order": 0
+ },
+ "replica_set": {
+ "title": "Replica Set",
+ "type": "string",
+ "description": "A replica set name.",
+ "order": 1
+ }
+ }
+ },
+ {
+ "title": "MongoDB Atlas",
+ "required": ["instance", "cluster_url"],
+ "properties": {
+ "instance": {
+ "type": "string",
+ "enum": ["atlas"],
+ "default": "atlas"
+ },
+ "cluster_url": {
+ "title": "Cluster URL",
+ "type": "string",
+ "description": "URL of a cluster to connect to.",
+ "order": 0
+ }
+ }
+ }
+ ]
+ },
+ "database": {
+ "title": "DB Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2
+ },
+ "auth_type": {
+ "title": "Authorization type",
+ "type": "object",
+ "description": "Authorization type.",
+ "oneOf": [
+ {
+ "title": "None",
+ "description": "None.",
+ "required": ["authorization"],
+ "type": "object",
+ "properties": {
+ "authorization": {
+ "type": "string",
+ "const": "none"
+ }
+ }
+ },
+ {
+ "title": "Login/Password",
+ "description": "Login/Password.",
+ "required": ["authorization", "username", "password"],
+ "type": "object",
+ "properties": {
+ "authorization": {
+ "type": "string",
+ "const": "login/password"
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 1
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 2
+ }
+ }
+ }
+ ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [
+ {
+ "title": "No Tunnel",
+ "required": ["tunnel_method"],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "SSH Key Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "ssh_key"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Password Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "tunnel_user_password"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "ca81ee7c-3163-4246-af40-094cc31e5e42",
+ "name": "MySQL",
+ "dockerRepository": "airbyte/destination-mysql",
+ "dockerImageTag": "0.1.20",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mysql",
+ "icon": "mysql.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mysql",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "MySQL Destination Spec",
+ "type": "object",
+ "required": ["host", "port", "username", "database"],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 3306,
+ "examples": ["3306"],
+ "order": 1
+ },
+ "database": {
+ "title": "DB Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL.",
+ "type": "boolean",
+ "default": true,
+ "order": 5
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 6
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [
+ {
+ "title": "No Tunnel",
+ "required": ["tunnel_method"],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "SSH Key Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "ssh_key"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Password Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "tunnel_user_password"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "normalizationConfig": {
+ "normalizationRepository": "airbyte/normalization-mysql",
+ "normalizationTag": "0.4.0",
+ "normalizationIntegrationType": "mysql"
+ },
+ "supportsDbt": true
+ },
+ {
+ "destinationDefinitionId": "3986776d-2319-4de9-8af8-db14c0996e72",
+ "name": "Oracle",
+ "dockerRepository": "airbyte/destination-oracle",
+ "dockerImageTag": "0.1.19",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/oracle",
+ "icon": "oracle.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/oracle",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Oracle Destination Spec",
+ "type": "object",
+ "required": ["host", "port", "username", "sid"],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "The hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "The port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 1521,
+ "examples": ["1521"],
+ "order": 1
+ },
+ "sid": {
+ "title": "SID",
+ "description": "The System Identifier uniquely distinguishes the instance from any other instance on the same computer.",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "title": "User",
+ "description": "The username to access the database. This user must have CREATE USER privileges in the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "The password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 5
+ },
+ "schema": {
+ "title": "Default Schema",
+ "description": "The default schema is used as the target schema for all statements issued from the connection that do not explicitly specify a schema name. The usual value for this field is \"airbyte\". In Oracle, schemas and users are the same thing, so the \"user\" parameter is used as the login credentials and this is used for the default Airbyte message schema.",
+ "type": "string",
+ "examples": ["airbyte"],
+ "default": "airbyte",
+ "order": 6
+ },
+ "encryption": {
+ "title": "Encryption",
+ "type": "object",
+ "description": "The encryption method which is used when communicating with the database.",
+ "order": 7,
+ "oneOf": [
+ {
+ "title": "Unencrypted",
+ "description": "Data transfer will not be encrypted.",
+ "required": ["encryption_method"],
+ "properties": {
+ "encryption_method": {
+ "type": "string",
+ "const": "unencrypted",
+ "enum": ["unencrypted"],
+ "default": "unencrypted"
+ }
+ }
+ },
+ {
+ "title": "Native Network Encryption (NNE)",
+ "description": "The native network encryption gives you the ability to encrypt database connections, without the configuration overhead of TCP/IP and SSL/TLS and without the need to open and listen on different ports.",
+ "required": ["encryption_method"],
+ "properties": {
+ "encryption_method": {
+ "type": "string",
+ "const": "client_nne",
+ "enum": ["client_nne"],
+ "default": "client_nne"
+ },
+ "encryption_algorithm": {
+ "type": "string",
+ "description": "This parameter defines the database encryption algorithm.",
+ "title": "Encryption Algorithm",
+ "default": "AES256",
+ "enum": ["AES256", "RC4_56", "3DES168"]
+ }
+ }
+ },
+ {
+ "title": "TLS Encrypted (verify certificate)",
+ "description": "Verify and use the certificate provided by the server.",
+ "required": ["encryption_method", "ssl_certificate"],
+ "properties": {
+ "encryption_method": {
+ "type": "string",
+ "const": "encrypted_verify_certificate",
+ "enum": ["encrypted_verify_certificate"],
+ "default": "encrypted_verify_certificate"
+ },
+ "ssl_certificate": {
+ "title": "SSL PEM file",
+ "description": "Privacy Enhanced Mail (PEM) files are concatenated certificate containers frequently used in certificate installations.",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true
+ }
+ }
+ }
+ ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [
+ {
+ "title": "No Tunnel",
+ "required": ["tunnel_method"],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "SSH Key Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "ssh_key"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Password Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "tunnel_user_password"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "normalizationConfig": {
+ "normalizationRepository": "airbyte/normalization-oracle",
+ "normalizationTag": "0.4.0",
+ "normalizationIntegrationType": "oracle"
+ },
+ "supportsDbt": true
+ },
+ {
+ "destinationDefinitionId": "25c5221d-dce2-4163-ade9-739ef790f503",
+ "name": "Postgres",
+ "dockerRepository": "airbyte/destination-postgres",
+ "dockerImageTag": "0.3.27",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/postgres",
+ "icon": "postgresql.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/postgres",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Postgres Destination Spec",
+ "type": "object",
+ "required": ["host", "port", "username", "database", "schema"],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 5432,
+ "examples": ["5432"],
+ "order": 1
+ },
+ "database": {
+ "title": "DB Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2
+ },
+ "schema": {
+ "title": "Default Schema",
+ "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
+ "type": "string",
+ "examples": ["public"],
+ "default": "public",
+ "order": 3
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 4
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 5
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL. When activating SSL, please select one of the connection modes.",
+ "type": "boolean",
+ "default": false,
+ "order": 6
+ },
+ "ssl_mode": {
+ "title": "SSL modes",
+ "description": "SSL connection modes. \n disable - Chose this mode to disable encryption of communication between Airbyte and destination database\n allow - Chose this mode to enable encryption only when required by the source database\n prefer - Chose this mode to allow unencrypted connection only if the source database does not support encryption\n require - Chose this mode to always require encryption. If the source database server does not support encryption, connection will fail\n verify-ca - Chose this mode to always require encryption and to verify that the source database server has a valid SSL certificate\n verify-full - This is the most secure mode. Chose this mode to always require encryption and to verify the identity of the source database server\n See more information - in the docs.",
+ "type": "object",
+ "order": 7,
+ "oneOf": [
+ {
+ "title": "disable",
+ "additionalProperties": false,
+ "description": "Disable SSL.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "disable",
+ "enum": ["disable"],
+ "default": "disable",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "allow",
+ "additionalProperties": false,
+ "description": "Allow SSL mode.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "allow",
+ "enum": ["allow"],
+ "default": "allow",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "prefer",
+ "additionalProperties": false,
+ "description": "Prefer SSL mode.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "prefer",
+ "enum": ["prefer"],
+ "default": "prefer",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "require",
+ "additionalProperties": false,
+ "description": "Require SSL mode.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "require",
+ "enum": ["require"],
+ "default": "require",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "verify-ca",
+ "additionalProperties": false,
+ "description": "Verify-ca SSL mode.",
+ "required": ["mode", "ca_certificate"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-ca",
+ "enum": ["verify-ca"],
+ "default": "verify-ca",
+ "order": 0
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ },
+ "client_key_password": {
+ "type": "string",
+ "title": "Client key password",
+ "description": "Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "verify-full",
+ "additionalProperties": false,
+ "description": "Verify-full SSL mode.",
+ "required": [
+ "mode",
+ "ca_certificate",
+ "client_certificate",
+ "client_key"
+ ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-full",
+ "enum": ["verify-full"],
+ "default": "verify-full",
+ "order": 0
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ },
+ "client_certificate": {
+ "type": "string",
+ "title": "Client certificate",
+ "description": "Client certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 2
+ },
+ "client_key": {
+ "type": "string",
+ "title": "Client key",
+ "description": "Client key",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 3
+ },
+ "client_key_password": {
+ "type": "string",
+ "title": "Client key password",
+ "description": "Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 8
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [
+ {
+ "title": "No Tunnel",
+ "required": ["tunnel_method"],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "SSH Key Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "ssh_key"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Password Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "tunnel_user_password"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": [
+ "overwrite",
+ "append",
+ "append_dedup"
+ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "normalizationConfig": {
+ "normalizationRepository": "airbyte/normalization",
+ "normalizationTag": "0.4.0",
+ "normalizationIntegrationType": "postgres"
+ },
+ "supportsDbt": true
+ },
+ {
+ "destinationDefinitionId": "2340cbba-358e-11ec-8d3d-0242ac130203",
+ "name": "Pulsar",
+ "dockerRepository": "airbyte/destination-pulsar",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/pulsar",
+ "icon": "pulsar.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/pulsar",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Pulsar Destination Spec",
+ "type": "object",
+ "required": [
+ "brokers",
+ "use_tls",
+ "topic_type",
+ "topic_tenant",
+ "topic_namespace",
+ "topic_pattern",
+ "compression_type",
+ "send_timeout_ms",
+ "max_pending_messages",
+ "max_pending_messages_across_partitions",
+ "batching_enabled",
+ "batching_max_messages",
+ "batching_max_publish_delay",
+ "block_if_queue_full"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "brokers": {
+ "title": "Pulsar brokers",
+ "description": "A list of host/port pairs to use for establishing the initial connection to the Pulsar cluster.",
+ "type": "string",
+ "examples": ["broker1:6650,broker2:6650"]
+ },
+ "use_tls": {
+ "title": "Use TLS",
+ "description": "Whether to use TLS encryption on the connection.",
+ "type": "boolean",
+ "default": false
+ },
+ "topic_type": {
+ "title": "Topic type",
+ "description": "It identifies type of topic. Pulsar supports two kind of topics: persistent and non-persistent. In persistent topic, all messages are durably persisted on disk (that means on multiple disks unless the broker is standalone), whereas non-persistent topic does not persist message into storage disk.",
+ "type": "string",
+ "default": "persistent",
+ "enum": ["persistent", "non-persistent"]
+ },
+ "topic_tenant": {
+ "title": "Topic tenant",
+ "description": "The topic tenant within the instance. Tenants are essential to multi-tenancy in Pulsar, and spread across clusters.",
+ "type": "string",
+ "default": "public",
+ "examples": ["public"]
+ },
+ "topic_namespace": {
+ "title": "Topic namespace",
+ "description": "The administrative unit of the topic, which acts as a grouping mechanism for related topics. Most topic configuration is performed at the namespace level. Each tenant has one or multiple namespaces.",
+ "type": "string",
+ "default": "default",
+ "examples": ["default"]
+ },
+ "topic_pattern": {
+ "title": "Topic pattern",
+ "description": "Topic pattern in which the records will be sent. You can use patterns like '{namespace}' and/or '{stream}' to send the message to a specific topic based on these values. Notice that the topic name will be transformed to a standard naming convention.",
+ "type": "string",
+ "examples": ["sample.topic", "{namespace}.{stream}.sample"]
+ },
+ "topic_test": {
+ "title": "Test topic",
+ "description": "Topic to test if Airbyte can produce messages.",
+ "type": "string",
+ "examples": ["test.topic"]
+ },
+ "producer_name": {
+ "title": "Producer name",
+ "description": "Name for the producer. If not filled, the system will generate a globally unique name which can be accessed with.",
+ "type": "string",
+ "examples": ["airbyte-producer"]
+ },
+ "producer_sync": {
+ "title": "Sync producer",
+ "description": "Wait synchronously until the record has been sent to Pulsar.",
+ "type": "boolean",
+ "default": false
+ },
+ "compression_type": {
+ "title": "Compression type",
+ "description": "Compression type for the producer.",
+ "type": "string",
+ "default": "NONE",
+ "enum": ["NONE", "LZ4", "ZLIB", "ZSTD", "SNAPPY"]
+ },
+ "send_timeout_ms": {
+ "title": "Message send timeout",
+ "description": "If a message is not acknowledged by a server before the send-timeout expires, an error occurs (in ms).",
+ "type": "integer",
+ "default": 30000
+ },
+ "max_pending_messages": {
+ "title": "Max pending messages",
+ "description": "The maximum size of a queue holding pending messages.",
+ "type": "integer",
+ "default": 1000
+ },
+ "max_pending_messages_across_partitions": {
+ "title": "Max pending messages across partitions",
+ "description": "The maximum number of pending messages across partitions.",
+ "type": "integer",
+ "default": 50000
+ },
+ "batching_enabled": {
+ "title": "Enable batching",
+ "description": "Control whether automatic batching of messages is enabled for the producer.",
+ "type": "boolean",
+ "default": true
+ },
+ "batching_max_messages": {
+ "title": "Batching max messages",
+ "description": "Maximum number of messages permitted in a batch.",
+ "type": "integer",
+ "default": 1000
+ },
+ "batching_max_publish_delay": {
+ "title": "Batching max publish delay",
+ "description": " Time period in milliseconds within which the messages sent will be batched.",
+ "type": "integer",
+ "default": 1
+ },
+ "block_if_queue_full": {
+ "title": "Block if queue is full",
+ "description": "If the send operation should block when the outgoing message queue is full.",
+ "type": "boolean",
+ "default": false
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "e06ad785-ad6f-4647-b2e8-3027a5c59454",
+ "name": "RabbitMQ",
+ "dockerRepository": "airbyte/destination-rabbitmq",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/rabbitmq",
+ "icon": "pulsar.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/rabbitmq",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Rabbitmq",
+ "type": "object",
+ "required": ["host", "routing_key"],
+ "additionalProperties": false,
+ "properties": {
+ "ssl": {
+ "type": "boolean",
+ "description": "SSL enabled.",
+ "default": true
+ },
+ "host": {
+ "type": "string",
+ "description": "The RabbitMQ host name."
+ },
+ "port": {
+ "type": "integer",
+ "description": "The RabbitMQ port."
+ },
+ "virtual_host": {
+ "type": "string",
+ "description": "The RabbitMQ virtual host name."
+ },
+ "username": {
+ "type": "string",
+ "description": "The username to connect."
+ },
+ "password": {
+ "type": "string",
+ "title": "Password",
+ "description": "The password to connect.",
+ "airbyte_secret": true
+ },
+ "exchange": {
+ "type": "string",
+ "description": "The exchange name."
+ },
+ "routing_key": {
+ "type": "string",
+ "description": "The routing key."
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "d4d3fef9-e319-45c2-881a-bd02ce44cc9f",
+ "name": "Redis",
+ "dockerRepository": "airbyte/destination-redis",
+ "dockerImageTag": "0.1.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redis",
+ "icon": "redis.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redis",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Redis Destination Spec",
+ "type": "object",
+ "required": ["host", "username", "port", "cache_type"],
+ "additionalProperties": false,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Redis host to connect to.",
+ "type": "string",
+ "examples": ["localhost,127.0.0.1"],
+ "order": 1
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of Redis.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 6379,
+ "order": 2
+ },
+ "username": {
+ "title": "Username",
+ "description": "Username associated with Redis.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with Redis.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "type": "boolean",
+ "description": "Indicates whether SSL encryption protocol will be used to connect to Redis. It is recommended to use SSL connection if possible.",
+ "default": false,
+ "order": 5
+ },
+ "ssl_mode": {
+ "title": "SSL Modes",
+ "description": "SSL connection modes. \n verify-full - This is the most secure mode. Always require encryption and verifies the identity of the source database server",
+ "type": "object",
+ "order": 6,
+ "oneOf": [
+ {
+ "title": "disable",
+ "additionalProperties": false,
+ "description": "Disable SSL.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "disable",
+ "enum": ["disable"],
+ "default": "disable",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "verify-full",
+ "additionalProperties": false,
+ "description": "Verify-full SSL mode.",
+ "required": [
+ "mode",
+ "ca_certificate",
+ "client_certificate",
+ "client_key"
+ ],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-full",
+ "enum": ["verify-full"],
+ "default": "verify-full",
+ "order": 0
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA Certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ },
+ "client_certificate": {
+ "type": "string",
+ "title": "Client Certificate",
+ "description": "Client certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 2
+ },
+ "client_key": {
+ "type": "string",
+ "title": "Client Key",
+ "description": "Client key",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 3
+ },
+ "client_key_password": {
+ "type": "string",
+ "title": "Client key password",
+ "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ },
+ "cache_type": {
+ "title": "Cache type",
+ "type": "string",
+ "default": "hash",
+ "description": "Redis cache type to store data in.",
+ "enum": ["hash"],
+ "order": 7
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [
+ {
+ "title": "No Tunnel",
+ "required": ["tunnel_method"],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "SSH Key Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "ssh_key"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Password Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "tunnel_user_password"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "f7a7d195-377f-cf5b-70a5-be6b819019dc",
+ "name": "Redshift",
+ "dockerRepository": "airbyte/destination-redshift",
+ "dockerImageTag": "0.4.5",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redshift",
+ "icon": "redshift.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redshift",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Redshift Destination Spec",
+ "type": "object",
+ "required": [
+ "host",
+ "port",
+ "database",
+ "username",
+ "password",
+ "schema"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "description": "Host Endpoint of the Redshift Cluster (must include the cluster-id, region and end with .redshift.amazonaws.com)",
+ "type": "string",
+ "title": "Host",
+ "order": 1
+ },
+ "port": {
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 5439,
+ "examples": ["5439"],
+ "title": "Port",
+ "order": 2
+ },
+ "username": {
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "title": "Username",
+ "order": 3
+ },
+ "password": {
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "title": "Password",
+ "order": 4
+ },
+ "database": {
+ "description": "Name of the database.",
+ "type": "string",
+ "title": "Database",
+ "order": 5
+ },
+ "schema": {
+ "description": "The default schema tables are written to if the source does not specify a namespace. Unless specifically configured, the usual value for this field is \"public\".",
+ "type": "string",
+ "examples": ["public"],
+ "default": "public",
+ "title": "Default Schema",
+ "order": 6
+ },
+ "jdbc_url_params": {
+ "title": "JDBC URL Params",
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "type": "string",
+ "order": 7
+ },
+ "uploading_method": {
+ "title": "Uploading Method",
+ "type": "object",
+ "description": "The method how the data will be uploaded to the database.",
+ "order": 8,
+ "oneOf": [
+ {
+ "title": "Standard",
+ "required": ["method"],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "Standard"
+ }
+ }
+ },
+ {
+ "title": "S3 Staging",
+ "required": [
+ "method",
+ "s3_bucket_name",
+ "s3_bucket_region",
+ "access_key_id",
+ "secret_access_key"
+ ],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "S3 Staging"
+ },
+ "s3_bucket_name": {
+ "title": "S3 Bucket Name",
+ "type": "string",
+ "description": "The name of the staging S3 bucket to use if utilising a COPY strategy. COPY is recommended for production workloads for better speed and scalability. See AWS docs for more details.",
+ "examples": ["airbyte.staging"]
+ },
+ "s3_bucket_path": {
+ "title": "S3 Bucket Path",
+ "type": "string",
+ "description": "The directory under the S3 bucket where data will be written. If not provided, then defaults to the root directory. See path's name recommendations for more details.",
+ "examples": ["data_sync/test"]
+ },
+ "s3_bucket_region": {
+ "title": "S3 Bucket Region",
+ "type": "string",
+ "default": "",
+ "description": "The region of the S3 staging bucket to use if utilising a COPY strategy. See AWS docs for details.",
+ "enum": [
+ "",
+ "us-east-1",
+ "us-east-2",
+ "us-west-1",
+ "us-west-2",
+ "af-south-1",
+ "ap-east-1",
+ "ap-south-1",
+ "ap-northeast-1",
+ "ap-northeast-2",
+ "ap-northeast-3",
+ "ap-southeast-1",
+ "ap-southeast-2",
+ "ca-central-1",
+ "cn-north-1",
+ "cn-northwest-1",
+ "eu-central-1",
+ "eu-north-1",
+ "eu-south-1",
+ "eu-west-1",
+ "eu-west-2",
+ "eu-west-3",
+ "sa-east-1",
+ "me-south-1"
+ ]
+ },
+ "file_name_pattern": {
+ "type": "string",
+ "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
+ "title": "S3 Filename pattern",
+ "examples": [
+ "{date}",
+ "{date:yyyy_MM}",
+ "{timestamp}",
+ "{part_number}",
+ "{sync_id}"
+ ],
+ "order": 8
+ },
+ "access_key_id": {
+ "type": "string",
+ "description": "This ID grants access to the above S3 staging bucket. Airbyte requires Read and Write permissions to the given bucket. See AWS docs on how to generate an access key ID and secret access key.",
+ "title": "S3 Key Id",
+ "airbyte_secret": true
+ },
+ "secret_access_key": {
+ "type": "string",
+ "description": "The corresponding secret to the above access key id. See AWS docs on how to generate an access key ID and secret access key.",
+ "title": "S3 Access Key",
+ "airbyte_secret": true
+ },
+ "purge_staging_data": {
+ "title": "Purge Staging Files and Tables",
+ "type": "boolean",
+ "description": "Whether to delete the staging files from S3 after completing the sync. See docs for details.",
+ "default": true
+ },
+ "encryption": {
+ "title": "Encryption",
+ "type": "object",
+ "description": "How to encrypt the staging data",
+ "default": {
+ "encryption_type": "none"
+ },
+ "oneOf": [
+ {
+ "title": "No encryption",
+ "description": "Staging data will be stored in plaintext.",
+ "type": "object",
+ "required": ["encryption_type"],
+ "properties": {
+ "encryption_type": {
+ "type": "string",
+ "const": "none",
+ "enum": ["none"],
+ "default": "none"
+ }
+ }
+ },
+ {
+ "title": "AES-CBC envelope encryption",
+ "description": "Staging data will be encrypted using AES-CBC envelope encryption.",
+ "type": "object",
+ "required": ["encryption_type"],
+ "properties": {
+ "encryption_type": {
+ "type": "string",
+ "const": "aes_cbc_envelope",
+ "enum": ["aes_cbc_envelope"],
+ "default": "aes_cbc_envelope"
+ },
+ "key_encrypting_key": {
+ "type": "string",
+ "title": "Key",
+ "description": "The key, base64-encoded. Must be either 128, 192, or 256 bits. Leave blank to have Airbyte generate an ephemeral key for each sync.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ },
+ "file_buffer_count": {
+ "title": "File Buffer Count",
+ "type": "integer",
+ "minimum": 10,
+ "maximum": 50,
+ "default": 10,
+ "description": "Number of file buffers allocated for writing data. Increasing this number is beneficial for connections using Change Data Capture (CDC) and up to the number of streams within a connection. Increasing the number of file buffers past the maximum number of streams has deteriorating effects",
+ "examples": ["10"]
+ }
+ }
+ }
+ ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [
+ {
+ "title": "No Tunnel",
+ "required": ["tunnel_method"],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "SSH Key Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "ssh_key"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Password Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "tunnel_user_password"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": [
+ "overwrite",
+ "append",
+ "append_dedup"
+ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "resourceRequirements": {
+ "jobSpecific": [
+ {
+ "jobType": "sync",
+ "resourceRequirements": {
+ "memory_request": "1Gi",
+ "memory_limit": "1Gi"
+ }
+ }
+ ]
+ },
+ "normalizationConfig": {
+ "normalizationRepository": "airbyte/normalization-redshift",
+ "normalizationTag": "0.4.0",
+ "normalizationIntegrationType": "redshift"
+ },
+ "supportsDbt": true
+ },
+ {
+ "destinationDefinitionId": "825c5ee3-ed9a-4dd1-a2b6-79ed722f7b13",
+ "name": "Redpanda",
+ "dockerRepository": "airbyte/destination-redpanda",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redpanda",
+ "icon": "redpanda.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redpanda",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Redpanda destination connector",
+ "type": "object",
+ "required": [
+ "bootstrap_servers",
+ "buffer_memory",
+ "compression_type",
+ "retries",
+ "batch_size"
+ ],
+ "properties": {
+ "bootstrap_servers": {
+ "title": "Bootstrap Servers",
+ "description": "A list of host/port pairs to use for establishing the initial connection to the Redpanda cluster. The client will make use of all servers irrespective of which servers are specified here for bootstrapping—this list only impacts the initial hosts used to discover the full set of servers. This list should be in the form host1:port1,host2:port2,...
. Since these servers are just used for the initial connection to discover the full cluster membership (which may change dynamically), this list need not contain the full set of servers (you may want more than one, though, in case a server is down).",
+ "type": "string",
+ "examples": ["redpanda-broker1:9092,redpanda-broker2:9092"]
+ },
+ "buffer_memory": {
+ "title": "Buffer Memory",
+ "description": "The total bytes of memory the producer can use to buffer records waiting to be sent to the server.",
+ "type": "string",
+ "examples": 33554432
+ },
+ "compression_type": {
+ "title": "Compression Type",
+ "description": "The compression type for all data generated by the producer.",
+ "type": "string",
+ "default": "none",
+ "enum": ["none", "gzip", "snappy", "lz4", "zstd"]
+ },
+ "batch_size": {
+ "title": "Batch Size",
+ "description": "The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition.",
+ "type": "integer",
+ "examples": [16384]
+ },
+ "retries": {
+ "title": "Retries",
+ "description": "Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error.",
+ "type": "integer",
+ "examples": [2147483647]
+ },
+ "topic_num_partitions": {
+ "title": "Number of topic partitions",
+ "description": "The number of topic partitions which will be created on topic creation",
+ "type": "integer",
+ "examples": [10]
+ },
+ "topic_replication_factor": {
+ "title": "Topic replication factor",
+ "description": "The number of topics to which messages will be replicated",
+ "type": "integer",
+ "examples": [10]
+ },
+ "socket_connection_setup_timeout_ms": {
+ "title": "Socket Connection Setup Timeout",
+ "description": "The amount of time the client will wait for the socket connection to be established.",
+ "type": "integer",
+ "examples": [10000]
+ },
+ "socket_connection_setup_timeout_max_ms": {
+ "title": "Socket Connection Setup Max Timeout",
+ "description": "The maximum amount of time the client will wait for the socket connection to be established. The connection setup timeout will increase exponentially for each consecutive connection failure up to this maximum.",
+ "type": "integer",
+ "examples": [30000]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "2c9d93a7-9a17-4789-9de9-f46f0097eb70",
+ "name": "Rockset",
+ "dockerRepository": "airbyte/destination-rockset",
+ "dockerImageTag": "0.1.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/rockset",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/rockset",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Rockset Destination Spec",
+ "type": "object",
+ "required": ["api_key", "workspace"],
+ "additionalProperties": false,
+ "properties": {
+ "api_key": {
+ "title": "Api Key",
+ "description": "Rockset api key",
+ "type": "string",
+ "order": 0,
+ "airbyte_secret": true
+ },
+ "workspace": {
+ "title": "Workspace",
+ "description": "The Rockset workspace in which collections will be created + written to.",
+ "type": "string",
+ "examples": ["commons", "my_workspace"],
+ "default": "commons",
+ "airbyte_secret": false,
+ "order": 1
+ },
+ "api_server": {
+ "title": "Api Server",
+ "description": "Rockset api URL",
+ "type": "string",
+ "airbyte_secret": false,
+ "default": "https://api.rs2.usw2.rockset.com",
+ "pattern": "^https:\\/\\/.*.rockset.com$",
+ "order": 2
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["append", "overwrite"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "4816b78f-1489-44c1-9060-4b19d5fa9362",
+ "name": "S3",
+ "dockerRepository": "airbyte/destination-s3",
+ "dockerImageTag": "0.3.23",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/s3",
+ "icon": "s3.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/s3",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "S3 Destination Spec",
+ "type": "object",
+ "required": [
+ "s3_bucket_name",
+ "s3_bucket_path",
+ "s3_bucket_region",
+ "format"
+ ],
+ "properties": {
+ "access_key_id": {
+ "type": "string",
+ "description": "The access key ID to access the S3 bucket. Airbyte requires Read and Write permissions to the given bucket. Read more here.",
+ "title": "S3 Key ID",
+ "airbyte_secret": true,
+ "examples": ["A012345678910EXAMPLE"],
+ "order": 0
+ },
+ "secret_access_key": {
+ "type": "string",
+ "description": "The corresponding secret to the access key ID. Read more here",
+ "title": "S3 Access Key",
+ "airbyte_secret": true,
+ "examples": ["a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY"],
+ "order": 1
+ },
+ "s3_bucket_name": {
+ "title": "S3 Bucket Name",
+ "type": "string",
+ "description": "The name of the S3 bucket. Read more here.",
+ "examples": ["airbyte_sync"],
+ "order": 2
+ },
+ "s3_bucket_path": {
+ "title": "S3 Bucket Path",
+ "description": "Directory under the S3 bucket where data will be written. Read more here",
+ "type": "string",
+ "examples": ["data_sync/test"],
+ "order": 3
+ },
+ "s3_bucket_region": {
+ "title": "S3 Bucket Region",
+ "type": "string",
+ "default": "",
+ "description": "The region of the S3 bucket. See here for all region codes.",
+ "enum": [
+ "",
+ "us-east-1",
+ "us-east-2",
+ "us-west-1",
+ "us-west-2",
+ "af-south-1",
+ "ap-east-1",
+ "ap-south-1",
+ "ap-northeast-1",
+ "ap-northeast-2",
+ "ap-northeast-3",
+ "ap-southeast-1",
+ "ap-southeast-2",
+ "ca-central-1",
+ "cn-north-1",
+ "cn-northwest-1",
+ "eu-central-1",
+ "eu-north-1",
+ "eu-south-1",
+ "eu-west-1",
+ "eu-west-2",
+ "eu-west-3",
+ "sa-east-1",
+ "me-south-1",
+ "us-gov-east-1",
+ "us-gov-west-1"
+ ],
+ "order": 4
+ },
+ "format": {
+ "title": "Output Format",
+ "type": "object",
+ "description": "Format of the data output. See here for more details",
+ "oneOf": [
+ {
+ "title": "Avro: Apache Avro",
+ "required": ["format_type", "compression_codec"],
+ "properties": {
+ "format_type": {
+ "title": "Format Type",
+ "type": "string",
+ "enum": ["Avro"],
+ "default": "Avro",
+ "order": 0
+ },
+ "compression_codec": {
+ "title": "Compression Codec",
+ "description": "The compression algorithm used to compress data. Default to no compression.",
+ "type": "object",
+ "oneOf": [
+ {
+ "title": "No Compression",
+ "required": ["codec"],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": ["no compression"],
+ "default": "no compression"
+ }
+ }
+ },
+ {
+ "title": "Deflate",
+ "required": ["codec", "compression_level"],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": ["Deflate"],
+ "default": "Deflate"
+ },
+ "compression_level": {
+ "title": "Deflate Level",
+ "description": "0: no compression & fastest, 9: best compression & slowest.",
+ "type": "integer",
+ "default": 0,
+ "minimum": 0,
+ "maximum": 9
+ }
+ }
+ },
+ {
+ "title": "bzip2",
+ "required": ["codec"],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": ["bzip2"],
+ "default": "bzip2"
+ }
+ }
+ },
+ {
+ "title": "xz",
+ "required": ["codec", "compression_level"],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": ["xz"],
+ "default": "xz"
+ },
+ "compression_level": {
+ "title": "Compression Level",
+ "description": "See here for details.",
+ "type": "integer",
+ "default": 6,
+ "minimum": 0,
+ "maximum": 9
+ }
+ }
+ },
+ {
+ "title": "zstandard",
+ "required": ["codec", "compression_level"],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": ["zstandard"],
+ "default": "zstandard"
+ },
+ "compression_level": {
+ "title": "Compression Level",
+ "description": "Negative levels are 'fast' modes akin to lz4 or snappy, levels above 9 are generally for archival purposes, and levels above 18 use a lot of memory.",
+ "type": "integer",
+ "default": 3,
+ "minimum": -5,
+ "maximum": 22
+ },
+ "include_checksum": {
+ "title": "Include Checksum",
+ "description": "If true, include a checksum with each data block.",
+ "type": "boolean",
+ "default": false
+ }
+ }
+ },
+ {
+ "title": "snappy",
+ "required": ["codec"],
+ "properties": {
+ "codec": {
+ "type": "string",
+ "enum": ["snappy"],
+ "default": "snappy"
+ }
+ }
+ }
+ ],
+ "order": 1
+ }
+ }
+ },
+ {
+ "title": "CSV: Comma-Separated Values",
+ "required": ["format_type", "flattening"],
+ "properties": {
+ "format_type": {
+ "title": "Format Type",
+ "type": "string",
+ "enum": ["CSV"],
+ "default": "CSV"
+ },
+ "flattening": {
+ "type": "string",
+ "title": "Flattening",
+ "description": "Whether the input json data should be normalized (flattened) in the output CSV. Please refer to docs for details.",
+ "default": "No flattening",
+ "enum": ["No flattening", "Root level flattening"]
+ },
+ "compression": {
+ "title": "Compression",
+ "type": "object",
+ "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".csv.gz\").",
+ "oneOf": [
+ {
+ "title": "No Compression",
+ "requires": ["compression_type"],
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": ["No Compression"],
+ "default": "No Compression"
+ }
+ }
+ },
+ {
+ "title": "GZIP",
+ "requires": ["compression_type"],
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": ["GZIP"],
+ "default": "GZIP"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "title": "JSON Lines: Newline-delimited JSON",
+ "required": ["format_type"],
+ "properties": {
+ "format_type": {
+ "title": "Format Type",
+ "type": "string",
+ "enum": ["JSONL"],
+ "default": "JSONL"
+ },
+ "flattening": {
+ "type": "string",
+ "title": "Flattening",
+ "description": "Whether the input json data should be normalized (flattened) in the output JSON Lines. Please refer to docs for details.",
+ "default": "No flattening",
+ "enum": ["No flattening", "Root level flattening"]
+ },
+ "compression": {
+ "title": "Compression",
+ "type": "object",
+ "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".jsonl.gz\").",
+ "oneOf": [
+ {
+ "title": "No Compression",
+ "requires": "compression_type",
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": ["No Compression"],
+ "default": "No Compression"
+ }
+ }
+ },
+ {
+ "title": "GZIP",
+ "requires": "compression_type",
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": ["GZIP"],
+ "default": "GZIP"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "title": "Parquet: Columnar Storage",
+ "required": ["format_type"],
+ "properties": {
+ "format_type": {
+ "title": "Format Type",
+ "type": "string",
+ "enum": ["Parquet"],
+ "default": "Parquet"
+ },
+ "compression_codec": {
+ "title": "Compression Codec",
+ "description": "The compression algorithm used to compress data pages.",
+ "type": "string",
+ "enum": [
+ "UNCOMPRESSED",
+ "SNAPPY",
+ "GZIP",
+ "LZO",
+ "BROTLI",
+ "LZ4",
+ "ZSTD"
+ ],
+ "default": "UNCOMPRESSED"
+ },
+ "block_size_mb": {
+ "title": "Block Size (Row Group Size) (MB)",
+ "description": "This is the size of a row group being buffered in memory. It limits the memory usage when writing. Larger values will improve the IO when reading, but consume more memory when writing. Default: 128 MB.",
+ "type": "integer",
+ "default": 128,
+ "examples": [128]
+ },
+ "max_padding_size_mb": {
+ "title": "Max Padding Size (MB)",
+ "description": "Maximum size allowed as padding to align row groups. This is also the minimum size of a row group. Default: 8 MB.",
+ "type": "integer",
+ "default": 8,
+ "examples": [8]
+ },
+ "page_size_kb": {
+ "title": "Page Size (KB)",
+ "description": "The page size is for compression. A block is composed of pages. A page is the smallest unit that must be read fully to access a single record. If this value is too small, the compression will deteriorate. Default: 1024 KB.",
+ "type": "integer",
+ "default": 1024,
+ "examples": [1024]
+ },
+ "dictionary_page_size_kb": {
+ "title": "Dictionary Page Size (KB)",
+ "description": "There is one dictionary page per column per row group when dictionary encoding is used. The dictionary page size works like the page size but for dictionary. Default: 1024 KB.",
+ "type": "integer",
+ "default": 1024,
+ "examples": [1024]
+ },
+ "dictionary_encoding": {
+ "title": "Dictionary Encoding",
+ "description": "Default: true.",
+ "type": "boolean",
+ "default": true
+ }
+ }
+ }
+ ],
+ "order": 5
+ },
+ "s3_endpoint": {
+ "title": "Endpoint",
+ "type": "string",
+ "default": "",
+ "description": "Your S3 endpoint url. Read more here",
+ "examples": ["http://localhost:9000"],
+ "order": 6
+ },
+ "s3_path_format": {
+ "title": "S3 Path Format",
+ "description": "Format string on how data will be organized inside the S3 bucket directory. Read more here",
+ "type": "string",
+ "examples": [
+ "${NAMESPACE}/${STREAM_NAME}/${YEAR}_${MONTH}_${DAY}_${EPOCH}_"
+ ],
+ "order": 7
+ },
+ "file_name_pattern": {
+ "type": "string",
+ "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
+ "title": "S3 Filename pattern",
+ "examples": [
+ "{date}",
+ "{date:yyyy_MM}",
+ "{timestamp}",
+ "{part_number}",
+ "{sync_id}"
+ ],
+ "order": 8
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "resourceRequirements": {
+ "jobSpecific": [
+ {
+ "jobType": "sync",
+ "resourceRequirements": {
+ "memory_request": "1Gi",
+ "memory_limit": "1Gi"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "destinationDefinitionId": "471e5cab-8ed1-49f3-ba11-79c687784737",
+ "name": "S3 Glue",
+ "dockerRepository": "airbyte/destination-s3-glue",
+ "dockerImageTag": "0.1.6",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/s3-glue",
+ "icon": "s3-glue.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/s3-glue",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "S3 Destination Spec",
+ "type": "object",
+ "required": [
+ "s3_bucket_name",
+ "s3_bucket_path",
+ "s3_bucket_region",
+ "format",
+ "glue_database",
+ "glue_serialization_library"
+ ],
+ "properties": {
+ "access_key_id": {
+ "type": "string",
+ "description": "The access key ID to access the S3 bucket. Airbyte requires Read and Write permissions to the given bucket. Read more here.",
+ "title": "S3 Key ID",
+ "airbyte_secret": true,
+ "examples": ["A012345678910EXAMPLE"],
+ "order": 0
+ },
+ "secret_access_key": {
+ "type": "string",
+ "description": "The corresponding secret to the access key ID. Read more here",
+ "title": "S3 Access Key",
+ "airbyte_secret": true,
+ "examples": ["a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY"],
+ "order": 1
+ },
+ "s3_bucket_name": {
+ "title": "S3 Bucket Name",
+ "type": "string",
+ "description": "The name of the S3 bucket. Read more here.",
+ "examples": ["airbyte_sync"],
+ "order": 2
+ },
+ "s3_bucket_path": {
+ "title": "S3 Bucket Path",
+ "description": "Directory under the S3 bucket where data will be written. Read more here",
+ "type": "string",
+ "examples": ["data_sync/test"],
+ "order": 3
+ },
+ "s3_bucket_region": {
+ "title": "S3 Bucket Region",
+ "type": "string",
+ "default": "",
+ "description": "The region of the S3 bucket. See here for all region codes.",
+ "enum": [
+ "",
+ "us-east-1",
+ "us-east-2",
+ "us-west-1",
+ "us-west-2",
+ "af-south-1",
+ "ap-east-1",
+ "ap-south-1",
+ "ap-northeast-1",
+ "ap-northeast-2",
+ "ap-northeast-3",
+ "ap-southeast-1",
+ "ap-southeast-2",
+ "ca-central-1",
+ "cn-north-1",
+ "cn-northwest-1",
+ "eu-central-1",
+ "eu-north-1",
+ "eu-south-1",
+ "eu-west-1",
+ "eu-west-2",
+ "eu-west-3",
+ "sa-east-1",
+ "me-south-1",
+ "us-gov-east-1",
+ "us-gov-west-1"
+ ],
+ "order": 4
+ },
+ "format": {
+ "title": "Output Format",
+ "type": "object",
+ "description": "Format of the data output. See here for more details",
+ "oneOf": [
+ {
+ "title": "JSON Lines: Newline-delimited JSON",
+ "required": ["format_type"],
+ "properties": {
+ "format_type": {
+ "title": "Format Type",
+ "type": "string",
+ "enum": ["JSONL"],
+ "default": "JSONL"
+ },
+ "compression": {
+ "title": "Compression",
+ "type": "object",
+ "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".jsonl.gz\").",
+ "oneOf": [
+ {
+ "title": "No Compression",
+ "requires": "compression_type",
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": ["No Compression"],
+ "default": "No Compression"
+ }
+ }
+ },
+ {
+ "title": "GZIP",
+ "requires": "compression_type",
+ "properties": {
+ "compression_type": {
+ "type": "string",
+ "enum": ["GZIP"],
+ "default": "GZIP"
+ }
+ }
+ }
+ ]
+ },
+ "flattening": {
+ "type": "string",
+ "title": "Flattening",
+ "description": "Whether the input json data should be normalized (flattened) in the output JSON Lines. Please refer to docs for details.",
+ "default": "Root level flattening",
+ "enum": ["No flattening", "Root level flattening"]
+ }
+ }
+ }
+ ],
+ "order": 5
+ },
+ "s3_endpoint": {
+ "title": "Endpoint",
+ "type": "string",
+ "default": "",
+ "description": "Your S3 endpoint url. Read more here",
+ "examples": ["http://localhost:9000"],
+ "order": 6
+ },
+ "s3_path_format": {
+ "title": "S3 Path Format",
+ "description": "Format string on how data will be organized inside the S3 bucket directory. Read more here",
+ "type": "string",
+ "examples": [
+ "${NAMESPACE}/${STREAM_NAME}/${YEAR}_${MONTH}_${DAY}_${EPOCH}_"
+ ],
+ "order": 7
+ },
+ "file_name_pattern": {
+ "type": "string",
+ "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
+ "title": "S3 Filename pattern",
+ "examples": [
+ "{date}",
+ "{date:yyyy_MM}",
+ "{timestamp}",
+ "{part_number}",
+ "{sync_id}"
+ ],
+ "order": 8
+ },
+ "glue_database": {
+ "type": "string",
+ "description": "Name of the glue database for creating the tables, leave blank if no integration",
+ "title": "Glue database name",
+ "examples": ["airbyte_database"],
+ "order": 9
+ },
+ "glue_serialization_library": {
+ "title": "Serialization Library",
+ "description": "The library that your query engine will use for reading and writing data in your lake.",
+ "type": "string",
+ "enum": [
+ "org.openx.data.jsonserde.JsonSerDe",
+ "org.apache.hive.hcatalog.data.JsonSerDe"
+ ],
+ "default": "org.openx.data.jsonserde.JsonSerDe",
+ "order": 10
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "50a559a7-6323-4e33-8aa0-51dfd9dfadac",
+ "name": "SelectDB",
+ "dockerRepository": "airbyte/destination-selectdb",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/selectdb",
+ "icon": "select.db",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/selectdb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "SelectDB Destination Spec",
+ "type": "object",
+ "required": [
+ "load_url",
+ "jdbc_url",
+ "cluster_name",
+ "user_name",
+ "password",
+ "database"
+ ],
+ "properties": {
+ "load_url": {
+ "title": "loadURL",
+ "description": "load host and port: xxx.privatelink.aliyun.com:47057",
+ "type": "string",
+ "order": 0
+ },
+ "jdbc_url": {
+ "title": "jdbcURL",
+ "description": "jdbc host and port: xxx.privatelink.aliyun.com:30523",
+ "type": "string",
+ "order": 1
+ },
+ "cluster_name": {
+ "title": "ClusterName",
+ "description": "clusterName of SelectDB",
+ "type": "string",
+ "order": 2
+ },
+ "user_name": {
+ "title": "UserName",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "database": {
+ "title": "DataBase Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 5
+ }
+ }
+ },
+ "supportsIncremental": false,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["append", "overwrite"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "e9810f61-4bab-46d2-bb22-edfc902e0644",
+ "name": "SFTP-JSON",
+ "dockerRepository": "airbyte/destination-sftp-json",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/sftp-json",
+ "icon": "sftp.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/sftp-json",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination SFTP JSON",
+ "type": "object",
+ "required": ["host", "username", "password", "destination_path"],
+ "additionalProperties": false,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the SFTP server.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the SFTP server.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": [22],
+ "order": 1
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the SFTP server.",
+ "type": "string",
+ "order": 2
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "destination_path": {
+ "title": "Destination path",
+ "type": "string",
+ "description": "Path to the directory where json files will be written.",
+ "examples": ["/json_data"],
+ "order": 4
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "424892c4-daac-4491-b35d-c6688ba547ba",
+ "name": "Snowflake",
+ "dockerRepository": "airbyte/destination-snowflake",
+ "dockerImageTag": "0.4.61",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/snowflake",
+ "icon": "snowflake.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/snowflake",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Snowflake Destination Spec",
+ "type": "object",
+ "required": [
+ "host",
+ "role",
+ "warehouse",
+ "database",
+ "schema",
+ "username"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "description": "Enter your Snowflake account's locator (in the format ...snowflakecomputing.com)",
+ "examples": [
+ "accountname.us-east-2.aws.snowflakecomputing.com",
+ "accountname.snowflakecomputing.com"
+ ],
+ "type": "string",
+ "title": "Host",
+ "pattern": "^(http(s)?:\\/\\/)?([^./?#]+\\.)?([^./?#]+\\.)?([^./?#]+\\.)?([^./?#]+\\.snowflakecomputing\\.com)$",
+ "pattern_descriptor": "{account_name}.snowflakecomputing.com or {accountname}.{aws_location}.aws.snowflakecomputing.com",
+ "order": 0
+ },
+ "role": {
+ "description": "Enter the role that you want to use to access Snowflake",
+ "examples": ["AIRBYTE_ROLE"],
+ "type": "string",
+ "title": "Role",
+ "order": 1
+ },
+ "warehouse": {
+ "description": "Enter the name of the warehouse that you want to sync data into",
+ "examples": ["AIRBYTE_WAREHOUSE"],
+ "type": "string",
+ "title": "Warehouse",
+ "order": 2
+ },
+ "database": {
+ "description": "Enter the name of the database you want to sync data into",
+ "examples": ["AIRBYTE_DATABASE"],
+ "type": "string",
+ "title": "Database",
+ "order": 3
+ },
+ "schema": {
+ "description": "Enter the name of the default schema",
+ "examples": ["AIRBYTE_SCHEMA"],
+ "type": "string",
+ "title": "Default Schema",
+ "order": 4
+ },
+ "username": {
+ "description": "Enter the name of the user you want to use to access the database",
+ "examples": ["AIRBYTE_USER"],
+ "type": "string",
+ "title": "Username",
+ "order": 5
+ },
+ "credentials": {
+ "title": "Authorization Method",
+ "description": "",
+ "type": "object",
+ "oneOf": [
+ {
+ "title": "OAuth2.0",
+ "type": "object",
+ "order": 0,
+ "required": ["access_token", "refresh_token"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "OAuth2.0",
+ "enum": ["OAuth2.0"],
+ "default": "OAuth2.0",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "Enter your application's Client ID",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "Enter your application's Client secret",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Enter you application's Access Token",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "Enter your application's Refresh Token",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "Key Pair Authentication",
+ "type": "object",
+ "order": 1,
+ "required": ["private_key"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Key Pair Authentication",
+ "enum": ["Key Pair Authentication"],
+ "default": "Key Pair Authentication",
+ "order": 0
+ },
+ "private_key": {
+ "type": "string",
+ "title": "Private Key",
+ "description": "RSA Private key to use for Snowflake connection. See the docs for more information on how to obtain this key.",
+ "multiline": true,
+ "airbyte_secret": true
+ },
+ "private_key_password": {
+ "type": "string",
+ "title": "Passphrase",
+ "description": "Passphrase for private key",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "Username and Password",
+ "type": "object",
+ "required": ["password"],
+ "order": 2,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Username and Password",
+ "enum": ["Username and Password"],
+ "default": "Username and Password",
+ "order": 0
+ },
+ "password": {
+ "description": "Enter the password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "title": "Password",
+ "order": 1
+ }
+ }
+ }
+ ],
+ "order": 6
+ },
+ "jdbc_url_params": {
+ "description": "Enter the additional properties to pass to the JDBC URL string when connecting to the database (formatted as key=value pairs separated by the symbol &). Example: key1=value1&key2=value2&key3=value3",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 7
+ },
+ "loading_method": {
+ "type": "object",
+ "title": "Data Staging Method",
+ "description": "Select a data staging method",
+ "order": 8,
+ "oneOf": [
+ {
+ "title": "Select another option",
+ "description": "Select another option",
+ "required": ["method"],
+ "properties": {
+ "method": {
+ "title": "",
+ "description": "",
+ "type": "string",
+ "enum": ["Standard"],
+ "default": "Standard"
+ }
+ }
+ },
+ {
+ "title": "[Recommended] Internal Staging",
+ "description": "Recommended for large production workloads for better speed and scalability.",
+ "required": ["method"],
+ "properties": {
+ "method": {
+ "title": "",
+ "description": "",
+ "type": "string",
+ "enum": ["Internal Staging"],
+ "default": "Internal Staging"
+ }
+ }
+ },
+ {
+ "title": "AWS S3 Staging",
+ "description": "Recommended for large production workloads for better speed and scalability.",
+ "required": [
+ "method",
+ "s3_bucket_name",
+ "access_key_id",
+ "secret_access_key"
+ ],
+ "properties": {
+ "method": {
+ "title": "",
+ "description": "",
+ "type": "string",
+ "enum": ["S3 Staging"],
+ "default": "S3 Staging",
+ "order": 0
+ },
+ "s3_bucket_name": {
+ "title": "S3 Bucket Name",
+ "type": "string",
+ "description": "Enter your S3 bucket name",
+ "examples": ["airbyte.staging"],
+ "order": 1
+ },
+ "s3_bucket_region": {
+ "title": "S3 Bucket Region",
+ "type": "string",
+ "default": "",
+ "description": "Enter the region where your S3 bucket resides",
+ "enum": [
+ "",
+ "us-east-1",
+ "us-east-2",
+ "us-west-1",
+ "us-west-2",
+ "af-south-1",
+ "ap-east-1",
+ "ap-south-1",
+ "ap-northeast-1",
+ "ap-northeast-2",
+ "ap-northeast-3",
+ "ap-southeast-1",
+ "ap-southeast-2",
+ "ca-central-1",
+ "cn-north-1",
+ "cn-northwest-1",
+ "eu-central-1",
+ "eu-west-1",
+ "eu-west-2",
+ "eu-west-3",
+ "eu-south-1",
+ "eu-north-1",
+ "sa-east-1",
+ "me-south-1"
+ ],
+ "order": 2
+ },
+ "access_key_id": {
+ "type": "string",
+ "description": "Enter your AWS access key ID. Airbyte requires Read and Write permissions on your S3 bucket ",
+ "title": "AWS access key ID",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "secret_access_key": {
+ "type": "string",
+ "description": "Enter your AWS secret access key",
+ "title": "AWS secret access key",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "purge_staging_data": {
+ "title": "Purge Staging Files and Tables",
+ "type": "boolean",
+ "description": "Toggle to delete staging files from the S3 bucket after a successful sync",
+ "default": true,
+ "order": 5
+ },
+ "encryption": {
+ "title": "Encryption",
+ "type": "object",
+ "description": "Choose a data encryption method for the staging data",
+ "default": {
+ "encryption_type": "none"
+ },
+ "order": 6,
+ "oneOf": [
+ {
+ "title": "No encryption",
+ "description": "Staging data will be stored in plaintext.",
+ "type": "object",
+ "required": ["encryption_type"],
+ "properties": {
+ "encryption_type": {
+ "type": "string",
+ "const": "none",
+ "enum": ["none"],
+ "default": "none"
+ }
+ }
+ },
+ {
+ "title": "AES-CBC envelope encryption",
+ "description": "Staging data will be encrypted using AES-CBC envelope encryption.",
+ "type": "object",
+ "required": ["encryption_type"],
+ "properties": {
+ "encryption_type": {
+ "type": "string",
+ "const": "aes_cbc_envelope",
+ "enum": ["aes_cbc_envelope"],
+ "default": "aes_cbc_envelope"
+ },
+ "key_encrypting_key": {
+ "type": "string",
+ "title": "Key",
+ "description": "The key, base64-encoded. Must be either 128, 192, or 256 bits. Leave blank to have Airbyte generate an ephemeral key for each sync.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ },
+ "file_name_pattern": {
+ "type": "string",
+ "description": "The pattern allows you to set the file-name format for the S3 staging file(s)",
+ "title": "S3 Filename pattern",
+ "examples": [
+ "{date}",
+ "{date:yyyy_MM}",
+ "{timestamp}",
+ "{part_number}",
+ "{sync_id}"
+ ],
+ "order": 7
+ }
+ }
+ },
+ {
+ "title": "Google Cloud Storage Staging",
+ "description": "Recommended for large production workloads for better speed and scalability.",
+ "required": [
+ "method",
+ "project_id",
+ "bucket_name",
+ "credentials_json"
+ ],
+ "properties": {
+ "method": {
+ "title": "",
+ "description": "",
+ "type": "string",
+ "enum": ["GCS Staging"],
+ "default": "GCS Staging",
+ "order": 0
+ },
+ "project_id": {
+ "title": "Google Cloud project ID",
+ "type": "string",
+ "description": "Enter the Google Cloud project ID",
+ "examples": ["my-project"],
+ "order": 1
+ },
+ "bucket_name": {
+ "title": "Cloud Storage bucket name",
+ "type": "string",
+ "description": "Enter the Cloud Storage bucket name",
+ "examples": ["airbyte-staging"],
+ "order": 2
+ },
+ "credentials_json": {
+ "title": "Google Application Credentials",
+ "type": "string",
+ "description": "Enter your Google Cloud service account key in the JSON format with read/write access to your Cloud Storage staging bucket",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 3
+ }
+ }
+ },
+ {
+ "title": "Azure Blob Storage Staging",
+ "description": "Recommended for large production workloads for better speed and scalability.",
+ "required": [
+ "method",
+ "azure_blob_storage_account_name",
+ "azure_blob_storage_container_name",
+ "azure_blob_storage_sas_token"
+ ],
+ "properties": {
+ "method": {
+ "title": "",
+ "description": "",
+ "type": "string",
+ "enum": ["Azure Blob Staging"],
+ "default": "Azure Blob Staging",
+ "order": 0
+ },
+ "azure_blob_storage_endpoint_domain_name": {
+ "title": "Azure Blob Storage Endpoint",
+ "type": "string",
+ "default": "blob.core.windows.net",
+ "description": "Enter the Azure Blob Storage endpoint domain name",
+ "examples": ["blob.core.windows.net"],
+ "order": 1
+ },
+ "azure_blob_storage_account_name": {
+ "title": "Azure Blob Storage account name",
+ "type": "string",
+ "description": "Enter your Azure Blob Storage account name",
+ "examples": ["airbyte5storage"],
+ "order": 2
+ },
+ "azure_blob_storage_container_name": {
+ "title": "Azure Blob Storage Container Name",
+ "type": "string",
+ "description": "Enter your Azure Blob Storage container name",
+ "examples": ["airbytetestcontainername"],
+ "order": 3
+ },
+ "azure_blob_storage_sas_token": {
+ "title": "SAS Token",
+ "type": "string",
+ "airbyte_secret": true,
+ "description": "Enter the Shared access signature (SAS) token to grant Snowflake limited access to objects in your Azure Blob Storage account",
+ "examples": [
+ "?sv=2016-05-31&ss=b&srt=sco&sp=rwdl&se=2018-06-27T10:05:50Z&st=2017-06-27T02:05:50Z&spr=https,http&sig=bgqQwoXwxzuD2GJfagRg7VOS8hzNr3QLT7rhS8OFRLQ%3D"
+ ],
+ "order": 4
+ }
+ }
+ }
+ ]
+ },
+ "file_buffer_count": {
+ "title": "File Buffer Count",
+ "type": "integer",
+ "minimum": 10,
+ "maximum": 50,
+ "default": 10,
+ "description": "Number of file buffers allocated for writing data. Increasing this number is beneficial for connections using Change Data Capture (CDC) and up to the number of streams within a connection. Increasing the number of file buffers past the maximum number of streams has deteriorating effects",
+ "examples": ["10"],
+ "order": 9
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": [
+ "overwrite",
+ "append",
+ "append_dedup"
+ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "auth_type"],
+ "predicate_value": "OAuth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "path_in_connector_config": ["host"]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "access_token"]
+ },
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "refresh_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "resourceRequirements": {
+ "jobSpecific": [
+ {
+ "jobType": "sync",
+ "resourceRequirements": {
+ "memory_request": "1Gi",
+ "memory_limit": "1Gi"
+ }
+ }
+ ]
+ },
+ "normalizationConfig": {
+ "normalizationRepository": "airbyte/normalization-snowflake",
+ "normalizationTag": "0.4.0",
+ "normalizationIntegrationType": "snowflake"
+ },
+ "supportsDbt": true
+ },
+ {
+ "destinationDefinitionId": "294a4790-429b-40ae-9516-49826b9702e1",
+ "name": "MariaDB ColumnStore",
+ "dockerRepository": "airbyte/destination-mariadb-columnstore",
+ "dockerImageTag": "0.1.7",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mariadb-columnstore",
+ "icon": "mariadb.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mariadb-columnstore",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "MariaDB Columnstore Destination Spec",
+ "type": "object",
+ "required": ["host", "port", "username", "database"],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "The Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "The Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 3306,
+ "examples": ["3306"],
+ "order": 1
+ },
+ "database": {
+ "title": "Database",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "title": "Username",
+ "description": "The Username which is used to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "The Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 5
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [
+ {
+ "title": "No Tunnel",
+ "required": ["tunnel_method"],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "SSH Key Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "ssh_key"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Password Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "tunnel_user_password"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "eebd85cf-60b2-4af6-9ba0-edeca01437b0",
+ "name": "Streamr",
+ "dockerRepository": "ghcr.io/devmate-cloud/streamr-airbyte-connectors",
+ "dockerImageTag": "0.0.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/streamr",
+ "icon": "streamr.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/streamr",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Streamr",
+ "type": "object",
+ "required": ["privateKey", "streamId"],
+ "additionalProperties": false,
+ "properties": {
+ "privateKey": {
+ "type": "string",
+ "description": "You private key on Streamr",
+ "airbyte_secret": true
+ },
+ "streamId": {
+ "type": "string",
+ "description": "Your full Stream ID",
+ "examples": [
+ "0x0d0102474519cd2fc1b3e3f962a87e39cbcbead2/test-streamr"
+ ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["append", "append_dedup"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "3dc6f384-cd6b-4be3-ad16-a41450899bf0",
+ "name": "Scylla",
+ "dockerRepository": "airbyte/destination-scylla",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/scylla",
+ "icon": "scylla.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/scylla",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Scylla Destination Spec",
+ "type": "object",
+ "required": ["keyspace", "username", "password", "address", "port"],
+ "additionalProperties": true,
+ "properties": {
+ "keyspace": {
+ "title": "Keyspace",
+ "description": "Default Scylla keyspace to create data in.",
+ "type": "string",
+ "order": 0
+ },
+ "username": {
+ "title": "Username",
+ "description": "Username to use to access Scylla.",
+ "type": "string",
+ "order": 1
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with Scylla.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "address": {
+ "title": "Address",
+ "description": "Address to connect to.",
+ "type": "string",
+ "order": 3
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of Scylla.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 9042,
+ "order": 4
+ },
+ "replication": {
+ "title": "Replication factor",
+ "type": "integer",
+ "description": "Indicates to how many nodes the data should be replicated to.",
+ "default": 1,
+ "order": 5
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "a4cbd2d1-8dbe-4818-b8bc-b90ad782d12a",
+ "name": "Google Sheets",
+ "dockerRepository": "airbyte/destination-google-sheets",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/google-sheets",
+ "icon": "google-sheets.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/google-sheets",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Google Sheets",
+ "type": "object",
+ "required": ["spreadsheet_id", "credentials"],
+ "additionalProperties": false,
+ "properties": {
+ "spreadsheet_id": {
+ "type": "string",
+ "title": "Spreadsheet Link",
+ "description": "The link to your spreadsheet. See this guide for more details.",
+ "examples": [
+ "https://docs.google.com/spreadsheets/d/1hLd9Qqti3UyLXZB2aFfUWDT7BG/edit"
+ ]
+ },
+ "credentials": {
+ "type": "object",
+ "title": "Authentication via Google (OAuth)",
+ "description": "Google API Credentials for connecting to Google Sheets and Google Drive APIs",
+ "required": ["client_id", "client_secret", "refresh_token"],
+ "properties": {
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Google Sheets developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Google Sheets developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "The token for obtaining new access token.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [
+ "overwrite",
+ "append",
+ "append_dedup"
+ ],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": ["credentials"],
+ "oauthFlowInitParameters": [["client_id"], ["client_secret"]],
+ "oauthFlowOutputParameters": [["refresh_token"]]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "b76be0a6-27dc-4560-95f6-2623da0bd7b6",
+ "name": "Local SQLite",
+ "dockerRepository": "airbyte/destination-sqlite",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/local-sqlite",
+ "icon": "sqlite.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/sqlite",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Sqlite",
+ "type": "object",
+ "required": ["destination_path"],
+ "additionalProperties": false,
+ "properties": {
+ "destination_path": {
+ "type": "string",
+ "description": "Path to the sqlite.db file. The file will be placed inside that local mount. For more information check out our docs",
+ "example": "/local/sqlite.db"
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "06ec60c7-7468-45c0-91ac-174f6e1a788b",
+ "name": "TiDB",
+ "dockerRepository": "airbyte/destination-tidb",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/tidb",
+ "icon": "tidb.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/tidb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "TiDB Destination Spec",
+ "type": "object",
+ "required": ["host", "port", "username", "database"],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 4000,
+ "examples": ["4000"],
+ "order": 1
+ },
+ "database": {
+ "title": "Database",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "default": "",
+ "order": 4
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL.",
+ "type": "boolean",
+ "default": false,
+ "order": 5
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 6
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [
+ {
+ "title": "No Tunnel",
+ "required": ["tunnel_method"],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "SSH Key Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "ssh_key"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Password Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "tunnel_user_password"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "normalizationConfig": {
+ "normalizationRepository": "airbyte/normalization-tidb",
+ "normalizationTag": "0.4.0",
+ "normalizationIntegrationType": "tidb"
+ },
+ "supportsDbt": true
+ },
+ {
+ "destinationDefinitionId": "36be8dc6-9851-49af-b776-9d4c30e4ab6a",
+ "name": "Typesense",
+ "dockerRepository": "airbyte/destination-typesense",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/typesense",
+ "icon": "typesense.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/typesense",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Typesense",
+ "type": "object",
+ "required": ["api_key", "host"],
+ "additionalProperties": false,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Typesense API Key",
+ "order": 0
+ },
+ "host": {
+ "title": "Host",
+ "type": "string",
+ "description": "Hostname of the Typesense instance without protocol.",
+ "order": 1
+ },
+ "port": {
+ "title": "Port",
+ "type": "string",
+ "description": "Port of the Typesense instance. Ex: 8108, 80, 443. Default is 443",
+ "order": 2
+ },
+ "protocol": {
+ "title": "Protocol",
+ "type": "string",
+ "description": "Protocol of the Typesense instance. Ex: http or https. Default is https",
+ "order": 3
+ },
+ "batch_size": {
+ "title": "Batch size",
+ "type": "string",
+ "description": "How many documents should be imported together. Default 1000",
+ "order": 4
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "2300fdcf-a532-419f-9f24-a014336e7966",
+ "name": "YugabyteDB",
+ "dockerRepository": "airbyte/destination-yugabytedb",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/yugabytedb",
+ "icon": "yugabytedb.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/destinations/yugabytedb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Yugabytedb destination spec",
+ "type": "object",
+ "required": ["host", "port", "username", "database", "schema"],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "The Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "The Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 3306,
+ "examples": ["3306"],
+ "order": 1
+ },
+ "database": {
+ "title": "Database",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "title": "Username",
+ "description": "The Username which is used to access the database.",
+ "type": "string",
+ "order": 4
+ },
+ "schema": {
+ "title": "Default Schema",
+ "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
+ "type": "string",
+ "examples": ["public"],
+ "default": "public",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "The Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 5
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 6
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "302e4d8e-08d3-4098-acd4-ac67ca365b88",
+ "name": "Databend",
+ "dockerRepository": "airbyte/destination-databend",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/databend",
+ "icon": "databend.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/databend",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Databend",
+ "type": "object",
+ "required": ["host", "username", "database"],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 443,
+ "examples": ["443"],
+ "order": 2
+ },
+ "database": {
+ "title": "DB Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 3
+ },
+ "table": {
+ "title": "Default Table",
+ "description": "The default table was written to.",
+ "type": "string",
+ "examples": ["default"],
+ "default": "default",
+ "order": 4
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 5
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 6
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "58e6f9da-904e-11ed-a1eb-0242ac120002",
+ "name": "Teradata Vantage",
+ "dockerRepository": "airbyte/destination-teradata",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.io/integrations/destinations/teradata",
+ "icon": "teradata.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/destinations/teradata",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Teradata Destination Spec",
+ "type": "object",
+ "required": ["host", "username"],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 1
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "schema": {
+ "title": "Default Schema",
+ "description": "The default schema tables are written to if the source does not specify a namespace. The usual value for this field is \"public\".",
+ "type": "string",
+ "examples": ["airbyte_td"],
+ "default": "airbyte_td",
+ "order": 3
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL. When activating SSL, please select one of the connection modes.",
+ "type": "boolean",
+ "default": false,
+ "order": 5
+ },
+ "ssl_mode": {
+ "title": "SSL modes",
+ "description": "SSL connection modes. \n disable - Chose this mode to disable encryption of communication between Airbyte and destination database\n allow - Chose this mode to enable encryption only when required by the destination database\n prefer - Chose this mode to allow unencrypted connection only if the destination database does not support encryption\n require - Chose this mode to always require encryption. If the destination database server does not support encryption, connection will fail\n verify-ca - Chose this mode to always require encryption and to verify that the destination database server has a valid SSL certificate\n verify-full - This is the most secure mode. Chose this mode to always require encryption and to verify the identity of the destination database server\n See more information - in the docs.",
+ "type": "object",
+ "order": 6,
+ "oneOf": [
+ {
+ "title": "disable",
+ "additionalProperties": false,
+ "description": "Disable SSL.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "disable",
+ "enum": ["disable"],
+ "default": "disable",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "allow",
+ "additionalProperties": false,
+ "description": "Allow SSL mode.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "allow",
+ "enum": ["allow"],
+ "default": "allow",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "prefer",
+ "additionalProperties": false,
+ "description": "Prefer SSL mode.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "prefer",
+ "enum": ["prefer"],
+ "default": "prefer",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "require",
+ "additionalProperties": false,
+ "description": "Require SSL mode.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "require",
+ "enum": ["require"],
+ "default": "require",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "verify-ca",
+ "additionalProperties": false,
+ "description": "Verify-ca SSL mode.",
+ "required": ["mode", "ssl_ca_certificate"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-ca",
+ "enum": ["verify-ca"],
+ "default": "verify-ca",
+ "order": 0
+ },
+ "ssl_ca_certificate": {
+ "type": "string",
+ "title": "CA certificate",
+ "description": "Specifies the file name of a PEM file that contains Certificate Authority (CA) certificates for use with SSLMODE=verify-ca.\n See more information - in the docs.",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ }
+ }
+ },
+ {
+ "title": "verify-full",
+ "additionalProperties": false,
+ "description": "Verify-full SSL mode.",
+ "required": ["mode", "ssl_ca_certificate"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-full",
+ "enum": ["verify-full"],
+ "default": "verify-full",
+ "order": 0
+ },
+ "ssl_ca_certificate": {
+ "type": "string",
+ "title": "CA certificate",
+ "description": "Specifies the file name of a PEM file that contains Certificate Authority (CA) certificates for use with SSLMODE=verify-full.\n See more information - in the docs.",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ }
+ }
+ }
+ ]
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 7
+ }
+ }
+ },
+ "supportsIncremental": false,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "7b7d7a0d-954c-45a0-bcfc-39a634b97736",
+ "name": "Weaviate",
+ "dockerRepository": "airbyte/destination-weaviate",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/weaviate",
+ "icon": "weaviate.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/weaviate",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Destination Weaviate",
+ "type": "object",
+ "required": ["url"],
+ "additionalProperties": false,
+ "properties": {
+ "url": {
+ "type": "string",
+ "description": "The URL to the weaviate instance",
+ "examples": [
+ "http://localhost:8080",
+ "https://your-instance.semi.network"
+ ]
+ },
+ "username": {
+ "type": "string",
+ "description": "Username used with OIDC authentication",
+ "examples": ["xyz@weaviate.io"]
+ },
+ "password": {
+ "type": "string",
+ "description": "Password used with OIDC authentication",
+ "airbyte_secret": true
+ },
+ "batch_size": {
+ "type": "integer",
+ "description": "Batch size for writing to Weaviate",
+ "default": 100
+ },
+ "vectors": {
+ "type": "string",
+ "description": "Comma separated list of strings of `stream_name.vector_column_name` to specify which field holds the vectors.",
+ "examples": [
+ "my_table.my_vector_column, another_table.vector",
+ "mytable.vector"
+ ]
+ },
+ "id_schema": {
+ "type": "string",
+ "description": "Comma separated list of strings of `stream_name.id_column_name` to specify which field holds the ID of the record.",
+ "examples": [
+ "my_table.my_id_column, another_table.id",
+ "users.user_id"
+ ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["append", "overwrite"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "destinationDefinitionId": "94bd199c-2ff0-4aa2-b98e-17f0acb72610",
+ "name": "DuckDB",
+ "dockerRepository": "airbyte/destination-duckdb",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.io/integrations/destinations/duckdb",
+ "icon": "duckdb.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/destinations/duckdb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "DuckDB Destination Spec",
+ "type": "object",
+ "required": ["destination_path"],
+ "additionalProperties": false,
+ "properties": {
+ "destination_path": {
+ "type": "string",
+ "description": "Path to the destination.duckdb file. The file will be placed inside that local mount. For more information check out our docs",
+ "example": "/local/destination.duckdb"
+ },
+ "schema": {
+ "type": "string",
+ "description": "database schema, default for duckdb is main",
+ "example": "main"
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": ["overwrite", "append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }
+ ],
+ "sources": [
+ {
+ "sourceDefinitionId": "9f32dab3-77cb-45a1-9d33-347aa5fbe363",
+ "name": "ActiveCampaign",
+ "dockerRepository": "airbyte/source-activecampaign",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/activecampaign",
+ "icon": "activecampaign.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/activecampaign",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Activecampaign Spec",
+ "type": "object",
+ "required": ["api_key", "account_username"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true
+ },
+ "account_username": {
+ "type": "string",
+ "description": "Account Username"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "d3b7fa46-111b-419a-998a-d7f046f6d66d",
+ "name": "Adjust",
+ "dockerRepository": "airbyte/source-adjust",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/adjust",
+ "icon": "adjust.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://raw.githubusercontent.com/appchoose/airbyte/feature/source-adjust/docs/integrations/sources/adjust.md",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "description": "Adjust reporting API connector.",
+ "properties": {
+ "additional_metrics": {
+ "description": "Metrics names that are not pre-defined, such as cohort metrics or app specific metrics.",
+ "items": {
+ "type": "string"
+ },
+ "order": 3,
+ "title": "Additional metrics for ingestion",
+ "type": "array"
+ },
+ "api_token": {
+ "airbyte_secret": true,
+ "description": "Adjust API key, see https://help.adjust.com/en/article/report-service-api-authentication",
+ "order": 0,
+ "title": "API Token",
+ "type": "string"
+ },
+ "dimensions": {
+ "description": "Dimensions allow a user to break down metrics into groups using one or several parameters. For example, the number of installs by date, country and network. See https://help.adjust.com/en/article/reports-endpoint#dimensions for more information about the dimensions.",
+ "items": {
+ "enum": [
+ "os_name",
+ "device_type",
+ "app",
+ "app_token",
+ "store_id",
+ "store_type",
+ "app_network",
+ "currency",
+ "currency_code",
+ "network",
+ "campaign",
+ "campaign_network",
+ "campaign_id_network",
+ "adgroup",
+ "adgroup_network",
+ "adgroup_id_network",
+ "source_network",
+ "source_id_network",
+ "creative",
+ "creative_network",
+ "creative_id_network",
+ "country",
+ "country_code",
+ "region",
+ "partner_name",
+ "partner_id"
+ ],
+ "type": "string"
+ },
+ "minItems": 1,
+ "order": 4,
+ "title": "Dimensions",
+ "type": "array",
+ "uniqueItems": true
+ },
+ "ingest_start": {
+ "description": "Data ingest start date.",
+ "format": "date",
+ "order": 1,
+ "title": "Ingest Start Date",
+ "type": "string"
+ },
+ "metrics": {
+ "description": "Select at least one metric to query.",
+ "items": {
+ "enum": [
+ "network_cost",
+ "network_cost_diff",
+ "network_clicks",
+ "network_impressions",
+ "network_installs",
+ "network_installs_diff",
+ "network_ecpc",
+ "network_ecpi",
+ "network_ecpm",
+ "arpdau_ad",
+ "arpdau",
+ "arpdau_iap",
+ "ad_impressions",
+ "ad_rpm",
+ "ad_revenue",
+ "cohort_ad_revenue",
+ "cost",
+ "adjust_cost",
+ "all_revenue",
+ "cohort_all_revenue",
+ "daus",
+ "maus",
+ "waus",
+ "base_sessions",
+ "ctr",
+ "click_conversion_rate",
+ "click_cost",
+ "clicks",
+ "paid_clicks",
+ "deattributions",
+ "ecpc",
+ "gdpr_forgets",
+ "gross_profit",
+ "cohort_gross_profit",
+ "impression_conversion_rate",
+ "impression_cost",
+ "impressions",
+ "paid_impressions",
+ "install_cost",
+ "installs",
+ "paid_installs",
+ "installs_per_mile",
+ "limit_ad_tracking_installs",
+ "limit_ad_tracking_install_rate",
+ "limit_ad_tracking_reattribution_rate",
+ "limit_ad_tracking_reattributions",
+ "non_organic_installs",
+ "organic_installs",
+ "roas_ad",
+ "roas",
+ "roas_iap",
+ "reattributions",
+ "return_on_investment",
+ "revenue",
+ "cohort_revenue",
+ "revenue_events",
+ "revenue_to_cost",
+ "sessions",
+ "events",
+ "ecpi_all",
+ "ecpi",
+ "ecpm"
+ ],
+ "type": "string"
+ },
+ "minItems": 1,
+ "order": 2,
+ "title": "Metrics to ingest",
+ "type": "array",
+ "uniqueItems": true
+ },
+ "until_today": {
+ "default": false,
+ "description": "Syncs data up until today. Useful when running daily incremental syncs, and duplicates are not desired.",
+ "order": 5,
+ "title": "Until Today",
+ "type": "boolean"
+ }
+ },
+ "required": ["api_token", "ingest_start", "metrics", "dimensions"],
+ "title": "Adjust Spec",
+ "type": "object"
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "912eb6b7-a893-4a5b-b1c0-36ebbe2de8cd",
+ "name": "Aircall",
+ "dockerRepository": "airbyte/source-aircall",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/aircall",
+ "icon": "aircall.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/aircall",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Aircall Spec",
+ "type": "object",
+ "required": ["api_id", "api_token", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "api_id": {
+ "title": "API ID",
+ "type": "string",
+ "description": "App ID found at settings https://dashboard.aircall.io/integrations/api-keys",
+ "airbyte_secret": true
+ },
+ "api_token": {
+ "title": "API Token",
+ "type": "string",
+ "description": "App token found at settings (Ref- https://dashboard.aircall.io/integrations/api-keys)",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "title": "Date-From Filter",
+ "type": "string",
+ "description": "Date time filter for incremental filter, Specify which date to extract from.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
+ "examples": ["2022-03-01T00:00:00.000Z"],
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "14c6e7ea-97ed-4f5e-a7b5-25e9a80b8212",
+ "name": "Airtable",
+ "dockerRepository": "airbyte/source-airtable",
+ "dockerImageTag": "3.0.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/airtable",
+ "icon": "airtable.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/airtable",
+ "connectionSpecification": {
+ "$schema": "https://json-schema.org/draft-07/schema#",
+ "title": "Airtable Source Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authentication",
+ "type": "object",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": ["client_id", "client_secret", "refresh_token"],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "oauth2.0"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The client ID of the Airtable developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client secret",
+ "description": "The client secret the Airtable developer application.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "description": "The date-time when the access token should be refreshed.",
+ "format": "date-time"
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh token",
+ "description": "The key to refresh the expired access token.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "Personal Access Token",
+ "type": "object",
+ "required": ["api_key"],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "api_key"
+ },
+ "api_key": {
+ "type": "string",
+ "description": "The Personal Access Token for the Airtable account. See the Support Guide for more information on how to obtain this token.",
+ "title": "Personal Access Token",
+ "airbyte_secret": true,
+ "examples": ["key1234567890"]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "auth_method"],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "access_token"]
+ },
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "refresh_token"]
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "format": "date-time",
+ "path_in_connector_config": [
+ "credentials",
+ "token_expiry_date"
+ ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["api.airtable.com", "airtable.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "81ca39dc-4534-4dd2-b848-b0cfd2c11fce",
+ "name": "Aha",
+ "dockerRepository": "airbyte/source-aha",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/aha",
+ "icon": "aha.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/aha",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Aha Spec",
+ "type": "object",
+ "required": ["api_key", "url"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API Key",
+ "title": "API Bearer Token"
+ },
+ "url": {
+ "type": "string",
+ "description": "URL",
+ "title": "Aha Url Instance"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "db385323-9333-4fec-bec3-9e0ca9326c90",
+ "name": "Alpha Vantage",
+ "dockerRepository": "airbyte/source-alpha-vantage",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/alpha-vantage",
+ "icon": "alpha-vantage.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/alpha-vantage",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Alpha Vantage Spec",
+ "type": "object",
+ "required": ["api_key", "symbol"],
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "symbol": {
+ "title": "Symbol",
+ "type": "string",
+ "description": "Stock symbol (with exchange code)",
+ "examples": ["AAPL", "TSCO.LON"],
+ "order": 1
+ },
+ "interval": {
+ "title": "Interval",
+ "type": "string",
+ "description": "Time-series data point interval. Required for intraday endpoints.\n",
+ "enum": ["1min", "5min", "15min", "30min", "60min"],
+ "default": "1min",
+ "order": 2
+ },
+ "adjusted": {
+ "title": "Adjusted?",
+ "type": "boolean",
+ "description": "Whether to return adjusted data. Only applicable to intraday endpoints.\n",
+ "default": false,
+ "order": 3
+ },
+ "outputsize": {
+ "title": "Output Size",
+ "type": "string",
+ "description": "Whether to return full or compact data (the last 100 data points).\n",
+ "enum": ["compact", "full"],
+ "default": "compact",
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "1fa90628-2b9e-11ed-a261-0242ac120002",
+ "name": "AlloyDB for PostgreSQL",
+ "dockerRepository": "airbyte/source-alloydb",
+ "dockerImageTag": "2.0.23",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/alloydb",
+ "icon": "alloydb.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/postgres",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Postgres Source Spec",
+ "type": "object",
+ "required": ["host", "port", "database", "username"],
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0,
+ "group": "db"
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 5432,
+ "examples": ["5432"],
+ "order": 1,
+ "group": "db"
+ },
+ "database": {
+ "title": "Database Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2,
+ "group": "db"
+ },
+ "schemas": {
+ "title": "Schemas",
+ "description": "The list of schemas (case sensitive) to sync from. Defaults to public.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 0,
+ "uniqueItems": true,
+ "default": ["public"],
+ "order": 3,
+ "group": "db"
+ },
+ "username": {
+ "title": "Username",
+ "description": "Username to access the database.",
+ "type": "string",
+ "order": 4,
+ "group": "auth"
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 5,
+ "group": "auth",
+ "always_show": true
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (Eg. key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
+ "title": "JDBC URL Parameters (Advanced)",
+ "type": "string",
+ "order": 6,
+ "group": "advanced",
+ "pattern_descriptor": "key1=value1&key2=value2"
+ },
+ "ssl_mode": {
+ "title": "SSL Modes",
+ "description": "SSL connection modes. \n Read more in the docs.",
+ "type": "object",
+ "order": 8,
+ "group": "security",
+ "oneOf": [
+ {
+ "title": "disable",
+ "additionalProperties": true,
+ "description": "Disables encryption of communication between Airbyte and source database.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "disable",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "allow",
+ "additionalProperties": true,
+ "description": "Enables encryption only when required by the source database.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "allow",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "prefer",
+ "additionalProperties": true,
+ "description": "Allows unencrypted connection only if the source database does not support encryption.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "prefer",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "require",
+ "additionalProperties": true,
+ "description": "Always require encryption. If the source database server does not support encryption, connection will fail.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "require",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "verify-ca",
+ "additionalProperties": true,
+ "description": "Always require encryption and verifies that the source database server has a valid SSL certificate.",
+ "required": ["mode", "ca_certificate"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-ca",
+ "order": 0
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA Certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ },
+ "client_certificate": {
+ "type": "string",
+ "title": "Client Certificate",
+ "description": "Client certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 2,
+ "always_show": true
+ },
+ "client_key": {
+ "type": "string",
+ "title": "Client Key",
+ "description": "Client key",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 3,
+ "always_show": true
+ },
+ "client_key_password": {
+ "type": "string",
+ "title": "Client key password",
+ "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "verify-full",
+ "additionalProperties": true,
+ "description": "This is the most secure mode. Always require encryption and verifies the identity of the source database server.",
+ "required": ["mode", "ca_certificate"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-full",
+ "order": 0
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA Certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ },
+ "client_certificate": {
+ "type": "string",
+ "title": "Client Certificate",
+ "description": "Client certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 2,
+ "always_show": true
+ },
+ "client_key": {
+ "type": "string",
+ "title": "Client Key",
+ "description": "Client key",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 3,
+ "always_show": true
+ },
+ "client_key_password": {
+ "type": "string",
+ "title": "Client key password",
+ "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ },
+ "replication_method": {
+ "type": "object",
+ "title": "Replication Method",
+ "description": "Replication method for extracting data from the database.",
+ "order": 9,
+ "group": "advanced",
+ "oneOf": [
+ {
+ "title": "Standard",
+ "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.",
+ "required": ["method"],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "Standard",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "Logical Replication (CDC)",
+ "description": "Logical replication uses the Postgres write-ahead log (WAL) to detect inserts, updates, and deletes. This needs to be configured on the source database itself. Only available on Postgres 10 and above. Read the docs.",
+ "required": ["method", "replication_slot", "publication"],
+ "additionalProperties": true,
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "CDC",
+ "order": 1
+ },
+ "plugin": {
+ "type": "string",
+ "title": "Plugin",
+ "description": "A logical decoding plugin installed on the PostgreSQL server.",
+ "enum": ["pgoutput"],
+ "default": "pgoutput",
+ "order": 2
+ },
+ "replication_slot": {
+ "type": "string",
+ "title": "Replication Slot",
+ "description": "A plugin logical replication slot. Read about replication slots.",
+ "order": 3
+ },
+ "publication": {
+ "type": "string",
+ "title": "Publication",
+ "description": "A Postgres publication used for consuming changes. Read about publications and replication identities.",
+ "order": 4
+ },
+ "initial_waiting_seconds": {
+ "type": "integer",
+ "title": "Initial Waiting Time in Seconds (Advanced)",
+ "description": "The amount of time the connector will wait when it launches to determine if there is new data to sync or not. Defaults to 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about initial waiting time.",
+ "default": 300,
+ "order": 5,
+ "min": 120,
+ "max": 1200
+ },
+ "lsn_commit_behaviour": {
+ "type": "string",
+ "title": "LSN commit behaviour",
+ "description": "Determines when Airbtye should flush the LSN of processed WAL logs in the source database. `After loading Data in the destination` is default. If `While reading Data` is selected, in case of a downstream failure (while loading data into the destination), next sync would result in a full sync.",
+ "enum": [
+ "While reading Data",
+ "After loading Data in the destination"
+ ],
+ "default": "After loading Data in the destination",
+ "order": 6
+ }
+ }
+ }
+ ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [
+ {
+ "title": "No Tunnel",
+ "required": ["tunnel_method"],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "SSH Key Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "ssh_key"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Password Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "tunnel_user_password"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ],
+ "group": "security"
+ }
+ },
+ "groups": [
+ {
+ "id": "db"
+ },
+ {
+ "id": "auth"
+ },
+ {
+ "id": "security",
+ "title": "Security"
+ },
+ {
+ "id": "advanced",
+ "title": "Advanced"
+ }
+ ]
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["${host}", "${tunnel_method.tunnel_host}"]
+ }
+ },
+ {
+ "sourceDefinitionId": "6ff047c0-f5d5-4ce5-8c81-204a830fa7e1",
+ "name": "AWS CloudTrail",
+ "dockerRepository": "airbyte/source-aws-cloudtrail",
+ "dockerImageTag": "0.1.5",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/aws-cloudtrail",
+ "icon": "awscloudtrail.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/aws-cloudtrail",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Aws CloudTrail Spec",
+ "type": "object",
+ "required": [
+ "aws_key_id",
+ "aws_secret_key",
+ "aws_region_name",
+ "start_date"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "aws_key_id": {
+ "type": "string",
+ "title": "Key ID",
+ "description": "AWS CloudTrail Access Key ID. See the docs for more information on how to obtain this key.",
+ "airbyte_secret": true
+ },
+ "aws_secret_key": {
+ "type": "string",
+ "title": "Secret Key",
+ "description": "AWS CloudTrail Access Key ID. See the docs for more information on how to obtain this key.",
+ "airbyte_secret": true
+ },
+ "aws_region_name": {
+ "type": "string",
+ "title": "Region Name",
+ "description": "The default AWS Region to use, for example, us-west-1 or us-west-2. When specifying a Region inline during client initialization, this property is named region_name."
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date you would like to replicate data. Data in AWS CloudTrail is available for last 90 days only. Format: YYYY-MM-DD.",
+ "examples": ["2021-01-01"],
+ "default": "1970-01-01",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "format": "date"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "c6b0a29e-1da9-4512-9002-7bfd0cba2246",
+ "name": "Amazon Ads",
+ "dockerRepository": "airbyte/source-amazon-ads",
+ "dockerImageTag": "1.0.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-ads",
+ "icon": "amazonads.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-ads",
+ "connectionSpecification": {
+ "title": "Amazon Ads Spec",
+ "type": "object",
+ "properties": {
+ "auth_type": {
+ "title": "Auth Type",
+ "const": "oauth2.0",
+ "order": 0,
+ "type": "string"
+ },
+ "client_id": {
+ "title": "Client ID",
+ "description": "The client ID of your Amazon Ads developer application. See the docs for more information.",
+ "order": 1,
+ "type": "string"
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "description": "The client secret of your Amazon Ads developer application. See the docs for more information.",
+ "airbyte_secret": true,
+ "order": 2,
+ "type": "string"
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "description": "Amazon Ads refresh token. See the docs for more information on how to obtain this token.",
+ "airbyte_secret": true,
+ "order": 3,
+ "type": "string"
+ },
+ "region": {
+ "title": "Region",
+ "description": "Region to pull data from (EU/NA/FE). See docs for more details.",
+ "enum": ["NA", "EU", "FE"],
+ "type": "string",
+ "default": "NA",
+ "order": 4
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "The Start date for collecting reports, should not be more than 60 days in the past. In YYYY-MM-DD format",
+ "examples": ["2022-10-10", "2022-10-22"],
+ "order": 5,
+ "type": "string"
+ },
+ "profiles": {
+ "title": "Profile IDs",
+ "description": "Profile IDs you want to fetch data for. See docs for more details.",
+ "order": 6,
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "state_filter": {
+ "title": "State Filter",
+ "description": "Reflects the state of the Display, Product, and Brand Campaign streams as enabled, paused, or archived. If you do not populate this field, it will be ignored completely.",
+ "items": {
+ "type": "string",
+ "enum": ["enabled", "paused", "archived"]
+ },
+ "type": "array",
+ "uniqueItems": true,
+ "order": 7
+ },
+ "look_back_window": {
+ "title": "Look Back Window",
+ "description": "The amount of days to go back in time to get the updated data from Amazon Ads",
+ "examples": [3, 10],
+ "type": "integer",
+ "default": 3,
+ "order": 8
+ },
+ "report_record_types": {
+ "title": "Report Record Types",
+ "description": "Optional configuration which accepts an array of string of record types. Leave blank for default behaviour to pull all report types. Use this config option only if you want to pull specific report type(s). See docs for more details",
+ "items": {
+ "type": "string",
+ "enum": [
+ "adGroups",
+ "asins",
+ "asins_keywords",
+ "asins_targets",
+ "campaigns",
+ "keywords",
+ "productAds",
+ "targets"
+ ]
+ },
+ "type": "array",
+ "uniqueItems": true,
+ "order": 9
+ }
+ },
+ "required": ["client_id", "client_secret", "refresh_token"],
+ "additionalProperties": true
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["auth_type"],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": ["refresh_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [
+ "api.amazon.com",
+ "advertising-api.amazon.com",
+ "advertising-api-eu.amazon.com",
+ "advertising-api-fe.amazon.com"
+ ]
+ }
+ },
+ {
+ "sourceDefinitionId": "e55879a8-0ef8-4557-abcf-ab34c53ec460",
+ "name": "Amazon Seller Partner",
+ "dockerRepository": "airbyte/source-amazon-seller-partner",
+ "dockerImageTag": "1.0.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-seller-partner",
+ "icon": "amazonsellerpartner.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-seller-partner",
+ "changelogUrl": "https://docs.airbyte.com/integrations/sources/amazon-seller-partner",
+ "connectionSpecification": {
+ "title": "Amazon Seller Partner Spec",
+ "type": "object",
+ "properties": {
+ "app_id": {
+ "title": "App Id",
+ "description": "Your Amazon App ID",
+ "airbyte_secret": true,
+ "order": 0,
+ "type": "string"
+ },
+ "auth_type": {
+ "title": "Auth Type",
+ "const": "oauth2.0",
+ "order": 1,
+ "type": "string"
+ },
+ "lwa_app_id": {
+ "title": "LWA Client Id",
+ "description": "Your Login with Amazon Client ID.",
+ "order": 2,
+ "type": "string"
+ },
+ "lwa_client_secret": {
+ "title": "LWA Client Secret",
+ "description": "Your Login with Amazon Client Secret.",
+ "airbyte_secret": true,
+ "order": 3,
+ "type": "string"
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "description": "The Refresh Token obtained via OAuth flow authorization.",
+ "airbyte_secret": true,
+ "order": 4,
+ "type": "string"
+ },
+ "aws_access_key": {
+ "title": "AWS Access Key",
+ "description": "Specifies the AWS access key used as part of the credentials to authenticate the user.",
+ "airbyte_secret": true,
+ "order": 5,
+ "type": "string"
+ },
+ "aws_secret_key": {
+ "title": "AWS Secret Access Key",
+ "description": "Specifies the AWS secret key used as part of the credentials to authenticate the user.",
+ "airbyte_secret": true,
+ "order": 6,
+ "type": "string"
+ },
+ "role_arn": {
+ "title": "Role ARN",
+ "description": "Specifies the Amazon Resource Name (ARN) of an IAM role that you want to use to perform operations requested using this profile. (Needs permission to 'Assume Role' STS).",
+ "airbyte_secret": true,
+ "order": 7,
+ "type": "string"
+ },
+ "replication_start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2017-01-25T00:00:00Z"],
+ "order": 8,
+ "type": "string"
+ },
+ "replication_end_date": {
+ "title": "End Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data after this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$|^$",
+ "examples": ["2017-01-25T00:00:00Z"],
+ "order": 9,
+ "type": "string"
+ },
+ "period_in_days": {
+ "title": "Period In Days",
+ "description": "Will be used for stream slicing for initial full_refresh sync when no updated state is present for reports that support sliced incremental sync.",
+ "default": 90,
+ "maximum": 90,
+ "examples": ["1", "10", "30", "60", "90"],
+ "order": 10,
+ "type": "integer"
+ },
+ "report_options": {
+ "title": "Report Options",
+ "description": "Additional information passed to reports. This varies by report type. Must be a valid json string.",
+ "examples": [
+ "{\"GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT\": {\"reportPeriod\": \"WEEK\"}}",
+ "{\"GET_SOME_REPORT\": {\"custom\": \"true\"}}"
+ ],
+ "order": 11,
+ "type": "string"
+ },
+ "max_wait_seconds": {
+ "title": "Max wait time for reports (in seconds)",
+ "description": "Sometimes report can take up to 30 minutes to generate. This will set the limit for how long to wait for a successful report.",
+ "default": 500,
+ "examples": ["500", "1980"],
+ "order": 12,
+ "type": "integer"
+ },
+ "aws_environment": {
+ "title": "AWSEnvironment",
+ "description": "An enumeration.",
+ "enum": ["PRODUCTION", "SANDBOX"],
+ "type": "string"
+ },
+ "region": {
+ "title": "AWSRegion",
+ "description": "An enumeration.",
+ "enum": [
+ "AE",
+ "AU",
+ "BE",
+ "BR",
+ "CA",
+ "DE",
+ "EG",
+ "ES",
+ "FR",
+ "GB",
+ "IN",
+ "IT",
+ "JP",
+ "MX",
+ "NL",
+ "PL",
+ "SA",
+ "SE",
+ "SG",
+ "TR",
+ "UK",
+ "US"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "app_id",
+ "lwa_app_id",
+ "lwa_client_secret",
+ "refresh_token",
+ "replication_start_date",
+ "aws_environment",
+ "region"
+ ],
+ "additionalProperties": true,
+ "definitions": {
+ "AWSEnvironment": {
+ "title": "AWSEnvironment",
+ "description": "An enumeration.",
+ "enum": ["PRODUCTION", "SANDBOX"],
+ "type": "string"
+ },
+ "AWSRegion": {
+ "title": "AWSRegion",
+ "description": "An enumeration.",
+ "enum": [
+ "AE",
+ "AU",
+ "BE",
+ "BR",
+ "CA",
+ "DE",
+ "EG",
+ "ES",
+ "FR",
+ "GB",
+ "IN",
+ "IT",
+ "JP",
+ "MX",
+ "NL",
+ "PL",
+ "SA",
+ "SE",
+ "SG",
+ "TR",
+ "UK",
+ "US"
+ ],
+ "type": "string"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["auth_type"],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "app_id": {
+ "type": "string",
+ "path_in_connector_config": ["app_id"]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": ["refresh_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "lwa_app_id": {
+ "type": "string"
+ },
+ "lwa_client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "lwa_app_id": {
+ "type": "string",
+ "path_in_connector_config": ["lwa_app_id"]
+ },
+ "lwa_client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["lwa_client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "983fd355-6bf3-4709-91b5-37afa391eeb6",
+ "name": "Amazon SQS",
+ "dockerRepository": "airbyte/source-amazon-sqs",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-sqs",
+ "icon": "awssqs.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-sqs",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Amazon SQS Source Spec",
+ "type": "object",
+ "required": ["queue_url", "region", "delete_messages"],
+ "additionalProperties": false,
+ "properties": {
+ "queue_url": {
+ "title": "Queue URL",
+ "description": "URL of the SQS Queue",
+ "type": "string",
+ "examples": [
+ "https://sqs.eu-west-1.amazonaws.com/1234567890/my-example-queue"
+ ],
+ "order": 0
+ },
+ "region": {
+ "title": "AWS Region",
+ "description": "AWS Region of the SQS Queue",
+ "type": "string",
+ "enum": [
+ "us-east-1",
+ "us-east-2",
+ "us-west-1",
+ "us-west-2",
+ "af-south-1",
+ "ap-east-1",
+ "ap-south-1",
+ "ap-northeast-1",
+ "ap-northeast-2",
+ "ap-northeast-3",
+ "ap-southeast-1",
+ "ap-southeast-2",
+ "ca-central-1",
+ "cn-north-1",
+ "cn-northwest-1",
+ "eu-central-1",
+ "eu-north-1",
+ "eu-south-1",
+ "eu-west-1",
+ "eu-west-2",
+ "eu-west-3",
+ "sa-east-1",
+ "me-south-1",
+ "us-gov-east-1",
+ "us-gov-west-1"
+ ],
+ "order": 1
+ },
+ "delete_messages": {
+ "title": "Delete Messages After Read",
+ "description": "If Enabled, messages will be deleted from the SQS Queue after being read. If Disabled, messages are left in the queue and can be read more than once. WARNING: Enabling this option can result in data loss in cases of failure, use with caution, see documentation for more detail. ",
+ "type": "boolean",
+ "default": false,
+ "order": 2
+ },
+ "max_batch_size": {
+ "title": "Max Batch Size",
+ "description": "Max amount of messages to get in one batch (10 max)",
+ "type": "integer",
+ "examples": ["5"],
+ "order": 3
+ },
+ "max_wait_time": {
+ "title": "Max Wait Time",
+ "description": "Max amount of time in seconds to wait for messages in a single poll (20 max)",
+ "type": "integer",
+ "examples": ["5"],
+ "order": 4
+ },
+ "attributes_to_return": {
+ "title": "Message Attributes To Return",
+ "description": "Comma separated list of Mesage Attribute names to return",
+ "type": "string",
+ "examples": ["attr1,attr2"],
+ "order": 5
+ },
+ "visibility_timeout": {
+ "title": "Message Visibility Timeout",
+ "description": "Modify the Visibility Timeout of the individual message from the Queue's default (seconds).",
+ "type": "integer",
+ "examples": ["15"],
+ "order": 6
+ },
+ "access_key": {
+ "title": "AWS IAM Access Key ID",
+ "description": "The Access Key ID of the AWS IAM Role to use for pulling messages",
+ "type": "string",
+ "examples": ["xxxxxHRNxxx3TBxxxxxx"],
+ "airbyte_secret": true,
+ "order": 7
+ },
+ "secret_key": {
+ "title": "AWS IAM Secret Key",
+ "description": "The Secret Key of the AWS IAM Role to use for pulling messages",
+ "type": "string",
+ "examples": ["hu+qE5exxxxT6o/ZrKsxxxxxxBhxxXLexxxxxVKz"],
+ "airbyte_secret": true,
+ "order": 8
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "fa9f58c6-2d03-4237-aaa4-07d75e0c1396",
+ "name": "Amplitude",
+ "dockerRepository": "airbyte/source-amplitude",
+ "dockerImageTag": "0.2.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/amplitude",
+ "icon": "amplitude.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/amplitude",
+ "connectionSpecification": {
+ "$schema": "https://json-schema.org/draft-07/schema#",
+ "title": "Amplitude Spec",
+ "type": "object",
+ "required": ["api_key", "secret_key", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "data_region": {
+ "type": "string",
+ "title": "Data region",
+ "description": "Amplitude data region server",
+ "enum": ["Standard Server", "EU Residency Server"],
+ "default": "Standard Server"
+ },
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Amplitude API Key. See the setup guide for more information on how to obtain this key.",
+ "airbyte_secret": true
+ },
+ "secret_key": {
+ "type": "string",
+ "title": "Secret Key",
+ "description": "Amplitude Secret Key. See the setup guide for more information on how to obtain this key.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Replication Start Date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2021-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": ["2021-01-25T00:00:00Z"]
+ },
+ "request_time_range": {
+ "type": "integer",
+ "title": "Request time range",
+ "description": "According to Considerations too big time range in request can cause a timeout error. In this case, set shorter time interval in hours.",
+ "default": 24,
+ "minimum": 1,
+ "maximum": 8760
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["amplitude.com", "analytics.eu.amplitude.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "47f17145-fe20-4ef5-a548-e29b048adf84",
+ "name": "Apify Dataset",
+ "dockerRepository": "airbyte/source-apify-dataset",
+ "dockerImageTag": "0.1.11",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/apify-dataset",
+ "icon": "apify.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/apify-dataset",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Apify Dataset Spec",
+ "type": "object",
+ "required": ["datasetId"],
+ "additionalProperties": false,
+ "properties": {
+ "datasetId": {
+ "type": "string",
+ "title": "Dataset ID",
+ "description": "ID of the dataset you would like to load to Airbyte."
+ },
+ "clean": {
+ "type": "boolean",
+ "title": "Clean",
+ "description": "If set to true, only clean items will be downloaded from the dataset. See description of what clean means in Apify API docs. If not sure, set clean to false."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "b4375641-e270-41d3-9c20-4f9cecad87a8",
+ "name": "Appfollow",
+ "dockerRepository": "airbyte/source-appfollow",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/appfollow",
+ "icon": "appfollow.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/appfollow",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Appfollow Spec",
+ "type": "object",
+ "required": ["ext_id", "country", "cid", "api_secret"],
+ "additionalProperties": true,
+ "properties": {
+ "ext_id": {
+ "type": "string",
+ "title": "app external id",
+ "description": "for App Store — this is 9-10 digits identification number; for Google Play — this is bundle name;"
+ },
+ "cid": {
+ "type": "string",
+ "title": "client id",
+ "description": "client id provided by Appfollow"
+ },
+ "api_secret": {
+ "type": "string",
+ "title": "api secret",
+ "description": "api secret provided by Appfollow",
+ "airbyte_secret": true
+ },
+ "country": {
+ "type": "string",
+ "title": "country",
+ "description": "getting data by Country"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "e59c8416-c2fa-4bd3-9e95-52677ea281c1",
+ "name": "Apple Search Ads",
+ "dockerRepository": "airbyte/source-apple-search-ads",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/apple-search-ads",
+ "icon": "apple.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/apple-search-ads",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Apple Search Ads Spec",
+ "type": "object",
+ "required": ["org_id", "client_id", "client_secret", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "org_id": {
+ "type": "integer",
+ "title": "Org Id",
+ "description": "The identifier of the organization that owns the campaign. Your Org Id is the same as your account in the Apple Search Ads UI."
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client Id",
+ "description": "A user identifier for the token request. See here",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "A string that authenticates the user’s setup request. See here",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "Start getting data from that date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": ["2020-01-01"]
+ },
+ "end_date": {
+ "type": "string",
+ "title": "End Date",
+ "description": "Data is retrieved until that date (included)",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": ["2021-01-01"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "16447954-e6a8-4593-b140-43dea13bc457",
+ "name": "AppsFlyer",
+ "dockerRepository": "airbyte/source-appsflyer",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/appsflyer",
+ "icon": "appsflyer.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Appsflyer Spec",
+ "type": "object",
+ "required": ["app_id", "api_token", "start_date"],
+ "additionalProperties": false,
+ "properties": {
+ "app_id": {
+ "type": "string",
+ "description": "App identifier as found in AppsFlyer."
+ },
+ "api_token": {
+ "type": "string",
+ "description": "Pull API token for authentication. If you change the account admin, the token changes, and you must update scripts with the new token. Get the API token in the Dashboard.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "description": "The default value to use if no bookmark exists for an endpoint. Raw Reports historical lookback is limited to 90 days.",
+ "examples": ["2021-11-16", "2021-11-16 15:00:00"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}( [0-9]{2}:[0-9]{2}:[0-9]{2})?$"
+ },
+ "timezone": {
+ "type": "string",
+ "description": "Time zone in which date times are stored. The project timezone may be found in the App settings in the AppsFlyer console.",
+ "default": "UTC",
+ "examples": ["US/Pacific", "UTC"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "2af123bf-0aaf-4e0d-9784-cb497f23741a",
+ "name": "Appstore",
+ "dockerRepository": "airbyte/source-appstore-singer",
+ "dockerImageTag": "0.2.6",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/appstore",
+ "icon": "appstore.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/appstore",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Appstore Singer Spec",
+ "type": "object",
+ "required": [
+ "key_id",
+ "private_key",
+ "issuer_id",
+ "vendor",
+ "start_date"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "key_id": {
+ "type": "string",
+ "title": "Key ID",
+ "description": "Appstore Key ID. See the docs for more information on how to obtain this key."
+ },
+ "private_key": {
+ "type": "string",
+ "title": "Private Key",
+ "description": "Appstore Private Key. See the docs for more information on how to obtain this key.",
+ "airbyte_secret": true,
+ "multiline": true
+ },
+ "issuer_id": {
+ "type": "string",
+ "title": "Issuer ID",
+ "description": "Appstore Issuer ID. See the docs for more information on how to obtain this ID."
+ },
+ "vendor": {
+ "type": "string",
+ "title": "Vendor ID",
+ "description": "Appstore Vendor ID. See the docs for more information on how to obtain this ID."
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": ["2020-11-16T00:00:00Z"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "d0243522-dccf-4978-8ba0-37ed47a0bdbf",
+ "name": "Asana",
+ "dockerRepository": "airbyte/source-asana",
+ "dockerImageTag": "0.1.5",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/asana",
+ "icon": "asana.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Asana Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authentication mechanism",
+ "description": "Choose how to authenticate to Github",
+ "type": "object",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "Authenticate with Personal Access Token",
+ "required": ["personal_access_token"],
+ "properties": {
+ "option_title": {
+ "type": "string",
+ "title": "Credentials title",
+ "description": "PAT Credentials",
+ "const": "PAT Credentials"
+ },
+ "personal_access_token": {
+ "type": "string",
+ "title": "Personal Access Token",
+ "description": "Asana Personal Access Token (generate yours here).",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "Authenticate via Asana (Oauth)",
+ "required": ["client_id", "client_secret", "refresh_token"],
+ "properties": {
+ "option_title": {
+ "type": "string",
+ "title": "Credentials title",
+ "description": "OAuth Credentials",
+ "const": "OAuth Credentials"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "",
+ "description": "",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "",
+ "description": "",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "",
+ "description": "",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": ["credentials", "1"],
+ "oauthFlowInitParameters": [["client_id"], ["client_secret"]],
+ "oauthFlowOutputParameters": [["refresh_token"]]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta"
+ },
+ {
+ "sourceDefinitionId": "4e8c9fa0-3634-499b-b948-11581b5c3efa",
+ "name": "Ashby",
+ "dockerRepository": "airbyte/source-ashby",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/ashby",
+ "icon": "ashby.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://developers.ashbyhq.com/reference/introduction",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Ashby Spec",
+ "type": "object",
+ "required": ["api_key", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "Ashby API key",
+ "description": "The Ashby API Key, see doc here.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": ["2017-01-25T00:00:00Z"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "6c504e48-14aa-4221-9a72-19cf5ff1ae78",
+ "name": "Auth0",
+ "dockerRepository": "airbyte/source-auth0",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/auth0",
+ "icon": "auth0.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://auth0.com/docs/api/management/v2/",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Auth0 Management API Spec",
+ "type": "object",
+ "required": ["base_url", "credentials"],
+ "additionalProperties": true,
+ "properties": {
+ "base_url": {
+ "type": "string",
+ "title": "Base URL",
+ "examples": ["https://dev-yourOrg.us.auth0.com/"],
+ "description": "The Authentication API is served over HTTPS. All URLs referenced in the documentation have the following base `https://YOUR_DOMAIN`"
+ },
+ "credentials": {
+ "title": "Authentication Method",
+ "type": "object",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "OAuth2 Confidential Application",
+ "required": [
+ "auth_type",
+ "client_id",
+ "client_secret",
+ "audience"
+ ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "title": "Authentication Method",
+ "const": "oauth2_confidential_application",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "description": "Your application's Client ID. You can find this value on the application's settings tab after you login the admin portal.",
+ "type": "string",
+ "examples": ["Client_ID"]
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "description": "Your application's Client Secret. You can find this value on the application's settings tab after you login the admin portal.",
+ "type": "string",
+ "examples": ["Client_Secret"],
+ "airbyte_secret": true
+ },
+ "audience": {
+ "title": "Audience",
+ "description": "The audience for the token, which is your API. You can find this in the Identifier field on your API's settings tab",
+ "type": "string",
+ "examples": ["https://dev-yourOrg.us.auth0.com/api/v2/"]
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "OAuth2 Access Token",
+ "required": ["access_token", "auth_type"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "title": "Authentication Method",
+ "const": "oauth2_access_token",
+ "order": 0
+ },
+ "access_token": {
+ "title": "OAuth2 Access Token",
+ "description": "Also called API Access Token The access token used to call the Auth0 Management API Token. It's a JWT that contains specific grant permissions knowns as scopes.",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "798ae795-5189-42b6-b64e-3cb91db93338",
+ "name": "Azure Table Storage",
+ "dockerRepository": "airbyte/source-azure-table",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/azure-table",
+ "icon": "azureblobstorage.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Azure Data Table Spec",
+ "type": "object",
+ "required": ["storage_account_name", "storage_access_key"],
+ "properties": {
+ "storage_account_name": {
+ "title": "Account Name",
+ "type": "string",
+ "description": "The name of your storage account.",
+ "order": 0,
+ "airbyte_secret": false
+ },
+ "storage_access_key": {
+ "title": "Access Key",
+ "type": "string",
+ "description": "Azure Table Storage Access Key. See the docs for more information on how to obtain this key.",
+ "order": 1,
+ "airbyte_secret": true
+ },
+ "storage_endpoint_suffix": {
+ "title": "Endpoint Suffix",
+ "type": "string",
+ "description": "Azure Table Storage service account URL suffix. See the docs for more information on how to obtain endpoint suffix",
+ "order": 2,
+ "default": "core.windows.net",
+ "examples": ["core.windows.net", "core.chinacloudapi.cn"],
+ "airbyte_secret": false
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "fdaaba68-4875-4ed9-8fcd-4ae1e0a25093",
+ "name": "Azure Blob Storage",
+ "dockerRepository": "airbyte/source-azure-blob-storage",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/azure-blob-storage",
+ "icon": "azureblobstorage.svg",
+ "sourceType": "file",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/azureblobstorage",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "AzureBlobStorage Source Spec",
+ "type": "object",
+ "required": [
+ "azure_blob_storage_account_name",
+ "azure_blob_storage_account_key",
+ "azure_blob_storage_container_name",
+ "format"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "azure_blob_storage_endpoint": {
+ "title": "Endpoint Domain Name",
+ "type": "string",
+ "default": "blob.core.windows.net",
+ "description": "This is Azure Blob Storage endpoint domain name. Leave default value (or leave it empty if run container from command line) to use Microsoft native from example.",
+ "examples": ["blob.core.windows.net"]
+ },
+ "azure_blob_storage_container_name": {
+ "title": "Azure blob storage container (Bucket) Name",
+ "type": "string",
+ "description": "The name of the Azure blob storage container.",
+ "examples": ["airbytetescontainername"]
+ },
+ "azure_blob_storage_account_name": {
+ "title": "Azure Blob Storage account name",
+ "type": "string",
+ "description": "The account's name of the Azure Blob Storage.",
+ "examples": ["airbyte5storage"]
+ },
+ "azure_blob_storage_account_key": {
+ "title": "Azure Blob Storage account key",
+ "description": "The Azure blob storage account key.",
+ "airbyte_secret": true,
+ "type": "string",
+ "examples": [
+ "Z8ZkZpteggFx394vm+PJHnGTvdRncaYS+JhLKdj789YNmD+iyGTnG+PV+POiuYNhBg/ACS+LKjd%4FG3FHGN12Nd=="
+ ]
+ },
+ "azure_blob_storage_blobs_prefix": {
+ "title": "Azure Blob Storage blobs prefix",
+ "description": "The Azure blob storage prefix to be applied",
+ "type": "string",
+ "examples": ["FolderA/FolderB/"]
+ },
+ "azure_blob_storage_schema_inference_limit": {
+ "title": "Azure Blob Storage schema inference limit",
+ "description": "The Azure blob storage blobs to scan for inferring the schema, useful on large amounts of data with consistent structure",
+ "type": "integer",
+ "examples": ["500"]
+ },
+ "format": {
+ "title": "Input Format",
+ "type": "object",
+ "description": "Input data format",
+ "oneOf": [
+ {
+ "title": "JSON Lines: newline-delimited JSON",
+ "required": ["format_type"],
+ "properties": {
+ "format_type": {
+ "type": "string",
+ "const": "JSONL"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "971c3e1e-78a5-411e-ad56-c4052b50876b",
+ "name": "Babelforce",
+ "dockerRepository": "airbyte/source-babelforce",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/babelforce",
+ "icon": "babelforce.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Babelforce Spec",
+ "type": "object",
+ "required": ["region", "access_key_id", "access_token"],
+ "additionalProperties": false,
+ "properties": {
+ "region": {
+ "type": "string",
+ "title": "Region",
+ "default": "services",
+ "description": "Babelforce region",
+ "enum": ["services", "us-east", "ap-southeast"],
+ "order": 1
+ },
+ "access_key_id": {
+ "type": "string",
+ "title": "Access Key ID",
+ "description": "The Babelforce access key ID",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The Babelforce access token",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "date_created_from": {
+ "type": "integer",
+ "title": "Date Created from",
+ "description": "Timestamp in Unix the replication from Babelforce API will start from. For example 1651363200 which corresponds to 2022-05-01 00:00:00.",
+ "examples": [1651363200],
+ "order": 4
+ },
+ "date_created_to": {
+ "type": "integer",
+ "title": "Date Created to",
+ "description": "Timestamp in Unix the replication from Babelforce will be up to. For example 1651363200 which corresponds to 2022-05-01 00:00:00.",
+ "examples": [1651363200],
+ "order": 5
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "90916976-a132-4ce9-8bce-82a03dd58788",
+ "name": "BambooHR",
+ "dockerRepository": "airbyte/source-bamboo-hr",
+ "dockerImageTag": "0.2.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/bamboo-hr",
+ "icon": "bamboohr.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/bamboo-hr",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Bamboo HR Spec",
+ "type": "object",
+ "required": ["subdomain", "api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "subdomain": {
+ "type": "string",
+ "description": "Sub Domain of bamboo hr"
+ },
+ "api_key": {
+ "type": "string",
+ "description": "Api key of bamboo hr",
+ "airbyte_secret": true
+ },
+ "custom_reports_fields": {
+ "type": "string",
+ "default": "",
+ "description": "Comma-separated list of fields to include in custom reports."
+ },
+ "custom_reports_include_default_fields": {
+ "type": "boolean",
+ "default": true,
+ "description": "If true, the custom reports endpoint will include the default fields defined here: https://documentation.bamboohr.com/docs/list-of-field-names."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "59c5501b-9f95-411e-9269-7143c939adbd",
+ "name": "BigCommerce",
+ "dockerRepository": "airbyte/source-bigcommerce",
+ "dockerImageTag": "0.1.10",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/bigcommerce",
+ "icon": "bigcommerce.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/bigcommerce",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "BigCommerce Source CDK Specifications",
+ "type": "object",
+ "required": ["start_date", "store_hash", "access_token"],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date you would like to replicate data. Format: YYYY-MM-DD.",
+ "examples": ["2021-01-01"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
+ },
+ "store_hash": {
+ "type": "string",
+ "title": "Store Hash",
+ "description": "The hash code of the store. For https://api.bigcommerce.com/stores/HASH_CODE/v3/, The store's hash code is 'HASH_CODE'."
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "bfd1ddf8-ae8a-4620-b1d7-55597d2ba08c",
+ "name": "BigQuery",
+ "dockerRepository": "airbyte/source-bigquery",
+ "dockerImageTag": "0.2.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/bigquery",
+ "icon": "bigquery.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/bigquery",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "BigQuery Source Spec",
+ "type": "object",
+ "required": ["project_id", "credentials_json"],
+ "properties": {
+ "project_id": {
+ "type": "string",
+ "description": "The GCP project ID for the project containing the target BigQuery dataset.",
+ "title": "Project ID"
+ },
+ "dataset_id": {
+ "type": "string",
+ "description": "The dataset ID to search for tables and views. If you are only loading data from one dataset, setting this option could result in much faster schema discovery.",
+ "title": "Default Dataset ID"
+ },
+ "credentials_json": {
+ "type": "string",
+ "description": "The contents of your Service Account Key JSON file. See the docs for more information on how to obtain this key.",
+ "title": "Credentials JSON",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": true,
+ "supportsDBT": true,
+ "supported_destination_sync_modes": [],
+ "supported_sync_modes": ["overwrite", "append", "append_dedup"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "47f25999-dd5e-4636-8c39-e7cea2453331",
+ "name": "Bing Ads",
+ "dockerRepository": "airbyte/source-bing-ads",
+ "dockerImageTag": "0.1.20",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/bing-ads",
+ "icon": "bingads.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/bing-ads",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Bing Ads Spec",
+ "type": "object",
+ "required": [
+ "developer_token",
+ "client_id",
+ "refresh_token",
+ "reports_start_date"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "oauth2.0"
+ },
+ "tenant_id": {
+ "type": "string",
+ "title": "Tenant ID",
+ "description": "The Tenant ID of your Microsoft Advertising developer application. Set this to \"common\" unless you know you need a different value.",
+ "airbyte_secret": true,
+ "default": "common",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your Microsoft Advertising developer application.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your Microsoft Advertising developer application.",
+ "default": "",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "Refresh Token to renew the expired Access Token.",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "developer_token": {
+ "type": "string",
+ "title": "Developer Token",
+ "description": "Developer token associated with user. See more info in the docs.",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "reports_start_date": {
+ "type": "string",
+ "title": "Reports replication start date",
+ "format": "date",
+ "default": "2020-01-01",
+ "description": "The start date from which to begin replicating report data. Any data generated before this date will not be replicated in reports. This is a UTC date in YYYY-MM-DD format.",
+ "order": 5
+ },
+ "lookback_window": {
+ "title": "Lookback window",
+ "description": "Also known as attribution or conversion window. How far into the past to look for records (in days). If your conversion window has an hours/minutes granularity, round it up to the number of days exceeding. Used only for performance report streams in incremental mode.",
+ "type": "integer",
+ "default": 0,
+ "minimum": 0,
+ "maximum": 90,
+ "order": 6
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["auth_method"],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "tenant_id": {
+ "type": "string",
+ "path_in_connector_config": ["tenant_id"]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": ["refresh_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [
+ "bingads.microsoft.com",
+ "login.microsoftonline.com",
+ "login.live.com",
+ "login.windows-ppe.net",
+ "ads.microsoft.com",
+ "api.ads.microsoft.com"
+ ]
+ }
+ },
+ {
+ "sourceDefinitionId": "63cea06f-1c75-458d-88fe-ad48c7cb27fd",
+ "name": "Braintree",
+ "dockerRepository": "airbyte/source-braintree",
+ "dockerImageTag": "0.1.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/braintree",
+ "icon": "braintree.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/braintree",
+ "connectionSpecification": {
+ "title": "Braintree Spec",
+ "type": "object",
+ "properties": {
+ "merchant_id": {
+ "title": "Merchant ID",
+ "description": "The unique identifier for your entire gateway account. See the docs for more information on how to obtain this ID.",
+ "name": "Merchant ID",
+ "type": "string"
+ },
+ "public_key": {
+ "title": "Public Key",
+ "description": "Braintree Public Key. See the docs for more information on how to obtain this key.",
+ "name": "Public Key",
+ "type": "string"
+ },
+ "private_key": {
+ "title": "Private Key",
+ "description": "Braintree Private Key. See the docs for more information on how to obtain this key.",
+ "name": "Private Key",
+ "airbyte_secret": true,
+ "type": "string"
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "name": "Start Date",
+ "examples": ["2020", "2020-12-30", "2020-11-22 20:20:05"],
+ "type": "string",
+ "format": "date-time"
+ },
+ "environment": {
+ "title": "Environment",
+ "description": "Environment specifies where the data will come from.",
+ "name": "Environment",
+ "examples": ["sandbox", "production", "qa", "development"],
+ "enum": ["Development", "Sandbox", "Qa", "Production"],
+ "type": "string"
+ }
+ },
+ "required": [
+ "merchant_id",
+ "public_key",
+ "private_key",
+ "environment"
+ ]
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "7c37685e-8512-4901-addf-9afbef6c0de9",
+ "name": "Breezometer",
+ "dockerRepository": "airbyte/source-breezometer",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/breezometer",
+ "icon": "breezometer.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/breezometer",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Breezometer Spec",
+ "type": "object",
+ "required": ["api_key", "latitude", "longitude"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "tittle": "API Key",
+ "description": "Your API Access Key. See here.",
+ "airbyte_secret": true
+ },
+ "latitude": {
+ "type": "string",
+ "tittle": "Latitude",
+ "description": "Latitude of the monitored location.",
+ "examples": ["54.675003"]
+ },
+ "longitude": {
+ "type": "string",
+ "tittle": "Longitude",
+ "description": "Longitude of the monitored location.",
+ "examples": ["-113.550282"]
+ },
+ "days_to_forecast": {
+ "type": "integer",
+ "tittle": "Days to Forecast",
+ "description": "Number of days to forecast. Minimum 1, maximum 3. Valid for Polen and Weather Forecast streams.",
+ "examples": [3]
+ },
+ "hours_to_forecast": {
+ "type": "integer",
+ "tittle": "Hours to Forecast",
+ "description": "Number of hours to forecast. Minimum 1, maximum 96. Valid for Air Quality Forecast stream.",
+ "examples": [30]
+ },
+ "historic_hours": {
+ "type": "integer",
+ "tittle": "Historic Hours",
+ "description": "Number of hours retireve from Air Quality History stream. Minimum 1, maximum 720.",
+ "examples": [30]
+ },
+ "radius": {
+ "type": "integer",
+ "tittle": "Radius",
+ "description": "Desired radius from the location provided. Minimum 5, maximum 100. Valid for Wildfires streams.",
+ "examples": [50]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "dc98a6ad-2dd1-47b6-9529-2ec35820f9c6",
+ "name": "CallRail",
+ "dockerRepository": "airbyte/source-callrail",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/callrail",
+ "icon": "callrail.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/callrail",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Call Rail Spec",
+ "type": "object",
+ "required": ["api_key", "account_id", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API access key",
+ "airbyte_secret": true
+ },
+ "account_id": {
+ "type": "string",
+ "description": "Account ID",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "description": "Start getting data from that date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": ["%Y-%m-%d"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "bb1a6d31-6879-4819-a2bd-3eed299ea8e2",
+ "name": "Cart.com",
+ "dockerRepository": "airbyte/source-cart",
+ "dockerImageTag": "0.2.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/cart",
+ "icon": "cart.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/cart",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Cart.com Spec",
+ "type": "object",
+ "required": ["start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authorization Method",
+ "description": "",
+ "type": "object",
+ "oneOf": [
+ {
+ "title": "Central API Router",
+ "type": "object",
+ "order": 0,
+ "required": [
+ "auth_type",
+ "user_name",
+ "user_secret",
+ "site_id"
+ ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "CENTRAL_API_ROUTER",
+ "order": 0
+ },
+ "user_name": {
+ "type": "string",
+ "title": "User Name",
+ "description": "Enter your application's User Name",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "user_secret": {
+ "type": "string",
+ "title": "User Secret",
+ "description": "Enter your application's User Secret",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "site_id": {
+ "type": "string",
+ "title": "Site ID",
+ "description": "You can determine a site provisioning site Id by hitting https://site.com/store/sitemonitor.aspx and reading the response param PSID",
+ "airbyte_secret": true,
+ "order": 3
+ }
+ }
+ },
+ {
+ "title": "Single Store Access Token",
+ "type": "object",
+ "order": 1,
+ "required": ["auth_type", "access_token", "store_name"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "SINGLE_STORE_ACCESS_TOKEN",
+ "order": 0
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "airbyte_secret": true,
+ "order": 1,
+ "description": "Access Token for making authenticated requests."
+ },
+ "store_name": {
+ "type": "string",
+ "title": "Store Name",
+ "order": 2,
+ "description": "The name of Cart.com Online Store. All API URLs start with https://[mystorename.com]/api/v1/, where [mystorename.com] is the domain name of your store."
+ }
+ }
+ }
+ ]
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "The date from which you'd like to replicate the data",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2021-01-01T00:00:00Z"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "686473f1-76d9-4994-9cc7-9b13da46147c",
+ "name": "Chargebee",
+ "dockerRepository": "airbyte/source-chargebee",
+ "dockerImageTag": "0.2.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/chargebee",
+ "icon": "chargebee.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://apidocs.chargebee.com/docs/api",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Chargebee Spec",
+ "type": "object",
+ "required": ["site", "site_api_key", "start_date", "product_catalog"],
+ "additionalProperties": true,
+ "properties": {
+ "site_api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Chargebee API Key. See the docs for more information on how to obtain this key.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "site": {
+ "type": "string",
+ "title": "Site",
+ "description": "The site prefix for your Chargebee instance.",
+ "examples": ["airbyte-test"],
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "format": "date-time",
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2021-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2021-01-25T00:00:00Z"],
+ "order": 2
+ },
+ "product_catalog": {
+ "type": "string",
+ "title": "Product Catalog",
+ "description": "Product Catalog version of your Chargebee site. Instructions on how to find your version you may find here under `API Version` section.",
+ "enum": ["1.0", "2.0"],
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["*.chargebee.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "9b2d3607-7222-4709-9fa2-c2abdebbdd88",
+ "name": "Chargify",
+ "dockerRepository": "airbyte/source-chargify",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/chargify",
+ "icon": "chargify.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/chargify",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Chargify Spec",
+ "type": "object",
+ "required": ["api_key", "domain"],
+ "additionalProperties": false,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "Chargify API Key.",
+ "airbyte_secret": true
+ },
+ "domain": {
+ "type": "string",
+ "description": "Chargify domain. Normally this domain follows the following format companyname.chargify.com"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "b6604cbd-1b12-4c08-8767-e140d0fb0877",
+ "name": "Chartmogul",
+ "dockerRepository": "airbyte/source-chartmogul",
+ "dockerImageTag": "0.2.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/chartmogul",
+ "icon": "chartmogul.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/chartmogul",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Chartmogul Spec",
+ "type": "object",
+ "required": ["api_key", "start_date", "interval"],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API key",
+ "description": "Your Chartmogul API key. See the docs for info on how to obtain this.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. When feasible, any data before this date will not be replicated.",
+ "examples": ["2017-01-25T00:00:00Z"],
+ "order": 1,
+ "format": "date-time"
+ },
+ "interval": {
+ "type": "string",
+ "title": "Interval",
+ "description": "Some APIs such as Metrics require intervals to cluster data.",
+ "enum": ["day", "week", "month", "quarter"],
+ "default": "month",
+ "order": 2
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["api.chartmogul.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "bad83517-5e54-4a3d-9b53-63e85fbd4d7c",
+ "name": "ClickHouse",
+ "dockerRepository": "airbyte/source-clickhouse",
+ "dockerImageTag": "0.1.17",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/clickhouse",
+ "icon": "clickhouse.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/clickhouse",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "ClickHouse Source Spec",
+ "type": "object",
+ "required": ["host", "port", "database", "username"],
+ "properties": {
+ "host": {
+ "description": "The host endpoint of the Clickhouse cluster.",
+ "title": "Host",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "description": "The port of the database.",
+ "title": "Port",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 8123,
+ "examples": ["8123"],
+ "order": 1
+ },
+ "database": {
+ "description": "The name of the database.",
+ "title": "Database",
+ "type": "string",
+ "examples": ["default"],
+ "order": 2
+ },
+ "username": {
+ "description": "The username which is used to access the database.",
+ "title": "Username",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "description": "The password associated with this username.",
+ "title": "Password",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (Eg. key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
+ "title": "JDBC URL Parameters (Advanced)",
+ "type": "string",
+ "order": 5
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL.",
+ "type": "boolean",
+ "default": true,
+ "order": 6
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [
+ {
+ "title": "No Tunnel",
+ "required": ["tunnel_method"],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "SSH Key Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "ssh_key"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Password Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "tunnel_user_password"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": ["${host}", "${tunnel_method.tunnel_host}"]
+ }
+ },
+ {
+ "sourceDefinitionId": "311a7a27-3fb5-4f7e-8265-5e4afe258b66",
+ "name": "ClickUp",
+ "dockerRepository": "airbyte/source-clickup-api",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/click-up",
+ "icon": "clickup.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "ClickUp Api Spec",
+ "type": "object",
+ "required": ["api_token"],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "description": "Every ClickUp API call required authentication. This field is your personal API token. See here.",
+ "airbyte_secret": true
+ },
+ "team_id": {
+ "type": "string",
+ "description": "The ID of your team in ClickUp. Retrieve it from the `/team` of the ClickUp API. See here."
+ },
+ "space_id": {
+ "type": "string",
+ "description": "The ID of your space in your workspace. Retrieve it from the `/team/{team_id}/space` of the ClickUp API. See here."
+ },
+ "folder_id": {
+ "type": "string",
+ "description": "The ID of your folder in your space. Retrieve it from the `/space/{space_id}/folder` of the ClickUp API. See here."
+ },
+ "list_id": {
+ "type": "string",
+ "description": "The ID of your list in your folder. Retrieve it from the `/folder/{folder_id}/list` of the ClickUp API. See here."
+ },
+ "include_closed_tasks": {
+ "title": "Include Closed Tasks",
+ "type": "boolean",
+ "default": false,
+ "description": "Include or exclude closed tasks. By default, they are excluded. See here."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "dfffecb7-9a13-43e9-acdc-b92af7997ca9",
+ "name": "Close.com",
+ "dockerRepository": "airbyte/source-close-com",
+ "dockerImageTag": "0.2.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/close-com",
+ "icon": "close.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/close-com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Close.com Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "Close.com API key (usually starts with 'api_'; find yours here).",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "description": "The start date to sync data. Leave blank for full sync. Format: YYYY-MM-DD.",
+ "examples": ["2021-01-01"],
+ "default": "2021-01-01",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["api.close.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "9cdd4183-d0ba-40c3-aad3-6f46d4103974",
+ "name": "CoinGecko Coins",
+ "dockerRepository": "airbyte/source-coingecko-coins",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/coingecko-coins",
+ "icon": "coingeckocoins.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "CoinGecko Coins Spec",
+ "type": "object",
+ "required": ["coin_id", "vs_currency", "days", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API Key (for pro users)",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "coin_id": {
+ "type": "string",
+ "description": "CoinGecko coin ID (e.g. bitcoin). Can be retrieved from the\n`/coins/list` endpoint.\n",
+ "order": 1
+ },
+ "vs_currency": {
+ "type": "string",
+ "description": "The target currency of market data (e.g. usd, eur, jpy, etc.)\n",
+ "order": 2
+ },
+ "days": {
+ "type": "string",
+ "description": "The number of days of data for market chart.\n",
+ "enum": ["1", "7", "14", "30", "90", "180", "365", "max"],
+ "default": "30",
+ "order": 3
+ },
+ "start_date": {
+ "type": "string",
+ "description": "The start date for the historical data stream in dd-mm-yyyy format.\n",
+ "format": "date",
+ "pattern": "^[0-9]{2}-[0-9]{2}-[0-9]{4}$",
+ "order": 4
+ },
+ "end_date": {
+ "type": "string",
+ "description": "The end date for the historical data stream in dd-mm-yyyy format.\n",
+ "format": "date",
+ "pattern": "^[0-9]{2}-[0-9]{2}-[0-9]{4}$",
+ "order": 5
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "9fa5862c-da7c-11eb-8d19-0242ac130003",
+ "name": "Cockroachdb",
+ "dockerRepository": "airbyte/source-cockroachdb",
+ "dockerImageTag": "0.1.22",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/cockroachdb",
+ "icon": "cockroachdb.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/cockroachdb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Cockroach Source Spec",
+ "type": "object",
+ "required": ["host", "port", "database", "username"],
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 5432,
+ "examples": ["5432"],
+ "order": 1
+ },
+ "database": {
+ "title": "DB Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "title": "User",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (Eg. key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
+ "title": "JDBC URL Parameters (Advanced)",
+ "type": "string",
+ "order": 5
+ },
+ "ssl": {
+ "title": "Connect using SSL",
+ "description": "Encrypt client/server communications for increased security.",
+ "type": "boolean",
+ "default": false,
+ "order": 6
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": ["${host}"]
+ }
+ },
+ {
+ "sourceDefinitionId": "27f910fd-f832-4b2e-bcfd-6ab342e434d8",
+ "name": "Coda",
+ "dockerRepository": "airbyte/source-coda",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/coda",
+ "icon": "coda.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/coda",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Required attributes for hitting apis",
+ "type": "object",
+ "required": ["auth_token"],
+ "additionalProperties": true,
+ "properties": {
+ "auth_token": {
+ "title": "Authentication token",
+ "type": "string",
+ "description": "Bearer token",
+ "airbyte_secret": true,
+ "order": 0
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "919984ef-53a2-479b-8ffe-9c1ddb9fc3f3",
+ "name": "Coin API",
+ "dockerRepository": "airbyte/source-coin-api",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/coin-api",
+ "icon": "coinapi.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/coin-api",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Coin API Spec",
+ "type": "object",
+ "required": [
+ "api_key",
+ "environment",
+ "symbol_id",
+ "period",
+ "start_date"
+ ],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "environment": {
+ "type": "string",
+ "description": "The environment to use. Either sandbox or production.\n",
+ "enum": ["sandbox", "production"],
+ "default": "sandbox",
+ "order": 1
+ },
+ "symbol_id": {
+ "type": "string",
+ "description": "The symbol ID to use. See the documentation for a list.\nhttps://docs.coinapi.io/#list-all-symbols-get\n",
+ "order": 2
+ },
+ "period": {
+ "type": "string",
+ "description": "The period to use. See the documentation for a list. https://docs.coinapi.io/#list-all-periods-get",
+ "examples": ["5SEC", "2MTH"]
+ },
+ "start_date": {
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
+ "description": "The start date in ISO 8601 format.",
+ "examples": ["2019-01-01T00:00:00"]
+ },
+ "end_date": {
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
+ "description": "The end date in ISO 8601 format. If not supplied, data will be returned\nfrom the start date to the current time, or when the count of result\nelements reaches its limit.\n",
+ "examples": ["2019-01-01T00:00:00"]
+ },
+ "limit": {
+ "type": "integer",
+ "description": "The maximum number of elements to return. If not supplied, the default\nis 100. For numbers larger than 100, each 100 items is counted as one\nrequest for pricing purposes. Maximum value is 100000.\n",
+ "minimum": 1,
+ "maximum": 100000,
+ "default": 100
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "239463f5-64bb-4d88-b4bd-18ce673fd572",
+ "name": "CoinMarketCap",
+ "dockerRepository": "airbyte/source-coinmarketcap",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/coinmarketcap",
+ "icon": "coinmarketcap.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/coinmarketcap",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Coinmarketcap Spec",
+ "type": "object",
+ "required": ["api_key", "data_type"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Your API Key. See here. The token is case sensitive.",
+ "airbyte_secret": true
+ },
+ "data_type": {
+ "title": "Data type",
+ "type": "string",
+ "enum": ["latest", "historical"],
+ "description": "/latest: Latest market ticker quotes and averages for cryptocurrencies and exchanges. /historical: Intervals of historic market data like OHLCV data or data for use in charting libraries. See here."
+ },
+ "symbols": {
+ "title": "Symbol",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Cryptocurrency symbols. (only used for quotes stream)",
+ "minItems": 1,
+ "examples": ["AVAX", "BTC"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "008b2e26-11a3-11ec-82a8-0242ac130003",
+ "name": "Commercetools",
+ "dockerRepository": "airbyte/source-commercetools",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/commercetools",
+ "icon": "commercetools.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/commercetools",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Commercetools Source CDK Specifications",
+ "type": "object",
+ "required": [
+ "region",
+ "start_date",
+ "host",
+ "project_key",
+ "client_id",
+ "client_secret"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "region": {
+ "type": "string",
+ "description": "The region of the platform.",
+ "examples": ["us-central1", "australia-southeast1"]
+ },
+ "host": {
+ "type": "string",
+ "enum": ["gcp", "aws"],
+ "description": "The cloud provider your shop is hosted. See: https://docs.commercetools.com/api/authorization"
+ },
+ "start_date": {
+ "type": "string",
+ "description": "The date you would like to replicate data. Format: YYYY-MM-DD.",
+ "examples": ["2021-01-01"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
+ },
+ "project_key": {
+ "type": "string",
+ "description": "The project key"
+ },
+ "client_id": {
+ "type": "string",
+ "description": "Id of API Client.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "description": "The password of secret of API Client.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "4fd7565c-8b99-439b-80d0-2d965e1d958c",
+ "name": "ConfigCat",
+ "dockerRepository": "airbyte/source-configcat",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/configcat",
+ "icon": "configcat.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/configcat",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Configcat Spec",
+ "type": "object",
+ "required": ["username", "password"],
+ "additionalProperties": true,
+ "properties": {
+ "username": {
+ "title": "Username",
+ "type": "string",
+ "description": "Basic auth user name. See here."
+ },
+ "password": {
+ "title": "Password",
+ "type": "string",
+ "description": "Basic auth password. See here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "cf40a7f8-71f8-45ce-a7fa-fca053e4028c",
+ "name": "Confluence",
+ "dockerRepository": "airbyte/source-confluence",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/confluence",
+ "icon": "confluence.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Confluence Spec",
+ "type": "object",
+ "required": ["api_token", "domain_name", "email"],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "title": "API Token",
+ "type": "string",
+ "description": "Please follow the Jira confluence for generating an API token: generating an API token.",
+ "airbyte_secret": true
+ },
+ "domain_name": {
+ "title": "Domain name",
+ "type": "string",
+ "description": "Your Confluence domain name",
+ "examples": ["example.atlassian.net"]
+ },
+ "email": {
+ "title": "Email",
+ "type": "string",
+ "description": "Your Confluence login email",
+ "examples": ["abc@example.com"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["${subdomain}.atlassian.net"]
+ }
+ },
+ {
+ "sourceDefinitionId": "be9ee02f-6efe-4970-979b-95f797a37188",
+ "name": "ConvertKit",
+ "dockerRepository": "airbyte/source-convertkit",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/convertkit",
+ "icon": "convertkit.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/convertkit",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Convertkit Spec",
+ "type": "object",
+ "required": ["api_secret"],
+ "additionalProperties": true,
+ "properties": {
+ "api_secret": {
+ "type": "string",
+ "description": "API Secret",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "f39208dc-7e1c-48b8-919b-5006360cc27f",
+ "name": "Commcare",
+ "dockerRepository": "airbyte/source-commcare",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/commcare",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Commcare Source Spec",
+ "type": "object",
+ "required": ["api_key", "app_id", "start_date"],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Commcare API Key",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "project_space": {
+ "type": "string",
+ "title": "Project Space",
+ "description": "Project Space for commcare",
+ "order": 1
+ },
+ "app_id": {
+ "type": "string",
+ "title": "Application ID",
+ "description": "The Application ID we are interested in",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date for extracting records",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "default": "2022-10-01T00:00:00Z",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Only records after this date will be replicated.",
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "44f3002f-2df9-4f6d-b21c-02cd3b47d0dc",
+ "name": "Copper",
+ "dockerRepository": "airbyte/source-copper",
+ "dockerImageTag": "0.2.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/copper",
+ "icon": "copper.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/copper",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Copper Spec",
+ "type": "object",
+ "required": ["api_key", "user_email"],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Copper API key",
+ "airbyte_secret": true
+ },
+ "user_email": {
+ "type": "string",
+ "title": "User email",
+ "description": "user email used to login in to Copper"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "c332628c-f55c-4017-8222-378cfafda9b2",
+ "name": "Convex",
+ "dockerRepository": "airbyte/source-convex",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/convex",
+ "icon": "convex.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/convex",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Convex Source Spec",
+ "type": "object",
+ "required": ["deployment_url", "access_key"],
+ "properties": {
+ "deployment_url": {
+ "type": "string",
+ "title": "Deployment Url",
+ "examples": [
+ "https://murky-swan-635.convex.cloud",
+ "https://cluttered-owl-337.convex.cloud"
+ ]
+ },
+ "access_key": {
+ "type": "string",
+ "title": "Access Key",
+ "description": "API access key used to retrieve data from Convex.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "0541b2cd-2367-4986-b5f1-b79ff55439e4",
+ "name": "Courier",
+ "dockerRepository": "airbyte/source-courier",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/courier",
+ "icon": "courier.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/courier",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Courier Source Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "Courier API Key to retrieve your data.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "e71aae8a-5143-11ed-bdc3-0242ac120002",
+ "name": "Clockify",
+ "dockerRepository": "airbyte/source-clockify",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/clockify",
+ "icon": "clockify.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/clockify",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Clockify Spec",
+ "type": "object",
+ "required": ["workspace_id", "api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "workspace_id": {
+ "title": "Workspace Id",
+ "description": "WorkSpace Id",
+ "type": "string"
+ },
+ "api_key": {
+ "title": "API Key",
+ "description": "You can get your api access_key here This API is Case Sensitive.",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "c47d6804-8b98-449f-970a-5ddb5cb5d7aa",
+ "name": "Customer.io",
+ "dockerRepository": "farosai/airbyte-customer-io-source",
+ "dockerImageTag": "0.1.23",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/customer-io",
+ "icon": "customer-io.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.faros.ai",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Customer.io Spec",
+ "type": "object",
+ "required": ["app_api_key"],
+ "additionalProperties": false,
+ "properties": {
+ "app_api_key": {
+ "type": "string",
+ "title": "Customer.io App API Key",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "1cfc30c7-82db-43f4-9fd7-ac1b42312cda",
+ "name": "Datadog",
+ "dockerRepository": "airbyte/source-datadog",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/datadog",
+ "icon": "datadog.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/datadog",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Datadog Source Spec",
+ "type": "object",
+ "required": ["api_key", "application_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "description": "Datadog API key",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "application_key": {
+ "title": "Application Key",
+ "description": "Datadog application key",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "query": {
+ "title": "Query",
+ "description": "The search query. This just applies to Incremental syncs. If empty, it'll collect all logs.",
+ "type": "string",
+ "order": 3
+ },
+ "max_records_per_request": {
+ "type": "integer",
+ "title": "Max records per requests",
+ "default": 5000,
+ "minimum": 1,
+ "maximum": 5000,
+ "description": "Maximum number of records to collect per request.",
+ "order": 4
+ },
+ "start_date": {
+ "title": "Start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. This just applies to Incremental syncs.",
+ "type": "string",
+ "examples": ["2022-10-01T00:00:00Z"],
+ "order": 5
+ },
+ "end_date": {
+ "title": "End date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Data after this date will not be replicated. An empty value will represent the current datetime for each execution. This just applies to Incremental syncs.",
+ "examples": ["2022-10-01T00:00:00Z"],
+ "type": "string",
+ "order": 6
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "8e1ae2d2-4790-44d3-9d83-75b3fc3940ff",
+ "name": "Datascope",
+ "dockerRepository": "airbyte/source-datascope",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/datascope",
+ "icon": "datascope.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/datascope",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Datascope Spec",
+ "type": "object",
+ "required": ["api_key", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "Start date for the data to be replicated",
+ "examples": ["dd/mm/YYYY HH:MM"],
+ "pattern": "^[0-9]{2}/[0-9]{2}/[0-9]{4} [0-9]{2}:[0-9]{2}$"
+ },
+ "api_key": {
+ "title": "Authorization",
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "cc88c43f-6f53-4e8a-8c4d-b284baaf9635",
+ "name": "Delighted",
+ "dockerRepository": "airbyte/source-delighted",
+ "dockerImageTag": "0.2.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/delighted",
+ "icon": "delighted.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Delighted Spec",
+ "type": "object",
+ "required": ["since", "api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "Delighted API Key",
+ "type": "string",
+ "description": "A Delighted API key.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "since": {
+ "title": "Date Since",
+ "type": "string",
+ "description": "The date from which you'd like to replicate the data",
+ "examples": ["2022-05-30T04:50:23Z", "2022-05-30 04:50:23"],
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z?$",
+ "order": 1,
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["api.delighted.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "0b5c867e-1b12-4d02-ab74-97b2184ff6d7",
+ "name": "Dixa",
+ "dockerRepository": "airbyte/source-dixa",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/dixa",
+ "icon": "dixa.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/dixa",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Dixa Spec",
+ "type": "object",
+ "required": ["api_token", "start_date"],
+ "additionalProperties": false,
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "description": "Dixa API token",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "description": "The connector pulls records updated from this date onwards.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": ["YYYY-MM-DD"]
+ },
+ "batch_size": {
+ "type": "integer",
+ "description": "Number of days to batch into one request. Max 31.",
+ "pattern": "^[0-9]{1,2}$",
+ "examples": [1, 31],
+ "default": 31
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "72d405a3-56d8-499f-a571-667c03406e43",
+ "name": "Dockerhub",
+ "dockerRepository": "airbyte/source-dockerhub",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/dockerhub",
+ "icon": "dockerhub.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/dockerhub",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Dockerhub Spec",
+ "type": "object",
+ "required": ["docker_username"],
+ "additionalProperties": false,
+ "properties": {
+ "docker_username": {
+ "type": "string",
+ "description": "Username of DockerHub person or organization (for https://hub.docker.com/v2/repositories/USERNAME/ API call)",
+ "pattern": "^[a-z0-9_\\-]+$",
+ "examples": ["airbyte"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "d99e9ace-8621-46c2-9144-76ae4751d64b",
+ "name": "Dremio",
+ "dockerRepository": "airbyte/source-dremio",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/dremio",
+ "icon": "dremio.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/dremio",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Dremio Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "required": ["api_key", "base_url"],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API Key that is generated when you authenticate to Dremio API",
+ "airbyte_secret": true
+ },
+ "base_url": {
+ "type": "string",
+ "description": "URL of your Dremio instance",
+ "default": "https://app.dremio.cloud"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "445831eb-78db-4b1f-8f1f-0d96ad8739e2",
+ "name": "Drift",
+ "dockerRepository": "airbyte/source-drift",
+ "dockerImageTag": "0.2.6",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/drift",
+ "icon": "drift.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/drift",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Drift Spec",
+ "type": "object",
+ "required": [],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [
+ "client_id",
+ "client_secret",
+ "access_token",
+ "refresh_token"
+ ],
+ "properties": {
+ "credentials": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your Drift developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your Drift developer application.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "Refresh Token to renew the expired Access Token.",
+ "default": "",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "Access Token",
+ "type": "object",
+ "required": ["access_token"],
+ "properties": {
+ "credentials": {
+ "type": "string",
+ "const": "access_token",
+ "order": 0
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Drift Access Token. See the docs for more information on how to generate this key.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": ["credentials", "0"],
+ "oauthFlowInitParameters": [["client_id"], ["client_secret"]],
+ "oauthFlowOutputParameters": [["access_token"], ["refresh_token"]]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": ["driftapi.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "1356e1d9-977f-4057-ad4b-65f25329cf61",
+ "name": "DV 360",
+ "dockerRepository": "airbyte/source-dv-360",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/dv-360",
+ "icon": "dv360.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Display & Video 360 Spec",
+ "type": "object",
+ "required": ["credentials", "partner_id", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "type": "object",
+ "description": "Oauth2 credentials",
+ "order": 0,
+ "required": [
+ "access_token",
+ "refresh_token",
+ "token_uri",
+ "client_id",
+ "client_secret"
+ ],
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "description": "Access token",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "description": "Refresh token",
+ "airbyte_secret": true
+ },
+ "token_uri": {
+ "type": "string",
+ "description": "Token URI",
+ "airbyte_secret": true
+ },
+ "client_id": {
+ "type": "string",
+ "description": "Client ID",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "description": "Client secret",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "partner_id": {
+ "type": "integer",
+ "description": "Partner ID",
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "description": "UTC date and time in the format 2017-01-25. Any data before this date will not be replicated",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 2
+ },
+ "end_date": {
+ "type": "string",
+ "description": "UTC date and time in the format 2017-01-25. Any data after this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 3
+ },
+ "filters": {
+ "type": "array",
+ "description": "filters for the dimensions. each filter object had 2 keys: 'type' for the name of the dimension to be used as. and 'value' for the value of the filter",
+ "default": [],
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "50401137-8871-4c5a-abb7-1f5fda35545a",
+ "name": "DynamoDB",
+ "dockerRepository": "airbyte/source-dynamodb",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/dynamodb",
+ "icon": "dynamodb.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/dynamodb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Dynamodb Source Spec",
+ "type": "object",
+ "required": ["access_key_id", "secret_access_key"],
+ "additionalProperties": false,
+ "properties": {
+ "endpoint": {
+ "title": "Dynamodb Endpoint",
+ "type": "string",
+ "default": "",
+ "description": "the URL of the Dynamodb database",
+ "examples": ["https://{aws_dynamo_db_url}.com"]
+ },
+ "region": {
+ "title": "Dynamodb Region",
+ "type": "string",
+ "default": "",
+ "description": "The region of the Dynamodb database",
+ "enum": [
+ "",
+ "us-east-1",
+ "us-east-2",
+ "us-west-1",
+ "us-west-2",
+ "af-south-1",
+ "ap-east-1",
+ "ap-south-1",
+ "ap-northeast-1",
+ "ap-northeast-2",
+ "ap-northeast-3",
+ "ap-southeast-1",
+ "ap-southeast-2",
+ "ca-central-1",
+ "cn-north-1",
+ "cn-northwest-1",
+ "eu-central-1",
+ "eu-north-1",
+ "eu-south-1",
+ "eu-west-1",
+ "eu-west-2",
+ "eu-west-3",
+ "sa-east-1",
+ "me-south-1",
+ "us-gov-east-1",
+ "us-gov-west-1"
+ ]
+ },
+ "access_key_id": {
+ "title": "Dynamodb Key Id",
+ "type": "string",
+ "description": "The access key id to access Dynamodb. Airbyte requires read permissions to the database",
+ "airbyte_secret": true,
+ "examples": ["A012345678910EXAMPLE"]
+ },
+ "secret_access_key": {
+ "title": "Dynamodb Access Key",
+ "type": "string",
+ "description": "The corresponding secret to the access key id.",
+ "airbyte_secret": true,
+ "examples": ["a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY"]
+ },
+ "reserved_attribute_names": {
+ "title": "Reserved attribute names",
+ "type": "string",
+ "description": "Comma separated reserved attribute names present in your tables",
+ "airbyte_secret": true,
+ "examples": ["name, field_name, field-name"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "d53f9084-fa6b-4a5a-976c-5b8392f4ad8a",
+ "name": "E2E Testing",
+ "dockerRepository": "airbyte/source-e2e-test",
+ "dockerImageTag": "2.1.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/e2e-test",
+ "icon": "airbyte.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/e2e-test",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "E2E Test Source Spec",
+ "additionalProperties": true,
+ "type": "object",
+ "oneOf": [
+ {
+ "title": "Legacy Infinite Feed",
+ "description": "This mode is used for Platform acceptance tests. The catalog has one \"data\" stream, which has one string field \"column1\". This mode will emit messages infinitely.",
+ "required": ["type", "max_records"],
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "INFINITE_FEED",
+ "default": "INFINITE_FEED"
+ },
+ "max_records": {
+ "title": "Max Records",
+ "description": "Number of records to emit. If not set, defaults to infinity.",
+ "type": "integer"
+ },
+ "message_interval": {
+ "title": "Message Interval",
+ "description": "Interval between messages in ms.",
+ "type": "integer"
+ }
+ }
+ },
+ {
+ "title": "Legacy Exception After N",
+ "description": "This mode is used for Platform acceptance tests. The catalog has one \"data\" stream, which has one string field \"column1\". This mode will throw an exception after N messages.",
+ "required": ["type", "throw_after_n_records"],
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "EXCEPTION_AFTER_N",
+ "default": "EXCEPTION_AFTER_N"
+ },
+ "throw_after_n_records": {
+ "title": "Throw After N Records",
+ "description": "Number of records to emit before throwing an exception. Min 1.",
+ "type": "integer",
+ "min": 1
+ }
+ }
+ },
+ {
+ "title": "Continuous Feed",
+ "type": "object",
+ "required": ["type", "max_messages", "mock_catalog"],
+ "additionalProperties": true,
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "CONTINUOUS_FEED",
+ "default": "CONTINUOUS_FEED",
+ "order": 10
+ },
+ "max_messages": {
+ "title": "Max Records",
+ "description": "Number of records to emit per stream. Min 1. Max 100 billion.",
+ "type": "integer",
+ "default": 100,
+ "min": 1,
+ "max": 100000000000,
+ "order": 20
+ },
+ "seed": {
+ "title": "Random Seed",
+ "description": "When the seed is unspecified, the current time millis will be used as the seed. Range: [0, 1000000].",
+ "type": "integer",
+ "default": 0,
+ "examples": [42],
+ "min": 0,
+ "max": 1000000,
+ "order": 30
+ },
+ "message_interval_ms": {
+ "title": "Message Interval (ms)",
+ "description": "Interval between messages in ms. Min 0 ms. Max 60000 ms (1 minute).",
+ "type": "integer",
+ "min": 0,
+ "max": 60000,
+ "default": 0,
+ "order": 40
+ },
+ "mock_catalog": {
+ "title": "Mock Catalog",
+ "type": "object",
+ "order": 50,
+ "oneOf": [
+ {
+ "title": "Single Schema",
+ "description": "A catalog with one or multiple streams that share the same schema.",
+ "type": "object",
+ "required": ["type", "stream_name", "stream_schema"],
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "SINGLE_STREAM",
+ "default": "SINGLE_STREAM"
+ },
+ "stream_name": {
+ "title": "Stream Name",
+ "description": "Name of the data stream.",
+ "type": "string",
+ "default": "data_stream"
+ },
+ "stream_schema": {
+ "title": "Stream Schema",
+ "description": "A Json schema for the stream. The schema should be compatible with draft-07. See this doc for examples.",
+ "type": "string",
+ "default": "{ \"type\": \"object\", \"properties\": { \"column1\": { \"type\": \"string\" } } }"
+ },
+ "stream_duplication": {
+ "title": "Duplicate the stream N times",
+ "description": "Duplicate the stream for easy load testing. Each stream name will have a number suffix. For example, if the stream name is \"ds\", the duplicated streams will be \"ds_0\", \"ds_1\", etc.",
+ "type": "integer",
+ "default": 1,
+ "min": 1,
+ "max": 10000
+ }
+ }
+ },
+ {
+ "title": "Multi Schema",
+ "type": "object",
+ "description": "A catalog with multiple data streams, each with a different schema.",
+ "required": ["type", "stream_schemas"],
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "MULTI_STREAM",
+ "default": "MULTI_STREAM"
+ },
+ "stream_schemas": {
+ "title": "Streams and Schemas",
+ "description": "A Json object specifying multiple data streams and their schemas. Each key in this object is one stream name. Each value is the schema for that stream. The schema should be compatible with draft-07. See this doc for examples.",
+ "type": "string",
+ "default": "{ \"stream1\": { \"type\": \"object\", \"properties\": { \"field1\": { \"type\": \"string\" } } }, \"stream2\": { \"type\": \"object\", \"properties\": { \"field1\": { \"type\": \"boolean\" } } } }"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "title": "Benchmark",
+ "description": "This mode is used for speed benchmarks. Specifically, it should be used for testing the throughput of the platform and destination. It optimizes for emitting records very quickly, so that it should never be the bottleneck.",
+ "type": "object",
+ "required": ["type", "schema", "terminationCondition"],
+ "additionalProperties": true,
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "BENCHMARK",
+ "default": "BENCHMARK"
+ },
+ "schema": {
+ "title": "Schema",
+ "description": "schema of the data in the benchmark.",
+ "type": "string",
+ "enum": ["FIVE_STRING_COLUMNS"]
+ },
+ "terminationCondition": {
+ "title": "Termination Condition",
+ "description": "when does the benchmark stop?",
+ "type": "object",
+ "oneOf": [
+ {
+ "title": "max records",
+ "type": "object",
+ "required": ["type", "max"],
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "MAX_RECORDS",
+ "default": "MAX_RECORDS"
+ },
+ "max": {
+ "type": "number"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "protocol_version": "0.2.1"
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "46b25e70-c980-4590-a811-8deaf50ee09f",
+ "name": "EmailOctopus",
+ "dockerRepository": "airbyte/source-emailoctopus",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/emailoctopus",
+ "icon": "emailoctopus.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/emailoctopus",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "EmailOctopus Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "EmailOctopus API key",
+ "description": "EmailOctopus API Key. See the docs for information on how to generate this key.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "e2b40e36-aa0e-4bed-b41b-bcea6fa348b1",
+ "name": "Exchange Rates Api",
+ "dockerRepository": "airbyte/source-exchange-rates",
+ "dockerImageTag": "1.2.8",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/exchangeratesapi",
+ "icon": "exchangeratesapi.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/exchangeratesapi",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "exchangeratesapi.io Source Spec",
+ "type": "object",
+ "required": ["start_date", "access_key"],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "description": "Start getting data from that date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": ["YYYY-MM-DD"],
+ "format": "date"
+ },
+ "access_key": {
+ "type": "string",
+ "description": "Your API Key. See here. The key is case sensitive.",
+ "airbyte_secret": true
+ },
+ "base": {
+ "type": "string",
+ "description": "ISO reference currency. See here. Free plan doesn't support Source Currency Switching, default base currency is EUR",
+ "examples": ["EUR", "USD"]
+ },
+ "ignore_weekends": {
+ "type": "boolean",
+ "description": "Ignore weekends? (Exchanges don't run on weekends)",
+ "default": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": ["${subdomain}.apilayer.com", "apilayer.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "6babfc42-c734-4ef6-a817-6eca15f0f9b7",
+ "name": "Everhour",
+ "dockerRepository": "airbyte/source-everhour",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/everhour",
+ "icon": "everhour.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/everhour",
+ "connectionSpecification": {
+ "title": "Everhour Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Everhour API Key. See the docs for information on how to generate this key.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": ["api.everhour.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "e7778cfc-e97c-4458-9ecb-b4f2bba8946c",
+ "name": "Facebook Marketing",
+ "dockerRepository": "airbyte/source-facebook-marketing",
+ "dockerImageTag": "0.3.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/facebook-marketing",
+ "icon": "facebook.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/facebook-marketing",
+ "changelogUrl": "https://docs.airbyte.com/integrations/sources/facebook-marketing",
+ "connectionSpecification": {
+ "title": "Source Facebook Marketing",
+ "type": "object",
+ "properties": {
+ "account_id": {
+ "title": "Account ID",
+ "description": "The Facebook Ad account ID to use when pulling data from the Facebook Marketing API. Open your Meta Ads Manager. The Ad account ID number is in the account dropdown menu or in your browser's address bar. See the docs for more information.",
+ "order": 0,
+ "examples": ["111111111111111"],
+ "type": "string"
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for all incremental streams, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "order": 1,
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2017-01-25T00:00:00Z"],
+ "type": "string",
+ "format": "date-time"
+ },
+ "end_date": {
+ "title": "End Date",
+ "description": "The date until which you'd like to replicate data for all incremental streams, in the format YYYY-MM-DDT00:00:00Z. All data generated between the start date and this end date will be replicated. Not setting this option will result in always syncing the latest data.",
+ "order": 2,
+ "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2017-01-26T00:00:00Z"],
+ "type": "string"
+ },
+ "access_token": {
+ "title": "Access Token",
+ "description": "The value of the generated access token. From your App’s Dashboard, click on \"Marketing API\" then \"Tools\". Select permissions ads_management, ads_read, read_insights, business_management. Then click on \"Get token\". See the docs for more information.",
+ "order": 3,
+ "airbyte_secret": true,
+ "type": "string"
+ },
+ "include_deleted": {
+ "title": "Include Deleted Campaigns, Ads, and AdSets",
+ "description": "Set to active if you want to include data from deleted Campaigns, Ads, and AdSets.",
+ "default": false,
+ "order": 4,
+ "type": "boolean"
+ },
+ "fetch_thumbnail_images": {
+ "title": "Fetch Thumbnail Images from Ad Creative",
+ "description": "Set to active if you want to fetch the thumbnail_url and store the result in thumbnail_data_url for each Ad Creative.",
+ "default": false,
+ "order": 5,
+ "type": "boolean"
+ },
+ "custom_insights": {
+ "title": "Custom Insights",
+ "description": "A list which contains ad statistics entries, each entry must have a name and can contains fields, breakdowns or action_breakdowns. Click on \"add\" to fill this field.",
+ "order": 6,
+ "type": "array",
+ "items": {
+ "title": "InsightConfig",
+ "description": "Config for custom insights",
+ "type": "object",
+ "properties": {
+ "name": {
+ "title": "Name",
+ "description": "The name value of insight",
+ "type": "string"
+ },
+ "level": {
+ "title": "Level",
+ "description": "Chosen level for API",
+ "default": "ad",
+ "enum": ["ad", "adset", "campaign", "account"],
+ "type": "string"
+ },
+ "fields": {
+ "title": "Fields",
+ "description": "A list of chosen fields for fields parameter",
+ "default": [],
+ "type": "array",
+ "items": {
+ "title": "ValidEnums",
+ "description": "Generic enumeration.\n\nDerive from this class to define new enumerations.",
+ "enum": [
+ "account_currency",
+ "account_id",
+ "account_name",
+ "action_values",
+ "actions",
+ "ad_bid_value",
+ "ad_click_actions",
+ "ad_id",
+ "ad_impression_actions",
+ "ad_name",
+ "adset_bid_value",
+ "adset_end",
+ "adset_id",
+ "adset_name",
+ "adset_start",
+ "age_targeting",
+ "attribution_setting",
+ "auction_bid",
+ "auction_competitiveness",
+ "auction_max_competitor_bid",
+ "buying_type",
+ "campaign_id",
+ "campaign_name",
+ "canvas_avg_view_percent",
+ "canvas_avg_view_time",
+ "catalog_segment_actions",
+ "catalog_segment_value",
+ "catalog_segment_value_mobile_purchase_roas",
+ "catalog_segment_value_omni_purchase_roas",
+ "catalog_segment_value_website_purchase_roas",
+ "clicks",
+ "conversion_rate_ranking",
+ "conversion_values",
+ "conversions",
+ "converted_product_quantity",
+ "converted_product_value",
+ "cost_per_15_sec_video_view",
+ "cost_per_2_sec_continuous_video_view",
+ "cost_per_action_type",
+ "cost_per_ad_click",
+ "cost_per_conversion",
+ "cost_per_dda_countby_convs",
+ "cost_per_estimated_ad_recallers",
+ "cost_per_inline_link_click",
+ "cost_per_inline_post_engagement",
+ "cost_per_one_thousand_ad_impression",
+ "cost_per_outbound_click",
+ "cost_per_thruplay",
+ "cost_per_unique_action_type",
+ "cost_per_unique_click",
+ "cost_per_unique_conversion",
+ "cost_per_unique_inline_link_click",
+ "cost_per_unique_outbound_click",
+ "cpc",
+ "cpm",
+ "cpp",
+ "created_time",
+ "ctr",
+ "date_start",
+ "date_stop",
+ "dda_countby_convs",
+ "dda_results",
+ "engagement_rate_ranking",
+ "estimated_ad_recall_rate",
+ "estimated_ad_recall_rate_lower_bound",
+ "estimated_ad_recall_rate_upper_bound",
+ "estimated_ad_recallers",
+ "estimated_ad_recallers_lower_bound",
+ "estimated_ad_recallers_upper_bound",
+ "frequency",
+ "full_view_impressions",
+ "full_view_reach",
+ "gender_targeting",
+ "impressions",
+ "inline_link_click_ctr",
+ "inline_link_clicks",
+ "inline_post_engagement",
+ "instant_experience_clicks_to_open",
+ "instant_experience_clicks_to_start",
+ "instant_experience_outbound_clicks",
+ "interactive_component_tap",
+ "labels",
+ "location",
+ "mobile_app_purchase_roas",
+ "objective",
+ "optimization_goal",
+ "outbound_clicks",
+ "outbound_clicks_ctr",
+ "place_page_name",
+ "purchase_roas",
+ "qualifying_question_qualify_answer_rate",
+ "quality_ranking",
+ "quality_score_ectr",
+ "quality_score_ecvr",
+ "quality_score_organic",
+ "reach",
+ "social_spend",
+ "spend",
+ "total_postbacks",
+ "total_postbacks_detailed",
+ "unique_actions",
+ "unique_clicks",
+ "unique_conversions",
+ "unique_ctr",
+ "unique_inline_link_click_ctr",
+ "unique_inline_link_clicks",
+ "unique_link_clicks_ctr",
+ "unique_outbound_clicks",
+ "unique_outbound_clicks_ctr",
+ "unique_video_continuous_2_sec_watched_actions",
+ "unique_video_view_15_sec",
+ "updated_time",
+ "video_15_sec_watched_actions",
+ "video_30_sec_watched_actions",
+ "video_avg_time_watched_actions",
+ "video_continuous_2_sec_watched_actions",
+ "video_p100_watched_actions",
+ "video_p25_watched_actions",
+ "video_p50_watched_actions",
+ "video_p75_watched_actions",
+ "video_p95_watched_actions",
+ "video_play_actions",
+ "video_play_curve_actions",
+ "video_play_retention_0_to_15s_actions",
+ "video_play_retention_20_to_60s_actions",
+ "video_play_retention_graph_actions",
+ "video_thruplay_watched_actions",
+ "video_time_watched_actions",
+ "website_ctr",
+ "website_purchase_roas",
+ "wish_bid"
+ ]
+ }
+ },
+ "breakdowns": {
+ "title": "Breakdowns",
+ "description": "A list of chosen breakdowns for breakdowns",
+ "default": [],
+ "type": "array",
+ "items": {
+ "title": "ValidBreakdowns",
+ "description": "Generic enumeration.\n\nDerive from this class to define new enumerations.",
+ "enum": [
+ "ad_format_asset",
+ "age",
+ "app_id",
+ "body_asset",
+ "call_to_action_asset",
+ "country",
+ "description_asset",
+ "device_platform",
+ "dma",
+ "frequency_value",
+ "gender",
+ "hourly_stats_aggregated_by_advertiser_time_zone",
+ "hourly_stats_aggregated_by_audience_time_zone",
+ "image_asset",
+ "impression_device",
+ "is_conversion_id_modeled",
+ "link_url_asset",
+ "mmm",
+ "place_page_id",
+ "platform_position",
+ "product_id",
+ "publisher_platform",
+ "region",
+ "skan_campaign_id",
+ "skan_conversion_id",
+ "title_asset",
+ "video_asset"
+ ]
+ }
+ },
+ "action_breakdowns": {
+ "title": "Action Breakdowns",
+ "description": "A list of chosen action_breakdowns for action_breakdowns",
+ "default": [],
+ "type": "array",
+ "items": {
+ "title": "ValidActionBreakdowns",
+ "description": "Generic enumeration.\n\nDerive from this class to define new enumerations.",
+ "enum": [
+ "action_canvas_component_name",
+ "action_carousel_card_id",
+ "action_carousel_card_name",
+ "action_destination",
+ "action_device",
+ "action_reaction",
+ "action_target_id",
+ "action_type",
+ "action_video_sound",
+ "action_video_type"
+ ]
+ }
+ },
+ "time_increment": {
+ "title": "Time Increment",
+ "description": "Time window in days by which to aggregate statistics. The sync will be chunked into N day intervals, where N is the number of days you specified. For example, if you set this value to 7, then all statistics will be reported as 7-day aggregates by starting from the start_date. If the start and end dates are October 1st and October 30th, then the connector will output 5 records: 01 - 06, 07 - 13, 14 - 20, 21 - 27, and 28 - 30 (3 days only).",
+ "default": 1,
+ "exclusiveMaximum": 90,
+ "exclusiveMinimum": 0,
+ "type": "integer"
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for this stream, in the format YYYY-MM-DDT00:00:00Z.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2017-01-25T00:00:00Z"],
+ "type": "string",
+ "format": "date-time"
+ },
+ "end_date": {
+ "title": "End Date",
+ "description": "The date until which you'd like to replicate data for this stream, in the format YYYY-MM-DDT00:00:00Z. All data generated between the start date and this end date will be replicated. Not setting this option will result in always syncing the latest data.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2017-01-26T00:00:00Z"],
+ "type": "string",
+ "format": "date-time"
+ },
+ "insights_lookback_window": {
+ "title": "Custom Insights Lookback Window",
+ "description": "The attribution window",
+ "default": 28,
+ "maximum": 28,
+ "mininum": 1,
+ "exclusiveMinimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": ["name"]
+ }
+ },
+ "page_size": {
+ "title": "Page Size of Requests",
+ "description": "Page size used when sending requests to Facebook API to specify number of records per page when response has pagination. Most users do not need to set this field unless they specifically need to tune the connector to address specific issues or use cases.",
+ "default": 100,
+ "order": 7,
+ "exclusiveMinimum": 0,
+ "type": "integer"
+ },
+ "insights_lookback_window": {
+ "title": "Insights Lookback Window",
+ "description": "The attribution window. Facebook freezes insight data 28 days after it was generated, which means that all data from the past 28 days may have changed since we last emitted it, so you can retrieve refreshed insights from the past by setting this parameter. If you set a custom lookback window value in Facebook account, please provide the same value here.",
+ "default": 28,
+ "order": 8,
+ "maximum": 28,
+ "mininum": 1,
+ "exclusiveMinimum": 0,
+ "type": "integer"
+ },
+ "max_batch_size": {
+ "title": "Maximum size of Batched Requests",
+ "description": "Maximum batch size used when sending batch requests to Facebook API. Most users do not need to set this field unless they specifically need to tune the connector to address specific issues or use cases.",
+ "default": 50,
+ "order": 9,
+ "exclusiveMinimum": 0,
+ "type": "integer"
+ },
+ "action_breakdowns_allow_empty": {
+ "title": "Action Breakdowns Allow Empty",
+ "description": "Allows action_breakdowns to be an empty list",
+ "default": true,
+ "airbyte_hidden": true,
+ "type": "boolean"
+ }
+ },
+ "required": ["account_id", "start_date", "access_token"]
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["append"],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [],
+ "oauthFlowInitParameters": [],
+ "oauthFlowOutputParameters": [["access_token"]]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["graph.facebook.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "010eb12f-837b-4685-892d-0a39f76a98f5",
+ "name": "Facebook Pages",
+ "dockerRepository": "airbyte/source-facebook-pages",
+ "dockerImageTag": "0.2.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/facebook-pages",
+ "icon": "facebook.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/facebook-pages",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Facebook Pages Spec",
+ "type": "object",
+ "required": ["access_token", "page_id"],
+ "additionalProperties": true,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "title": "Page Access Token",
+ "description": "Facebook Page Access Token",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "page_id": {
+ "type": "string",
+ "title": "Page ID",
+ "description": "Page ID",
+ "order": 1
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["graph.facebook.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "dfd88b22-b603-4c3d-aad7-3701784586b1",
+ "name": "Sample Data (Faker)",
+ "dockerRepository": "airbyte/source-faker",
+ "dockerImageTag": "2.0.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/faker",
+ "icon": "faker.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/faker",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Faker Source Spec",
+ "type": "object",
+ "required": ["count"],
+ "additionalProperties": true,
+ "properties": {
+ "count": {
+ "title": "Count",
+ "description": "How many users should be generated in total. This setting does not apply to the purchases or products stream.",
+ "type": "integer",
+ "minimum": 1,
+ "default": 1000,
+ "order": 0
+ },
+ "seed": {
+ "title": "Seed",
+ "description": "Manually control the faker random seed to return the same values on subsequent runs (leave -1 for random)",
+ "type": "integer",
+ "default": -1,
+ "order": 1
+ },
+ "records_per_sync": {
+ "title": "Records Per Sync",
+ "description": "How many fake records will be returned for each sync, for each stream? By default, it will take 2 syncs to create the requested 1000 records.",
+ "type": "integer",
+ "minimum": 1,
+ "default": 500,
+ "order": 2
+ },
+ "records_per_slice": {
+ "title": "Records Per Stream Slice",
+ "description": "How many fake records will be in each page (stream slice), before a state message is emitted?",
+ "type": "integer",
+ "minimum": 1,
+ "default": 1000,
+ "order": 3
+ },
+ "parallelism": {
+ "title": "Parallelism",
+ "description": "How many parallel workers should we use to generate fake data? Choose a value equal to the number of CPUs you will allocate to this source.",
+ "type": "integer",
+ "minimum": 1,
+ "default": 4,
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "resourceRequirements": {
+ "jobSpecific": [
+ {
+ "jobType": "sync",
+ "resourceRequirements": {
+ "cpu_request": "1.0",
+ "cpu_limit": "4.0"
+ }
+ }
+ ]
+ },
+ "allowedHosts": {
+ "hosts": []
+ },
+ "suggestedStreams": {
+ "streams": ["users", "products", "purchases"]
+ }
+ },
+ {
+ "sourceDefinitionId": "eb3e9c1c-0467-4eb7-a172-5265e04ccd0a",
+ "name": "Fastbill",
+ "dockerRepository": "airbyte/source-fastbill",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/fastbill",
+ "icon": "fastbill.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/fastbill",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Fastbill Spec",
+ "type": "object",
+ "required": ["username", "api_key"],
+ "properties": {
+ "username": {
+ "title": "Username",
+ "type": "string",
+ "description": "Username for Fastbill account"
+ },
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Fastbill API key",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "3825db3e-c94b-42ac-bd53-b5a9507ace2b",
+ "name": "Fauna",
+ "dockerRepository": "airbyte/source-fauna",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/fauna",
+ "icon": "fauna.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://github.com/fauna/airbyte/blob/source-fauna/docs/integrations/sources/fauna.md",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Fauna Spec",
+ "type": "object",
+ "required": ["domain", "port", "scheme", "secret"],
+ "additionalProperties": true,
+ "properties": {
+ "domain": {
+ "order": 0,
+ "type": "string",
+ "title": "Domain",
+ "description": "Domain of Fauna to query. Defaults db.fauna.com. See the docs.",
+ "default": "db.fauna.com"
+ },
+ "port": {
+ "order": 1,
+ "type": "integer",
+ "title": "Port",
+ "description": "Endpoint port.",
+ "default": 443
+ },
+ "scheme": {
+ "order": 2,
+ "type": "string",
+ "title": "Scheme",
+ "description": "URL scheme.",
+ "default": "https"
+ },
+ "secret": {
+ "order": 3,
+ "type": "string",
+ "title": "Fauna Secret",
+ "description": "Fauna secret, used when authenticating with the database.",
+ "airbyte_secret": true
+ },
+ "collection": {
+ "order": 5,
+ "type": "object",
+ "title": "Collection",
+ "description": "Settings for the Fauna Collection.",
+ "required": ["page_size", "deletions"],
+ "properties": {
+ "page_size": {
+ "order": 4,
+ "type": "integer",
+ "title": "Page Size",
+ "default": 64,
+ "description": "The page size used when reading documents from the database. The larger the page size, the faster the connector processes documents. However, if a page is too large, the connector may fail.
\nChoose your page size based on how large the documents are.
\nSee the docs."
+ },
+ "deletions": {
+ "order": 5,
+ "type": "object",
+ "title": "Deletion Mode",
+ "description": "This only applies to incremental syncs.
\nEnabling deletion mode informs your destination of deleted documents.
\nDisabled - Leave this feature disabled, and ignore deleted documents.
\nEnabled - Enables this feature. When a document is deleted, the connector exports a record with a \"deleted at\" column containing the time that the document was deleted.",
+ "oneOf": [
+ {
+ "title": "Disabled",
+ "type": "object",
+ "order": 0,
+ "required": ["deletion_mode"],
+ "properties": {
+ "deletion_mode": {
+ "type": "string",
+ "const": "ignore"
+ }
+ }
+ },
+ {
+ "title": "Enabled",
+ "type": "object",
+ "order": 1,
+ "required": ["deletion_mode", "column"],
+ "properties": {
+ "deletion_mode": {
+ "type": "string",
+ "const": "deleted_field"
+ },
+ "column": {
+ "type": "string",
+ "title": "Deleted At Column",
+ "description": "Name of the \"deleted at\" column.",
+ "default": "deleted_at"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "778daa7c-feaf-4db6-96f3-70fd645acc77",
+ "name": "File (CSV, JSON, Excel, Feather, Parquet)",
+ "dockerRepository": "airbyte/source-file",
+ "dockerImageTag": "0.3.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/file",
+ "icon": "file.svg",
+ "sourceType": "file",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/file",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "File Source Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "required": ["dataset_name", "format", "url", "provider"],
+ "properties": {
+ "dataset_name": {
+ "type": "string",
+ "title": "Dataset Name",
+ "description": "The Name of the final table to replicate this file into (should include letters, numbers dash and underscores only)."
+ },
+ "format": {
+ "type": "string",
+ "enum": [
+ "csv",
+ "json",
+ "jsonl",
+ "excel",
+ "excel_binary",
+ "feather",
+ "parquet",
+ "yaml"
+ ],
+ "default": "csv",
+ "title": "File Format",
+ "description": "The Format of the file which should be replicated (Warning: some formats may be experimental, please refer to the docs)."
+ },
+ "reader_options": {
+ "type": "string",
+ "title": "Reader Options",
+ "description": "This should be a string in JSON format. It depends on the chosen file format to provide additional options and tune its behavior.",
+ "examples": [
+ "{}",
+ "{\"sep\": \" \"}",
+ "{\"sep\": \"\t\", \"header\": 0, \"names\": [\"column1\", \"column2\"] }"
+ ]
+ },
+ "url": {
+ "type": "string",
+ "title": "URL",
+ "description": "The URL path to access the file which should be replicated.",
+ "examples": [
+ "https://storage.googleapis.com/covid19-open-data/v2/latest/epidemiology.csv",
+ "gs://my-google-bucket/data.csv",
+ "s3://gdelt-open-data/events/20190914.export.csv"
+ ]
+ },
+ "provider": {
+ "type": "object",
+ "title": "Storage Provider",
+ "description": "The storage Provider or Location of the file(s) which should be replicated.",
+ "default": "Public Web",
+ "oneOf": [
+ {
+ "title": "HTTPS: Public Web",
+ "required": ["storage"],
+ "properties": {
+ "storage": {
+ "type": "string",
+ "const": "HTTPS"
+ },
+ "user_agent": {
+ "type": "boolean",
+ "title": "User-Agent",
+ "default": false,
+ "description": "Add User-Agent to request"
+ }
+ }
+ },
+ {
+ "title": "GCS: Google Cloud Storage",
+ "required": ["storage"],
+ "properties": {
+ "storage": {
+ "type": "string",
+ "title": "Storage",
+ "const": "GCS"
+ },
+ "service_account_json": {
+ "type": "string",
+ "title": "Service Account JSON",
+ "description": "In order to access private Buckets stored on Google Cloud, this connector would need a service account json credentials with the proper permissions as described here. Please generate the credentials.json file and copy/paste its content to this field (expecting JSON formats). If accessing publicly available data, this field is not necessary."
+ }
+ }
+ },
+ {
+ "title": "S3: Amazon Web Services",
+ "required": ["storage"],
+ "properties": {
+ "storage": {
+ "type": "string",
+ "title": "Storage",
+ "const": "S3"
+ },
+ "aws_access_key_id": {
+ "type": "string",
+ "title": "AWS Access Key ID",
+ "description": "In order to access private Buckets stored on AWS S3, this connector would need credentials with the proper permissions. If accessing publicly available data, this field is not necessary."
+ },
+ "aws_secret_access_key": {
+ "type": "string",
+ "title": "AWS Secret Access Key",
+ "description": "In order to access private Buckets stored on AWS S3, this connector would need credentials with the proper permissions. If accessing publicly available data, this field is not necessary.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "AzBlob: Azure Blob Storage",
+ "required": ["storage", "storage_account"],
+ "properties": {
+ "storage": {
+ "type": "string",
+ "title": "Storage",
+ "const": "AzBlob"
+ },
+ "storage_account": {
+ "type": "string",
+ "title": "Storage Account",
+ "description": "The globally unique name of the storage account that the desired blob sits within. See here for more details."
+ },
+ "sas_token": {
+ "type": "string",
+ "title": "SAS Token",
+ "description": "To access Azure Blob Storage, this connector would need credentials with the proper permissions. One option is a SAS (Shared Access Signature) token. If accessing publicly available data, this field is not necessary.",
+ "airbyte_secret": true
+ },
+ "shared_key": {
+ "type": "string",
+ "title": "Shared Key",
+ "description": "To access Azure Blob Storage, this connector would need credentials with the proper permissions. One option is a storage account shared key (aka account key or access key). If accessing publicly available data, this field is not necessary.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "SSH: Secure Shell",
+ "required": ["storage", "user", "host"],
+ "properties": {
+ "storage": {
+ "type": "string",
+ "title": "Storage",
+ "const": "SSH"
+ },
+ "user": {
+ "type": "string",
+ "title": "User",
+ "description": ""
+ },
+ "password": {
+ "type": "string",
+ "title": "Password",
+ "description": "",
+ "airbyte_secret": true
+ },
+ "host": {
+ "type": "string",
+ "title": "Host",
+ "description": ""
+ },
+ "port": {
+ "type": "string",
+ "title": "Port",
+ "default": "22",
+ "description": ""
+ }
+ }
+ },
+ {
+ "title": "SCP: Secure copy protocol",
+ "required": ["storage", "user", "host"],
+ "properties": {
+ "storage": {
+ "type": "string",
+ "title": "Storage",
+ "const": "SCP"
+ },
+ "user": {
+ "type": "string",
+ "title": "User",
+ "description": ""
+ },
+ "password": {
+ "type": "string",
+ "title": "Password",
+ "description": "",
+ "airbyte_secret": true
+ },
+ "host": {
+ "type": "string",
+ "title": "Host",
+ "description": ""
+ },
+ "port": {
+ "type": "string",
+ "title": "Port",
+ "default": "22",
+ "description": ""
+ }
+ }
+ },
+ {
+ "title": "SFTP: Secure File Transfer Protocol",
+ "required": ["storage", "user", "host"],
+ "properties": {
+ "storage": {
+ "type": "string",
+ "title": "Storage",
+ "const": "SFTP"
+ },
+ "user": {
+ "type": "string",
+ "title": "User",
+ "description": ""
+ },
+ "password": {
+ "type": "string",
+ "title": "Password",
+ "description": "",
+ "airbyte_secret": true
+ },
+ "host": {
+ "type": "string",
+ "title": "Host",
+ "description": ""
+ },
+ "port": {
+ "type": "string",
+ "title": "Port",
+ "default": "22",
+ "description": ""
+ }
+ }
+ },
+ {
+ "title": "Local Filesystem (limited)",
+ "required": ["storage"],
+ "properties": {
+ "storage": {
+ "type": "string",
+ "title": "Storage",
+ "description": "WARNING: Note that the local storage URL available for reading must start with the local mount \"/local/\" at the moment until we implement more advanced docker mounting options.",
+ "const": "local"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["*"]
+ }
+ },
+ {
+ "sourceDefinitionId": "acb5f973-a565-441e-992f-4946f3e65662",
+ "name": "Firebase Realtime Database",
+ "dockerRepository": "airbyte/source-firebase-realtime-database",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/firebase-realtime-database",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/firebase-realtime-database",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Firebase Realtime Database Spec",
+ "type": "object",
+ "required": ["database_name", "google_application_credentials"],
+ "properties": {
+ "database_name": {
+ "title": "Database Name",
+ "type": "string",
+ "description": "Database name (This will be part of the url pointing to the database, https://.firebaseio.com/)"
+ },
+ "google_application_credentials": {
+ "title": "Service Account Key JSON",
+ "type": "string",
+ "description": "Cert credentials in JSON format of Service Account with Firebase Realtime Database Viewer role. (see, https://firebase.google.com/docs/projects/iam/roles-predefined-product#realtime-database)",
+ "airbyte_secret": true
+ },
+ "path": {
+ "title": "Node Path",
+ "type": "string",
+ "description": "Path to a node in the Firebase realtime database"
+ },
+ "buffer_size": {
+ "title": "Buffer Size",
+ "type": "number",
+ "description": "Number of records to fetch at once"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": ["*"]
+ }
+ },
+ {
+ "sourceDefinitionId": "8a5d48f6-03bb-4038-a942-a8d3f175cca3",
+ "name": "Freshcaller",
+ "dockerRepository": "airbyte/source-freshcaller",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshcaller",
+ "icon": "freshcaller.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshcaller",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Freshcaller Spec",
+ "type": "object",
+ "required": ["domain", "api_key", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "domain": {
+ "type": "string",
+ "title": "Domain for Freshcaller account",
+ "description": "Used to construct Base URL for the Freshcaller APIs",
+ "examples": ["snaptravel"]
+ },
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Freshcaller API Key. See the docs for more information on how to obtain this key.",
+ "airbyte_secret": true
+ },
+ "requests_per_minute": {
+ "title": "Requests per minute",
+ "type": "integer",
+ "description": "The number of requests per minute that this source allowed to use. There is a rate limit of 50 requests per minute per app per account."
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time. Any data created after this date will be replicated.",
+ "format": "date-time",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2022-01-01T12:00:00Z"]
+ },
+ "sync_lag_minutes": {
+ "title": "Lag in minutes for each sync",
+ "type": "integer",
+ "description": "Lag in minutes for each sync, i.e., at time T, data for the time range [prev_sync_time, T-30] will be fetched"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false
+ },
+ {
+ "sourceDefinitionId": "f95337f1-2ad1-4baf-922f-2ca9152de630",
+ "name": "Flexport",
+ "dockerRepository": "airbyte/source-flexport",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/flexport",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/flexport",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Flexport Spec",
+ "additionalProperties": true,
+ "type": "object",
+ "required": ["api_key", "start_date"],
+ "properties": {
+ "api_key": {
+ "order": 0,
+ "type": "string",
+ "title": "API Key",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "order": 1,
+ "title": "Start Date",
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "ec4b9503-13cb-48ab-a4ab-6ade4be46567",
+ "name": "Freshdesk",
+ "dockerRepository": "airbyte/source-freshdesk",
+ "dockerImageTag": "3.0.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshdesk",
+ "icon": "freshdesk.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshdesk",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Freshdesk Spec",
+ "type": "object",
+ "required": ["domain", "api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "domain": {
+ "type": "string",
+ "description": "Freshdesk domain",
+ "title": "Domain",
+ "examples": ["myaccount.freshdesk.com"],
+ "pattern": "^[a-zA-Z0-9._-]*\\.freshdesk\\.com$"
+ },
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Freshdesk API Key. See the docs for more information on how to obtain this key.",
+ "airbyte_secret": true
+ },
+ "requests_per_minute": {
+ "title": "Requests per minute",
+ "type": "integer",
+ "description": "The number of requests per minute that this source allowed to use. There is a rate limit of 50 requests per minute per app per account."
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "UTC date and time. Any data created after this date will be replicated. If this parameter is not set, all data will be replicated.",
+ "format": "date-time",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2020-12-01T00:00:00Z"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["*.freshdesk.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "eca08d79-7b92-4065-b7f3-79c14836ebe7",
+ "name": "Freshsales",
+ "dockerRepository": "airbyte/source-freshsales",
+ "dockerImageTag": "0.1.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshsales",
+ "icon": "freshsales.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshsales",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Freshsales Spec",
+ "type": "object",
+ "required": ["domain_name", "api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "domain_name": {
+ "type": "string",
+ "title": "Domain Name",
+ "description": "The Name of your Freshsales domain",
+ "examples": ["mydomain.myfreshworks.com"]
+ },
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Freshsales API Key. See here. The key is case sensitive.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["*.myfreshworks.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "9bb85338-ea95-4c93-b267-6be89125b267",
+ "name": "Freshservice",
+ "dockerRepository": "airbyte/source-freshservice",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshservice",
+ "icon": "freshservice.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshservice",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Freshservice Spec",
+ "type": "object",
+ "required": ["domain_name", "api_key", "start_date"],
+ "additionalProperties": false,
+ "properties": {
+ "domain_name": {
+ "type": "string",
+ "title": "Domain Name",
+ "description": "The name of your Freshservice domain",
+ "examples": ["mydomain.freshservice.com"]
+ },
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Freshservice API Key. See here. The key is case sensitive.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "UTC date and time in the format 2020-10-01T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": ["2020-10-01T00:00:00Z"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "2a8c41ae-8c23-4be0-a73f-2ab10ca1a820",
+ "name": "GCS",
+ "dockerRepository": "airbyte/source-gcs",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gcs",
+ "icon": "gcs.svg",
+ "sourceType": "file",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Gcs Spec",
+ "type": "object",
+ "required": ["gcs_bucket", "gcs_path", "service_account"],
+ "properties": {
+ "gcs_bucket": {
+ "type": "string",
+ "title": "GCS bucket",
+ "description": "GCS bucket name"
+ },
+ "gcs_path": {
+ "type": "string",
+ "title": "GCS Path",
+ "description": "GCS path to data"
+ },
+ "service_account": {
+ "type": "string",
+ "title": "Service Account Information.",
+ "description": "Enter your Google Cloud service account key in JSON format",
+ "airbyte_secret": true,
+ "examples": [
+ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }"
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false
+ },
+ {
+ "sourceDefinitionId": "5ea4459a-8f1a-452a-830f-a65c38cc438d",
+ "name": "Genesys",
+ "dockerRepository": "airbyte/source-genesys",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/genesys",
+ "icon": "genesys.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/genesys",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Genesys Connector Configuration",
+ "type": "object",
+ "required": [
+ "start_date",
+ "tenant_endpoint",
+ "client_id",
+ "client_secret"
+ ],
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "Your OAuth user Client ID",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "Your OAuth user Client Secret",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "tenant_endpoint": {
+ "title": "Tenant Endpoint Location",
+ "type": "string",
+ "description": "Please choose the right endpoint where your Tenant is located. More info by this Link",
+ "enum": [
+ "Americas (US East)",
+ "Americas (US East 2)",
+ "Americas (US West)",
+ "Americas (Canada)",
+ "Americas (São Paulo)",
+ "EMEA (Frankfurt)",
+ "EMEA (Dublin)",
+ "EMEA (London)",
+ "Asia Pacific (Mumbai)",
+ "Asia Pacific (Seoul)",
+ "Asia Pacific (Sydney)"
+ ],
+ "order": 2
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "Start Date in format: YYYY-MM-DD",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false
+ },
+ {
+ "sourceDefinitionId": "e1a3866b-d3b2-43b6-b6d7-8c1ee4d7f53f",
+ "name": "GetLago",
+ "dockerRepository": "airbyte/source-getlago",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/getlago",
+ "icon": "getlago.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/getlago",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Getlago Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Your API Key. See here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "6cbea164-3237-433b-9abb-36d384ee4cbf",
+ "name": "Gridly",
+ "dockerRepository": "airbyte/source-gridly",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gridly",
+ "icon": "gridly.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gridly",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Gridly Spec",
+ "type": "object",
+ "required": ["api_key", "grid_id"],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "airbyte_secret": true
+ },
+ "grid_id": {
+ "type": "string",
+ "title": "Grid ID",
+ "description": "ID of a grid, or can be ID of a branch"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "ef69ef6e-aa7f-4af1-a01d-ef775033524e",
+ "name": "GitHub",
+ "dockerRepository": "airbyte/source-github",
+ "dockerImageTag": "0.4.8",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/github",
+ "icon": "github.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/github",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "GitHub Source Spec",
+ "type": "object",
+ "required": ["start_date", "repository"],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authentication",
+ "description": "Choose how to authenticate to GitHub",
+ "type": "object",
+ "order": 0,
+ "group": "auth",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "OAuth",
+ "required": ["access_token"],
+ "properties": {
+ "option_title": {
+ "type": "string",
+ "const": "OAuth Credentials",
+ "order": 0
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "OAuth access token",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "Personal Access Token",
+ "required": ["personal_access_token"],
+ "properties": {
+ "option_title": {
+ "type": "string",
+ "const": "PAT Credentials",
+ "order": 0
+ },
+ "personal_access_token": {
+ "type": "string",
+ "title": "Personal Access Tokens",
+ "description": "Log into GitHub and then generate a personal access token. To load balance your API quota consumption across multiple API tokens, input multiple tokens separated with \",\"",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "description": "The date from which you'd like to replicate data from GitHub in the format YYYY-MM-DDT00:00:00Z. For the streams which support this configuration, only data generated on or after the start date will be replicated. This field doesn't apply to all streams, see the docs for more info",
+ "examples": ["2021-03-01T00:00:00Z"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "order": 1,
+ "format": "date-time"
+ },
+ "repository": {
+ "type": "string",
+ "examples": [
+ "airbytehq/airbyte airbytehq/another-repo",
+ "airbytehq/*",
+ "airbytehq/airbyte"
+ ],
+ "title": "GitHub Repositories",
+ "description": "Space-delimited list of GitHub organizations/repositories, e.g. `airbytehq/airbyte` for single repository, `airbytehq/*` for get all repositories from organization and `airbytehq/airbyte airbytehq/another-repo` for multiple repositories.",
+ "order": 2,
+ "pattern_descriptor": "org/repo1 org/repo2"
+ },
+ "branch": {
+ "type": "string",
+ "title": "Branch",
+ "examples": [
+ "airbytehq/airbyte/master airbytehq/airbyte/my-branch"
+ ],
+ "description": "Space-delimited list of GitHub repository branches to pull commits for, e.g. `airbytehq/airbyte/master`. If no branches are specified for a repository, the default branch will be pulled.",
+ "order": 3,
+ "pattern_descriptor": "org/repo/branch1 org/repo/branch2"
+ },
+ "page_size_for_large_streams": {
+ "type": "integer",
+ "title": "Page size for large streams",
+ "minimum": 1,
+ "maximum": 100,
+ "default": 10,
+ "description": "The Github connector contains several streams with a large amount of data. The page size of such streams depends on the size of your repository. We recommended that you specify values between 10 and 30.",
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "option_title"],
+ "predicate_value": "OAuth Credentials",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "access_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["api.github.com"]
+ },
+ "suggestedStreams": {
+ "streams": [
+ "branches",
+ "comments",
+ "issues",
+ "organizations",
+ "pull_requests",
+ "repositories",
+ "stargazers",
+ "tags",
+ "teams",
+ "users"
+ ]
+ },
+ "maxSecondsBetweenMessages": 5400
+ },
+ {
+ "sourceDefinitionId": "5e6175e5-68e1-4c17-bff9-56103bbb0d80",
+ "name": "Gitlab",
+ "dockerRepository": "airbyte/source-gitlab",
+ "dockerImageTag": "1.0.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gitlab",
+ "icon": "gitlab.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gitlab",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Gitlab Spec",
+ "type": "object",
+ "required": ["api_url", "start_date", "credentials"],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "order": 0,
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [
+ "client_id",
+ "client_secret",
+ "refresh_token",
+ "access_token",
+ "token_expiry_date"
+ ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "oauth2.0"
+ },
+ "client_id": {
+ "type": "string",
+ "description": "The API ID of the Gitlab developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "description": "The API Secret the Gitlab developer application.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "description": "The date-time when the access token should be refreshed.",
+ "format": "date-time"
+ },
+ "refresh_token": {
+ "type": "string",
+ "description": "The key to refresh the expired access_token.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "Private Token",
+ "type": "object",
+ "required": ["access_token"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "access_token"
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Private Token",
+ "description": "Log into your Gitlab account and then generate a personal Access Token.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ },
+ "api_url": {
+ "type": "string",
+ "examples": ["gitlab.com"],
+ "title": "API URL",
+ "default": "gitlab.com",
+ "description": "Please enter your basic URL from GitLab instance.",
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for GitLab API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "examples": ["2021-03-01T00:00:00Z"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "order": 2,
+ "format": "date-time"
+ },
+ "groups": {
+ "type": "string",
+ "examples": ["airbyte.io"],
+ "title": "Groups",
+ "description": "Space-delimited list of groups. e.g. airbyte.io.",
+ "order": 3
+ },
+ "projects": {
+ "type": "string",
+ "title": "Projects",
+ "examples": ["airbyte.io/documentation"],
+ "description": "Space-delimited list of projects. e.g. airbyte.io/documentation meltano/tap-gitlab.",
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "auth_type"],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "properties": {
+ "domain": {
+ "type": "string",
+ "path_in_connector_config": ["api_url"]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "access_token"]
+ },
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "refresh_token"]
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "format": "date-time",
+ "path_in_connector_config": [
+ "credentials",
+ "token_expiry_date"
+ ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["*"]
+ }
+ },
+ {
+ "sourceDefinitionId": "cf8ff320-6272-4faa-89e6-4402dc17e5d5",
+ "name": "Glassfrog",
+ "dockerRepository": "airbyte/source-glassfrog",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/glassfrog",
+ "icon": "glassfrog.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/glassfrog",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Glassfrog Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API key provided by Glassfrog",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "ce38aec4-5a77-439a-be29-9ca44fd4e811",
+ "name": "GNews",
+ "dockerRepository": "airbyte/source-gnews",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gnews",
+ "icon": "gnews.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gnews",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Gnews Spec",
+ "type": "object",
+ "required": ["api_key", "query"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "API Key",
+ "order": 0,
+ "airbyte_secret": true
+ },
+ "query": {
+ "type": "string",
+ "order": 1,
+ "title": "Query",
+ "description": "This parameter allows you to specify your search keywords to find the news articles you are looking for. The keywords will be used to return the most relevant articles. It is possible to use logical operators with keywords. - Phrase Search Operator: This operator allows you to make an exact search. Keywords surrounded by \n quotation marks are used to search for articles with the exact same keyword sequence. \n For example the query: \"Apple iPhone\" will return articles matching at least once this sequence of keywords.\n- Logical AND Operator: This operator allows you to make sure that several keywords are all used in the article\n search. By default the space character acts as an AND operator, it is possible to replace the space character \n by AND to obtain the same result. For example the query: Apple Microsoft is equivalent to Apple AND Microsoft\n- Logical OR Operator: This operator allows you to retrieve articles matching the keyword a or the keyword b.\n It is important to note that this operator has a higher precedence than the AND operator. For example the \n query: Apple OR Microsoft will return all articles matching the keyword Apple as well as all articles matching \n the keyword Microsoft\n- Logical NOT Operator: This operator allows you to remove from the results the articles corresponding to the\n specified keywords. To use it, you need to add NOT in front of each word or phrase surrounded by quotes.\n For example the query: Apple NOT iPhone will return all articles matching the keyword Apple but not the keyword\n iPhone",
+ "examples": [
+ "Microsoft Windows 10",
+ "Apple OR Microsoft",
+ "Apple AND NOT iPhone",
+ "(Windows 7) AND (Windows 10)",
+ "Intel AND (i7 OR i9)"
+ ]
+ },
+ "language": {
+ "type": "string",
+ "title": "Language",
+ "decription": "This parameter allows you to specify the language of the news articles returned by the API. You have to set as value the 2 letters code of the language you want to filter.",
+ "order": 2,
+ "enum": [
+ "ar",
+ "zh",
+ "nl",
+ "en",
+ "fr",
+ "de",
+ "el",
+ "he",
+ "hi",
+ "it",
+ "ja",
+ "ml",
+ "mr",
+ "no",
+ "pt",
+ "ro",
+ "ru",
+ "es",
+ "sv",
+ "ta",
+ "te",
+ "uk"
+ ]
+ },
+ "country": {
+ "type": "string",
+ "title": "Country",
+ "description": "This parameter allows you to specify the country where the news articles returned by the API were published, the contents of the articles are not necessarily related to the specified country. You have to set as value the 2 letters code of the country you want to filter.",
+ "order": 3,
+ "enum": [
+ "au",
+ "br",
+ "ca",
+ "cn",
+ "eg",
+ "fr",
+ "de",
+ "gr",
+ "hk",
+ "in",
+ "ie",
+ "il",
+ "it",
+ "jp",
+ "nl",
+ "no",
+ "pk",
+ "pe",
+ "ph",
+ "pt",
+ "ro",
+ "ru",
+ "sg",
+ "es",
+ "se",
+ "ch",
+ "tw",
+ "ua",
+ "gb",
+ "us"
+ ]
+ },
+ "in": {
+ "type": "array",
+ "title": "In",
+ "description": "This parameter allows you to choose in which attributes the keywords are searched. The attributes that can be set are title, description and content. It is possible to combine several attributes.",
+ "order": 4,
+ "items": {
+ "type": "string",
+ "enum": ["title", "description", "content"]
+ }
+ },
+ "nullable": {
+ "type": "array",
+ "title": "Nullable",
+ "description": "This parameter allows you to specify the attributes that you allow to return null values. The attributes that can be set are title, description and content. It is possible to combine several attributes",
+ "order": 5,
+ "items": {
+ "type": "string",
+ "enum": ["title", "description", "content"]
+ }
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "This parameter allows you to filter the articles that have a publication date greater than or equal to the specified value. The date must respect the following format: YYYY-MM-DD hh:mm:ss (in UTC)",
+ "order": 6,
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$",
+ "examples": ["2022-08-21 16:27:09"]
+ },
+ "end_date": {
+ "type": "string",
+ "title": "End Date",
+ "description": "This parameter allows you to filter the articles that have a publication date smaller than or equal to the specified value. The date must respect the following format: YYYY-MM-DD hh:mm:ss (in UTC)",
+ "order": 6,
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$",
+ "examples": ["2022-08-21 16:27:09"]
+ },
+ "sortby": {
+ "type": "string",
+ "title": "Sort By",
+ "description": "This parameter allows you to choose with which type of sorting the articles should be returned. Two values are possible:\n - publishedAt = sort by publication date, the articles with the most recent publication date are returned first\n - relevance = sort by best match to keywords, the articles with the best match are returned first",
+ "order": 7,
+ "enum": ["publishedAt", "relevance"]
+ },
+ "top_headlines_query": {
+ "type": "string",
+ "order": 8,
+ "title": "Top Headlines Query",
+ "description": "This parameter allows you to specify your search keywords to find the news articles you are looking for. The keywords will be used to return the most relevant articles. It is possible to use logical operators with keywords. - Phrase Search Operator: This operator allows you to make an exact search. Keywords surrounded by \n quotation marks are used to search for articles with the exact same keyword sequence. \n For example the query: \"Apple iPhone\" will return articles matching at least once this sequence of keywords.\n- Logical AND Operator: This operator allows you to make sure that several keywords are all used in the article\n search. By default the space character acts as an AND operator, it is possible to replace the space character \n by AND to obtain the same result. For example the query: Apple Microsoft is equivalent to Apple AND Microsoft\n- Logical OR Operator: This operator allows you to retrieve articles matching the keyword a or the keyword b.\n It is important to note that this operator has a higher precedence than the AND operator. For example the \n query: Apple OR Microsoft will return all articles matching the keyword Apple as well as all articles matching \n the keyword Microsoft\n- Logical NOT Operator: This operator allows you to remove from the results the articles corresponding to the\n specified keywords. To use it, you need to add NOT in front of each word or phrase surrounded by quotes.\n For example the query: Apple NOT iPhone will return all articles matching the keyword Apple but not the keyword\n iPhone",
+ "examples": [
+ "Microsoft Windows 10",
+ "Apple OR Microsoft",
+ "Apple AND NOT iPhone",
+ "(Windows 7) AND (Windows 10)",
+ "Intel AND (i7 OR i9)"
+ ]
+ },
+ "top_headlines_topic": {
+ "type": "string",
+ "title": "Top Headlines Topic",
+ "description": "This parameter allows you to change the category for the request.",
+ "order": 9,
+ "enum": [
+ "breaking-news",
+ "world",
+ "nation",
+ "business",
+ "technology",
+ "entertainment",
+ "sports",
+ "science",
+ "health"
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "ba15ac82-5c6a-4fb2-bf24-925c23a1180c",
+ "name": "GoCardless",
+ "dockerRepository": "airbyte/source-gocardless",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gocardless",
+ "icon": "gocardless.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gocardless",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Gocardless Spec",
+ "type": "object",
+ "required": [
+ "access_token",
+ "gocardless_environment",
+ "gocardless_version",
+ "start_date"
+ ],
+ "properties": {
+ "access_token": {
+ "title": "Access Token",
+ "type": "string",
+ "pattern": "^(sandbox|live)_.+$",
+ "description": "Gocardless API TOKEN",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "gocardless_environment": {
+ "title": "GoCardless API Environment",
+ "type": "string",
+ "enum": ["sandbox", "live"],
+ "default": "sandbox",
+ "description": "Environment you are trying to connect to.",
+ "order": 1
+ },
+ "gocardless_version": {
+ "title": "GoCardless API Version",
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "description": "GoCardless version. This is a date. You can find the latest here: \nhttps://developer.gocardless.com/api-reference/#api-usage-making-requests\n",
+ "order": 2
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data\nbefore this date will not be replicated.\n",
+ "examples": ["2017-01-25T00:00:00Z"],
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "32382e40-3b49-4b99-9c5c-4076501914e7",
+ "name": "Gong",
+ "dockerRepository": "airbyte/source-gong",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gong",
+ "icon": "gong.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gong",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Gong Spec",
+ "type": "object",
+ "required": ["access_key", "access_key_secret"],
+ "additionalProperties": true,
+ "properties": {
+ "access_key": {
+ "type": "string",
+ "title": "Gong Access Key",
+ "description": "Gong Access Key",
+ "airbyte_secret": true
+ },
+ "access_key_secret": {
+ "type": "string",
+ "title": "Gong Access Key Secret",
+ "description": "Gong Access Key Secret",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "The date from which to list calls, in the ISO-8601 format; if not specified, the calls start with the earliest recorded call. For web-conference calls recorded by Gong, the date denotes its scheduled time, otherwise, it denotes its actual start time.",
+ "examples": ["2018-02-18T08:00:00Z"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "253487c0-2246-43ba-a21f-5116b20a2c50",
+ "name": "Google Ads",
+ "dockerRepository": "airbyte/source-google-ads",
+ "dockerImageTag": "0.2.14",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-ads",
+ "icon": "google-adwords.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-ads",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Google Ads Spec",
+ "type": "object",
+ "required": ["credentials", "start_date", "customer_id"],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "type": "object",
+ "description": "",
+ "title": "Google Credentials",
+ "order": 0,
+ "required": [
+ "developer_token",
+ "client_id",
+ "client_secret",
+ "refresh_token"
+ ],
+ "properties": {
+ "developer_token": {
+ "type": "string",
+ "title": "Developer Token",
+ "order": 0,
+ "description": "Developer token granted by Google to use their APIs. More instruction on how to find this value in our docs",
+ "airbyte_secret": true
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "order": 1,
+ "description": "The Client ID of your Google Ads developer application. More instruction on how to find this value in our docs"
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "order": 2,
+ "description": "The Client Secret of your Google Ads developer application. More instruction on how to find this value in our docs",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "order": 3,
+ "description": "The token for obtaining a new access token. More instruction on how to find this value in our docs",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "order": 4,
+ "description": "Access Token for making authenticated requests. More instruction on how to find this value in our docs",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "customer_id": {
+ "title": "Customer ID(s)",
+ "type": "string",
+ "description": "Comma separated list of (client) customer IDs. Each customer ID must be specified as a 10-digit number without dashes. More instruction on how to find this value in our docs. Metrics streams like AdGroupAdReport cannot be requested for a manager account.",
+ "pattern": "^[0-9]{10}(,[0-9]{10})*$",
+ "examples": ["6783948572,5839201945"],
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25. Any data before this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": ["2017-01-25"],
+ "order": 2,
+ "format": "date"
+ },
+ "end_date": {
+ "type": "string",
+ "title": "End Date",
+ "description": "UTC date and time in the format 2017-01-25. Any data after this date will not be replicated.",
+ "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": ["2017-01-30"],
+ "order": 6,
+ "format": "date"
+ },
+ "custom_queries": {
+ "type": "array",
+ "title": "Custom GAQL Queries",
+ "description": "",
+ "order": 3,
+ "items": {
+ "type": "object",
+ "required": ["query", "table_name"],
+ "properties": {
+ "query": {
+ "type": "string",
+ "title": "Custom Query",
+ "description": "A custom defined GAQL query for building the report. Should not contain segments.date expression because it is used by incremental streams. See Google's query builder for more information.",
+ "examples": [
+ "SELECT segments.ad_destination_type, campaign.advertising_channel_sub_type FROM campaign WHERE campaign.status = 'PAUSED'"
+ ]
+ },
+ "table_name": {
+ "type": "string",
+ "title": "Destination Table Name",
+ "description": "The table name in your destination database for choosen query."
+ }
+ }
+ }
+ },
+ "login_customer_id": {
+ "type": "string",
+ "title": "Login Customer ID for Managed Accounts",
+ "description": "If your access to the customer account is through a manager account, this field is required and must be set to the customer ID of the manager account (10-digit number without dashes). More information about this field you can see here",
+ "pattern": "^([0-9]{10})?$",
+ "examples": ["7349206847"],
+ "order": 4
+ },
+ "conversion_window_days": {
+ "title": "Conversion Window",
+ "type": "integer",
+ "description": "A conversion window is the period of time after an ad interaction (such as an ad click or video view) during which a conversion, such as a purchase, is recorded in Google Ads. For more information, see Google's documentation.",
+ "minimum": 0,
+ "maximum": 1095,
+ "default": 14,
+ "examples": [14],
+ "order": 5
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": ["credentials"],
+ "oauthFlowInitParameters": [
+ ["client_id"],
+ ["client_secret"],
+ ["developer_token"]
+ ],
+ "oauthFlowOutputParameters": [["access_token"], ["refresh_token"]]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["accounts.google.com", "googleads.googleapis.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "eff3616a-f9c3-11eb-9a03-0242ac130003",
+ "name": "Google Analytics (Universal Analytics)",
+ "dockerRepository": "airbyte/source-google-analytics-v4",
+ "dockerImageTag": "0.1.34",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-analytics-v4",
+ "icon": "google-analytics.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-analytics-universal-analytics",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Google Analytics (Universal Analytics) Spec",
+ "type": "object",
+ "required": ["view_id", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "order": 0,
+ "type": "object",
+ "title": "Credentials",
+ "description": "Credentials for the service",
+ "oneOf": [
+ {
+ "title": "Authenticate via Google (Oauth)",
+ "type": "object",
+ "required": ["client_id", "client_secret", "refresh_token"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Google Analytics developer application.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Google Analytics developer application.",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "The token for obtaining a new access token.",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "access_token": {
+ "title": "Access Token",
+ "type": "string",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "Service Account Key Authentication",
+ "required": ["credentials_json"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Service",
+ "order": 0
+ },
+ "credentials_json": {
+ "title": "Service Account JSON Key",
+ "type": "string",
+ "description": "The JSON key of the service account to use for authorization",
+ "examples": [
+ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }"
+ ],
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ },
+ "start_date": {
+ "order": 1,
+ "type": "string",
+ "title": "Replication Start Date",
+ "description": "The date in the format YYYY-MM-DD. Any data before this date will not be replicated.",
+ "examples": ["2020-06-01"]
+ },
+ "view_id": {
+ "order": 2,
+ "type": "string",
+ "title": "View ID",
+ "description": "The ID for the Google Analytics View you want to fetch data from. This can be found from the Google Analytics Account Explorer."
+ },
+ "custom_reports": {
+ "order": 3,
+ "type": "string",
+ "title": "Custom Reports",
+ "description": "A JSON array describing the custom reports you want to sync from Google Analytics. See the docs for more information about the exact format you can use to fill out this field."
+ },
+ "window_in_days": {
+ "type": "integer",
+ "title": "Data request time increment in days",
+ "description": "The time increment used by the connector when requesting data from the Google Analytics API. More information is available in the the docs. The bigger this value is, the faster the sync will be, but the more likely that sampling will be applied to your data, potentially causing inaccuracies in the returned results. We recommend setting this to 1 unless you have a hard requirement to make the sync faster at the expense of accuracy. The minimum allowed value for this field is 1, and the maximum is 364. ",
+ "examples": [30, 60, 90, 120, 200, 364],
+ "default": 1,
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": ["credentials", "0"],
+ "oauthFlowInitParameters": [["client_id"], ["client_secret"]],
+ "oauthFlowOutputParameters": [["access_token"], ["refresh_token"]]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [
+ "oauth2.googleapis.com",
+ "www.googleapis.com",
+ "analyticsdata.googleapis.com",
+ "analyticsreporting.googleapis.com"
+ ]
+ }
+ },
+ {
+ "sourceDefinitionId": "3cc2eafd-84aa-4dca-93af-322d9dfeec1a",
+ "name": "Google Analytics 4 (GA4)",
+ "dockerRepository": "airbyte/source-google-analytics-data-api",
+ "dockerImageTag": "0.2.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-analytics-data-api",
+ "icon": "google-analytics.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-analytics-data-api",
+ "connectionSpecification": {
+ "$schema": "https://json-schema.org/draft-07/schema#",
+ "title": "Google Analytics (Data API) Spec",
+ "type": "object",
+ "required": ["property_id", "date_ranges_start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "order": 0,
+ "type": "object",
+ "title": "Credentials",
+ "description": "Credentials for the service",
+ "oneOf": [
+ {
+ "title": "Authenticate via Google (Oauth)",
+ "type": "object",
+ "required": ["client_id", "client_secret", "refresh_token"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Google Analytics developer application.",
+ "order": 1
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Google Analytics developer application.",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "The token for obtaining a new access token.",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "access_token": {
+ "title": "Access Token",
+ "type": "string",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "Service Account Key Authentication",
+ "required": ["credentials_json"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Service",
+ "order": 0
+ },
+ "credentials_json": {
+ "title": "Service Account JSON Key",
+ "type": "string",
+ "description": "The JSON key of the service account to use for authorization",
+ "examples": [
+ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }"
+ ],
+ "airbyte_secret": true,
+ "order": 1
+ }
+ }
+ }
+ ]
+ },
+ "property_id": {
+ "type": "string",
+ "title": "Property ID",
+ "description": "A Google Analytics GA4 property identifier whose events are tracked. Specified in the URL path and not the body",
+ "order": 1
+ },
+ "date_ranges_start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The start date from which to replicate report data in the format YYYY-MM-DD. Data generated before this date will not be included in the report. Not applied to custom Cohort reports.",
+ "format": "date",
+ "order": 2
+ },
+ "custom_reports": {
+ "order": 3,
+ "type": "string",
+ "title": "Custom Reports",
+ "description": "A JSON array describing the custom reports you want to sync from Google Analytics. See the docs for more information about the exact format you can use to fill out this field."
+ },
+ "window_in_days": {
+ "type": "integer",
+ "title": "Data request time increment in days",
+ "description": "The time increment used by the connector when requesting data from the Google Analytics API. More information is available in the the docs. The bigger this value is, the faster the sync will be, but the more likely that sampling will be applied to your data, potentially causing inaccuracies in the returned results. We recommend setting this to 1 unless you have a hard requirement to make the sync faster at the expense of accuracy. The minimum allowed value for this field is 1, and the maximum is 364. Not applied to custom Cohort reports.",
+ "examples": [30, 60, 90, 120, 200, 364],
+ "minimum": 1,
+ "maximum": 364,
+ "default": 1,
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": ["credentials", "0"],
+ "oauthFlowInitParameters": [["client_id"], ["client_secret"]],
+ "oauthFlowOutputParameters": [["access_token"], ["refresh_token"]]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": [
+ "oauth2.googleapis.com",
+ "www.googleapis.com",
+ "analyticsdata.googleapis.com"
+ ]
+ }
+ },
+ {
+ "sourceDefinitionId": "d19ae824-e289-4b14-995a-0632eb46d246",
+ "name": "Google Directory",
+ "dockerRepository": "airbyte/source-google-directory",
+ "dockerImageTag": "0.1.9",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-directory",
+ "icon": "googledirectory.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-directory",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Google Directory Spec",
+ "type": "object",
+ "required": [],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Google Credentials",
+ "description": "Google APIs use the OAuth 2.0 protocol for authentication and authorization. The Source supports Web server application and Service accounts scenarios.",
+ "type": "object",
+ "oneOf": [
+ {
+ "title": "Sign in via Google (OAuth)",
+ "description": "For these scenario user only needs to give permission to read Google Directory data.",
+ "type": "object",
+ "required": ["client_id", "client_secret", "refresh_token"],
+ "properties": {
+ "credentials_title": {
+ "type": "string",
+ "title": "Credentials Title",
+ "description": "Authentication Scenario",
+ "const": "Web server app",
+ "enum": ["Web server app"],
+ "default": "Web server app",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of the developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client secret",
+ "type": "string",
+ "description": "The Client Secret of the developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "The Token for obtaining a new access token.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "Service Account Key",
+ "description": "For these scenario user should obtain service account's credentials from the Google API Console and provide delegated email.",
+ "type": "object",
+ "required": ["credentials_json", "email"],
+ "properties": {
+ "credentials_title": {
+ "type": "string",
+ "title": "Credentials Title",
+ "description": "Authentication Scenario",
+ "const": "Service accounts",
+ "enum": ["Service accounts"],
+ "default": "Service accounts",
+ "order": 0
+ },
+ "credentials_json": {
+ "type": "string",
+ "title": "Credentials JSON",
+ "description": "The contents of the JSON service account key. See the docs for more information on how to generate this key.",
+ "airbyte_secret": true
+ },
+ "email": {
+ "type": "string",
+ "title": "Email",
+ "description": "The email of the user, which has permissions to access the Google Workspace Admin APIs."
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": ["credentials", "0"],
+ "oauthFlowInitParameters": [["client_id"], ["client_secret"]],
+ "oauthFlowOutputParameters": [["refresh_token"]]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "1e9086ab-ddac-4c1d-aafd-ba43ff575fe4",
+ "name": "Google PageSpeed Insights",
+ "dockerRepository": "airbyte/source-google-pagespeed-insights",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-pagespeed-insights",
+ "icon": "google-pagespeed-insights.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/google-pagespeed-insights",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Google PageSpeed Insights Spec",
+ "type": "object",
+ "required": ["urls", "strategies", "categories"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Google PageSpeed API Key. See here. The key is optional - however the API is heavily rate limited when using without API Key. Creating and using the API key therefore is recommended. The key is case sensitive.",
+ "airbyte_secret": true
+ },
+ "urls": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "^(?:origin:)?(http(s)?:\\/\\/)[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:\\/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$"
+ },
+ "title": "URLs to analyse",
+ "description": "The URLs to retrieve pagespeed information from. The connector will attempt to sync PageSpeed reports for all the defined URLs. Format: https://(www.)url.domain",
+ "example": "https://example.com"
+ },
+ "strategies": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": ["desktop", "mobile"]
+ },
+ "title": "Analyses Strategies",
+ "description": "The analyses strategy to use. Either \"desktop\" or \"mobile\"."
+ },
+ "categories": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "accessibility",
+ "best-practices",
+ "performance",
+ "pwa",
+ "seo"
+ ]
+ },
+ "title": "Lighthouse Categories",
+ "description": "Defines which Lighthouse category to run. One or many of: \"accessibility\", \"best-practices\", \"performance\", \"pwa\", \"seo\"."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "eb4c9e00-db83-4d63-a386-39cfa91012a8",
+ "name": "Google Search Console",
+ "dockerRepository": "airbyte/source-google-search-console",
+ "dockerImageTag": "0.1.22",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-search-console",
+ "icon": "googlesearchconsole.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-search-console",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Google Search Console Spec",
+ "type": "object",
+ "required": ["site_urls", "start_date", "authorization"],
+ "properties": {
+ "site_urls": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "Website URL Property",
+ "description": "The URLs of the website property attached to your GSC account. Read more here.",
+ "examples": ["https://example1.com/", "sc-domain:example2.com"],
+ "order": 0
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "UTC date in the format 2017-01-25. Any data before this date will not be replicated.",
+ "examples": ["2021-01-01"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 1,
+ "format": "date"
+ },
+ "end_date": {
+ "type": "string",
+ "title": "End Date",
+ "description": "UTC date in the format 2017-01-25. Any data after this date will not be replicated. Must be greater or equal to the start date field.",
+ "examples": ["2021-12-12"],
+ "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 2,
+ "format": "date"
+ },
+ "authorization": {
+ "type": "object",
+ "title": "Authentication Type",
+ "description": "",
+ "order": 3,
+ "oneOf": [
+ {
+ "title": "OAuth",
+ "type": "object",
+ "required": [
+ "auth_type",
+ "client_id",
+ "client_secret",
+ "refresh_token"
+ ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The client ID of your Google Search Console developer application. Read more here.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The client secret of your Google Search Console developer application. Read more here.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "title": "Access Token",
+ "type": "string",
+ "description": "Access token for making authenticated requests. Read more here.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "The token for obtaining a new access token. Read more here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "Service Account Key Authentication",
+ "required": ["auth_type", "service_account_info", "email"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Service",
+ "order": 0
+ },
+ "service_account_info": {
+ "title": "Service Account JSON Key",
+ "type": "string",
+ "description": "The JSON key of the service account to use for authorization. Read more here.",
+ "examples": [
+ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }"
+ ],
+ "airbyte_secret": true
+ },
+ "email": {
+ "title": "Admin Email",
+ "type": "string",
+ "description": "The email of the user which has permissions to access the Google Workspace Admin APIs."
+ }
+ }
+ }
+ ]
+ },
+ "custom_reports": {
+ "order": 4,
+ "type": "string",
+ "title": "Custom Reports",
+ "description": "A JSON array describing the custom reports you want to sync from Google Search Console. See the docs for more information about the exact format you can use to fill out this field."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": ["authorization", "0"],
+ "oauthFlowInitParameters": [["client_id"], ["client_secret"]],
+ "oauthFlowOutputParameters": [["access_token"], ["refresh_token"]]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["*.googleapis.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "71607ba1-c0ac-4799-8049-7f4b90dd50f7",
+ "name": "Google Sheets",
+ "dockerRepository": "airbyte/source-google-sheets",
+ "dockerImageTag": "0.2.37",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-sheets",
+ "icon": "google-sheets.svg",
+ "sourceType": "file",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-sheets",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Google Sheets Source Spec",
+ "type": "object",
+ "required": ["spreadsheet_id", "credentials"],
+ "additionalProperties": true,
+ "properties": {
+ "spreadsheet_id": {
+ "type": "string",
+ "title": "Spreadsheet Link",
+ "description": "Enter the link to the Google spreadsheet you want to sync",
+ "examples": [
+ "https://docs.google.com/spreadsheets/d/1hLd9Qqti3UyLXZB2aFfUWDT7BG-arw2xy4HR3D-dwUb/edit"
+ ]
+ },
+ "row_batch_size": {
+ "type": "integer",
+ "title": "Row Batch Size",
+ "description": "Number of rows fetched when making a Google Sheet API call. Defaults to 200.",
+ "default": 200
+ },
+ "names_conversion": {
+ "type": "boolean",
+ "title": "Columns Name Conversion",
+ "description": "Columns name conversion using a set of rules, for example, 'My Name' -> 'my-name'.",
+ "default": false
+ },
+ "credentials": {
+ "type": "object",
+ "title": "Authentication",
+ "description": "Credentials for connecting to the Google Sheets API",
+ "oneOf": [
+ {
+ "title": "Authenticate via Google (OAuth)",
+ "type": "object",
+ "required": [
+ "auth_type",
+ "client_id",
+ "client_secret",
+ "refresh_token"
+ ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client"
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "Enter your Google application's Client ID",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "Enter your Google application's Client Secret",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "Enter your Google application's refresh token",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "Service Account Key Authentication",
+ "type": "object",
+ "required": ["auth_type", "service_account_info"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Service"
+ },
+ "service_account_info": {
+ "type": "string",
+ "title": "Service Account Information.",
+ "description": "Enter your Google Cloud service account key in JSON format",
+ "airbyte_secret": true,
+ "examples": [
+ "{ \"type\": \"service_account\", \"project_id\": YOUR_PROJECT_ID, \"private_key_id\": YOUR_PRIVATE_KEY, ... }"
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": ["credentials", "0"],
+ "oauthFlowInitParameters": [["client_id"], ["client_secret"]],
+ "oauthFlowOutputParameters": [["refresh_token"]]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["*.googleapis.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "a68fbcde-b465-4ab3-b2a6-b0590a875835",
+ "name": "Google Webfonts",
+ "dockerRepository": "airbyte/source-google-webfonts",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-webfonts",
+ "icon": "googleworkpace.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-webfonts",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Google Webfonts Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API key is required to access google apis, For getting your's goto google console and generate api key for Webfonts",
+ "airbyte_secret": true
+ },
+ "sort": {
+ "type": "string",
+ "description": "Optional, to find how to sort"
+ },
+ "prettyPrint": {
+ "type": "string",
+ "description": "Optional, boolean type"
+ },
+ "alt": {
+ "type": "string",
+ "description": "Optional, Available params- json, media, proto"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "ed9dfefa-1bbc-419d-8c5e-4d78f0ef6734",
+ "name": "Google Workspace Admin Reports",
+ "dockerRepository": "airbyte/source-google-workspace-admin-reports",
+ "dockerImageTag": "0.1.8",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-workspace-admin-reports",
+ "icon": "googleworkpace.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/google-workspace-admin-reports",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Google Directory Spec",
+ "type": "object",
+ "required": ["credentials_json", "email"],
+ "additionalProperties": false,
+ "properties": {
+ "credentials_json": {
+ "type": "string",
+ "title": "Credentials JSON",
+ "description": "The contents of the JSON service account key. See the docs for more information on how to generate this key.",
+ "airbyte_secret": true
+ },
+ "email": {
+ "type": "string",
+ "title": "Email",
+ "description": "The email of the user, who has permissions to access the Google Workspace Admin APIs."
+ },
+ "lookback": {
+ "type": "integer",
+ "title": "Lookback Window in Days",
+ "minimum": 0,
+ "maximum": 180,
+ "description": "Sets the range of time shown in the report. The maximum value allowed by the Google API is 180 days."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "59f1e50a-331f-4f09-b3e8-2e8d4d355f44",
+ "name": "Greenhouse",
+ "dockerRepository": "airbyte/source-greenhouse",
+ "dockerImageTag": "0.3.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/greenhouse",
+ "icon": "greenhouse.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/greenhouse",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Greenhouse Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Greenhouse API Key. See the docs for more information on how to generate this key.",
+ "airbyte_secret": true,
+ "order": 0
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["harvest.greenhouse.io"]
+ }
+ },
+ {
+ "sourceDefinitionId": "bff9a277-e01d-420d-81ee-80f28a307318",
+ "name": "Gutendex",
+ "dockerRepository": "airbyte/source-gutendex",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gutendex",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/gutendex",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Gutendex Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "author_year_start": {
+ "type": "string",
+ "description": "(Optional) Defines the minimum birth year of the authors. Books by authors born prior to the start year will not be returned. Supports both positive (CE) or negative (BCE) integer values",
+ "pattern": "^[-]?[0-9]{1,4}$",
+ "examples": [2002, 500, -500, 2020]
+ },
+ "author_year_end": {
+ "type": "string",
+ "description": "(Optional) Defines the maximum birth year of the authors. Books by authors born after the end year will not be returned. Supports both positive (CE) or negative (BCE) integer values",
+ "pattern": "^[-]?[0-9]{1,4}$",
+ "examples": [2002, 500, -500, 2020]
+ },
+ "copyright": {
+ "type": "string",
+ "description": "(Optional) Use this to find books with a certain copyright status - true for books with existing copyrights, false for books in the public domain in the USA, or null for books with no available copyright information.",
+ "pattern": "^(true|false|null)$",
+ "examples": [true, false, null]
+ },
+ "languages": {
+ "type": "string",
+ "description": "(Optional) Use this to find books in any of a list of languages. They must be comma-separated, two-character language codes.",
+ "examples": ["en", "en,fr,fi"]
+ },
+ "search": {
+ "type": "string",
+ "description": "(Optional) Use this to search author names and book titles with given words. They must be separated by a space (i.e. %20 in URL-encoded format) and are case-insensitive.",
+ "examples": ["dickens%20great%20expect", "dickens"]
+ },
+ "sort": {
+ "type": "string",
+ "description": "(Optional) Use this to sort books - ascending for Project Gutenberg ID numbers from lowest to highest, descending for IDs highest to lowest, or popular (the default) for most popular to least popular by number of downloads.",
+ "pattern": "^(ascending|descending|popular)$",
+ "examples": ["ascending", "descending", "popular"]
+ },
+ "topic": {
+ "type": "string",
+ "description": "(Optional) Use this to search for a case-insensitive key-phrase in books' bookshelves or subjects.",
+ "examples": ["children", "fantasy"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "6fe89830-d04d-401b-aad6-6552ffa5c4af",
+ "name": "Harness",
+ "dockerRepository": "farosai/airbyte-harness-source",
+ "dockerImageTag": "0.1.23",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/harness",
+ "icon": "harness.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.faros.ai",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Harness Spec",
+ "type": "object",
+ "required": ["api_key", "account_id"],
+ "additionalProperties": false,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "Harness API key",
+ "airbyte_secret": true
+ },
+ "account_id": {
+ "type": "string",
+ "title": "Harness account ID"
+ },
+ "api_url": {
+ "type": "string",
+ "title": "Harness API URL",
+ "default": "https://app.harness.io",
+ "examples": ["https://my-harness-server.example.com"]
+ },
+ "cutoff_days": {
+ "type": "number",
+ "title": "Harness Cutoff Days",
+ "default": 90,
+ "description": "Only fetch deployments updated after cutoff"
+ },
+ "page_size": {
+ "type": "number",
+ "title": "Harness Page Size",
+ "default": 100,
+ "description": "number of pipelines (builds) to fetch per call"
+ },
+ "deployment_timeout": {
+ "type": "number",
+ "title": "Harness Deployment Timeout",
+ "default": 24,
+ "description": "Max number of hours to consider for a deployment to be running/queued before giving up on syncing it"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "fe2b4084-3386-4d3b-9ad6-308f61a6f1e6",
+ "name": "Harvest",
+ "dockerRepository": "airbyte/source-harvest",
+ "dockerImageTag": "0.1.17",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/harvest",
+ "icon": "harvest.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/harvest",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Harvest Spec",
+ "type": "object",
+ "required": ["account_id", "replication_start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "account_id": {
+ "title": "Account ID",
+ "description": "Harvest account ID. Required for all Harvest requests in pair with Personal Access Token",
+ "airbyte_secret": true,
+ "type": "string",
+ "order": 0
+ },
+ "replication_start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2017-01-25T00:00:00Z"],
+ "type": "string",
+ "order": 1,
+ "format": "date-time"
+ },
+ "replication_end_date": {
+ "title": "End Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data after this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2017-01-25T00:00:00Z"],
+ "type": "string",
+ "airbyte_hidden": true,
+ "order": 2,
+ "format": "date-time"
+ },
+ "credentials": {
+ "title": "Authentication mechanism",
+ "description": "Choose how to authenticate to Harvest.",
+ "type": "object",
+ "order": 3,
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "Authenticate via Harvest (OAuth)",
+ "required": ["client_id", "client_secret", "refresh_token"],
+ "additionalProperties": true,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Harvest developer application."
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Harvest developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "Refresh Token to renew the expired Access Token.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "Authenticate with Personal Access Token",
+ "required": ["api_token"],
+ "additionalProperties": true,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Token",
+ "order": 0
+ },
+ "api_token": {
+ "title": "Personal Access Token",
+ "description": "Log into Harvest and then create new personal access token.",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["append"],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": ["credentials", "0"],
+ "oauthFlowInitParameters": [["client_id"], ["client_secret"]],
+ "oauthFlowOutputParameters": [["refresh_token"]]
+ }
+ },
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "auth_type"],
+ "predicate_value": "Client",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "refresh_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["api.harvestapp.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "492b56d1-937c-462e-8076-21ad2031e784",
+ "name": "Hellobaton",
+ "dockerRepository": "airbyte/source-hellobaton",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/hellobaton",
+ "icon": "hellobaton.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Hellobaton Spec",
+ "type": "object",
+ "required": ["api_key", "company"],
+ "additionalProperties": false,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "authentication key required to access the api endpoints",
+ "airbyte_secret": true
+ },
+ "company": {
+ "type": "string",
+ "description": "Company name that generates your base api url",
+ "examples": ["google", "facebook", "microsoft"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "8097ceb9-383f-42f6-9f92-d3fd4bcc7689",
+ "name": "Hubplanner",
+ "dockerRepository": "airbyte/source-hubplanner",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/hubplanner",
+ "icon": "hubplanner.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/hubplanner",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Hubplanner Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "Hubplanner API key. See https://github.com/hubplanner/API#authentication for more details.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "36c891d9-4bd9-43ac-bad2-10e12756272c",
+ "name": "HubSpot",
+ "dockerRepository": "airbyte/source-hubspot",
+ "dockerImageTag": "0.6.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/hubspot",
+ "icon": "hubspot.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/hubspot",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "HubSpot Source Spec",
+ "type": "object",
+ "required": ["start_date", "credentials"],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": ["2017-01-25T00:00:00Z"],
+ "format": "date-time"
+ },
+ "credentials": {
+ "title": "Authentication",
+ "description": "Choose how to authenticate to HubSpot.",
+ "type": "object",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "OAuth",
+ "required": [
+ "client_id",
+ "client_secret",
+ "refresh_token",
+ "credentials_title"
+ ],
+ "properties": {
+ "credentials_title": {
+ "type": "string",
+ "title": "Credentials",
+ "description": "Name of the credentials",
+ "const": "OAuth Credentials",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "description": "The Client ID of your HubSpot developer application. See the Hubspot docs if you need help finding this ID.",
+ "type": "string",
+ "examples": ["123456789000"]
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "description": "The client secret for your HubSpot developer application. See the Hubspot docs if you need help finding this secret.",
+ "type": "string",
+ "examples": ["secret"],
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "description": "Refresh token to renew an expired access token. See the Hubspot docs if you need help finding this token.",
+ "type": "string",
+ "examples": ["refresh_token"],
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "Private App",
+ "required": ["access_token", "credentials_title"],
+ "properties": {
+ "credentials_title": {
+ "type": "string",
+ "title": "Credentials",
+ "description": "Name of the credentials set",
+ "const": "Private App Credentials",
+ "order": 0
+ },
+ "access_token": {
+ "title": "Access token",
+ "description": "HubSpot Access token. See the Hubspot docs if you need help finding this token.",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": ["credentials", "0"],
+ "oauthFlowInitParameters": [["client_id"], ["client_secret"]],
+ "oauthFlowOutputParameters": [["refresh_token"]]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["api.hubapi.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "f23b7b7c-d705-49a3-9042-09add3b104a5",
+ "name": "IP2Whois",
+ "dockerRepository": "airbyte/source-ip2whois",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/ip2whois",
+ "icon": "ip2whois.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/ip2whois",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Ip2whois Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API key",
+ "type": "string",
+ "description": "Your API Key. See here.",
+ "airbyte_secret": true
+ },
+ "domain": {
+ "title": "Domain",
+ "type": "string",
+ "description": "Domain name. See here.",
+ "examples": ["www.google.com", "www.facebook.com"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "447e0381-3780-4b46-bb62-00a4e3c8b8e2",
+ "name": "IBM Db2",
+ "dockerRepository": "airbyte/source-db2",
+ "dockerImageTag": "0.1.19",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/db2",
+ "icon": "db2.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/db2",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "IBM Db2 Source Spec",
+ "type": "object",
+ "required": [
+ "host",
+ "port",
+ "db",
+ "username",
+ "password",
+ "encryption"
+ ],
+ "properties": {
+ "host": {
+ "description": "Host of the Db2.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 8123,
+ "examples": ["8123"],
+ "order": 1
+ },
+ "db": {
+ "description": "Name of the database.",
+ "type": "string",
+ "examples": ["default"],
+ "order": 2
+ },
+ "username": {
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 5
+ },
+ "encryption": {
+ "title": "Encryption",
+ "type": "object",
+ "description": "Encryption method to use when communicating with the database",
+ "order": 6,
+ "oneOf": [
+ {
+ "title": "Unencrypted",
+ "description": "Data transfer will not be encrypted.",
+ "required": ["encryption_method"],
+ "properties": {
+ "encryption_method": {
+ "type": "string",
+ "const": "unencrypted"
+ }
+ }
+ },
+ {
+ "title": "TLS Encrypted (verify certificate)",
+ "description": "Verify and use the cert provided by the server.",
+ "required": ["encryption_method", "ssl_certificate"],
+ "properties": {
+ "encryption_method": {
+ "type": "string",
+ "const": "encrypted_verify_certificate"
+ },
+ "ssl_certificate": {
+ "title": "SSL PEM file",
+ "description": "Privacy Enhanced Mail (PEM) files are concatenated certificate containers frequently used in certificate installations",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true
+ },
+ "key_store_password": {
+ "title": "Key Store Password. This field is optional. If you do not fill in this field, the password will be randomly generated.",
+ "description": "Key Store Password",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": ["${host}"]
+ }
+ },
+ {
+ "sourceDefinitionId": "38f84314-fe6a-4257-97be-a8dcd942d693",
+ "name": "Insightly",
+ "dockerRepository": "airbyte/source-insightly",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/insightly",
+ "icon": "insightly.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/insightly",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Insightly Spec",
+ "type": "object",
+ "required": ["token", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "token": {
+ "type": ["string", "null"],
+ "title": "API Token",
+ "description": "Your Insightly API token.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": ["string", "null"],
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for Insightly in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated. Note that it will be used only for incremental streams.",
+ "examples": ["2021-03-01T00:00:00Z"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "6acf6b55-4f1e-4fca-944e-1a3caef8aba8",
+ "name": "Instagram",
+ "dockerRepository": "airbyte/source-instagram",
+ "dockerImageTag": "1.0.5",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/instagram",
+ "icon": "instagram.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/instagram",
+ "changelogUrl": "https://docs.airbyte.com/integrations/sources/instagram",
+ "connectionSpecification": {
+ "title": "Source Instagram",
+ "type": "object",
+ "properties": {
+ "start_date": {
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for User Insights, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2017-01-25T00:00:00Z"],
+ "type": "string",
+ "format": "date-time"
+ },
+ "access_token": {
+ "title": "Access Token",
+ "description": "The value of the access token generated with instagram_basic, instagram_manage_insights, pages_show_list, pages_read_engagement, Instagram Public Content Access permissions. See the docs for more information",
+ "airbyte_secret": true,
+ "type": "string"
+ }
+ },
+ "required": ["start_date", "access_token"]
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["append"],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [],
+ "oauthFlowInitParameters": [],
+ "oauthFlowOutputParameters": [["access_token"]]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["graph.facebook.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "1901024c-0249-45d0-bcac-31a954652927",
+ "name": "Instatus",
+ "dockerRepository": "airbyte/source-instatus",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/instatus",
+ "icon": "instatus.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/instatus",
+ "connectionSpecification": {
+ "title": "Instatus Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "required": ["api_key"],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "Rest API Key",
+ "airbyte_secret": true,
+ "description": "Instatus REST API key"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "d8313939-3782-41b0-be29-b3ca20d8dd3a",
+ "name": "Intercom",
+ "dockerRepository": "airbyte/source-intercom",
+ "dockerImageTag": "0.2.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/intercom",
+ "icon": "intercom.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/intercom",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Intercom Spec",
+ "type": "object",
+ "required": ["start_date", "access_token"],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": ["2020-11-16T00:00:00Z"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "format": "date-time"
+ },
+ "access_token": {
+ "title": "Access token",
+ "type": "string",
+ "description": "Access token for making authenticated requests. See the Intercom docs for more information.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [],
+ "oauthFlowInitParameters": [],
+ "oauthFlowOutputParameters": [["access_token"]]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["api.intercom.io"]
+ }
+ },
+ {
+ "sourceDefinitionId": "3d15163b-11d8-412f-b808-795c9b2c3a3a",
+ "name": "Intruder",
+ "dockerRepository": "airbyte/source-intruder",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/intruder",
+ "icon": "intruder.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/intruder",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Intruder Spec",
+ "type": "object",
+ "required": ["access_token"],
+ "additionalProperties": true,
+ "properties": {
+ "access_token": {
+ "title": "API Access token",
+ "type": "string",
+ "description": "Your API Access token. See here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "2e875208-0c0b-4ee4-9e92-1cb3156ea799",
+ "name": "Iterable",
+ "dockerRepository": "airbyte/source-iterable",
+ "dockerImageTag": "0.1.27",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/iterable",
+ "icon": "iterable.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/iterable",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Iterable Spec",
+ "type": "object",
+ "required": ["start_date", "api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Iterable API Key. See the docs for more information on how to obtain this key.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for Iterable, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "examples": ["2021-04-01T00:00:00Z"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "order": 1,
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["api.iterable.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "d6f73702-d7a0-4e95-9758-b0fb1af0bfba",
+ "name": "Jenkins",
+ "dockerRepository": "farosai/airbyte-jenkins-source",
+ "dockerImageTag": "0.1.23",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/jenkins",
+ "icon": "jenkins.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.faros.ai",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Jenkins Spec",
+ "type": "object",
+ "required": ["server_url", "user", "token"],
+ "additionalProperties": false,
+ "properties": {
+ "server_url": {
+ "type": "string",
+ "title": "Jenkins Server URL",
+ "examples": ["https://my-jenkins-server.example.com"]
+ },
+ "user": {
+ "type": "string",
+ "description": "Jenkins User"
+ },
+ "token": {
+ "type": "string",
+ "title": "Jenkins Token",
+ "airbyte_secret": true
+ },
+ "depth": {
+ "type": "number",
+ "title": "Depth",
+ "description": "Jenkins JSON API does not support deep scan, it is required to generate a suitable tree for the corresponding depth. Job in some cases have many sub jobs, depth needs to quantify how many sub jobs are showed. If depth is not provided we will try to compute it automatically"
+ },
+ "pageSize": {
+ "type": "integer",
+ "minimum": 1,
+ "default": 10,
+ "title": "Page Size",
+ "description": "Quantity of jobs on a single page fetched from Jenkins"
+ },
+ "last100Builds": {
+ "type": "boolean",
+ "default": false,
+ "title": "Last 100 Builds Only",
+ "description": "Fetch only 100 last builds from Jenkins server"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "68e63de2-bb83-4c7e-93fa-a8a9051e3993",
+ "name": "Jira",
+ "dockerRepository": "airbyte/source-jira",
+ "dockerImageTag": "0.3.7",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/jira",
+ "icon": "jira.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/jira",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Jira Spec",
+ "type": "object",
+ "required": ["api_token", "domain", "email"],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "title": "API Token",
+ "description": "Jira API Token. See the docs for more information on how to generate this key.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "domain": {
+ "type": "string",
+ "title": "Domain",
+ "examples": [
+ ".atlassian.net",
+ ".jira.com",
+ "jira..com"
+ ],
+ "description": "The Domain for your Jira account, e.g. airbyteio.atlassian.net, airbyteio.jira.com, jira.your-domain.com",
+ "order": 1
+ },
+ "email": {
+ "type": "string",
+ "title": "Email",
+ "description": "The user email for your Jira account.",
+ "order": 2
+ },
+ "projects": {
+ "type": "array",
+ "title": "Projects",
+ "items": {
+ "type": "string"
+ },
+ "examples": ["PROJ1", "PROJ2"],
+ "description": "List of Jira project keys to replicate data for.",
+ "order": 3
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date from which you want to replicate data from Jira, use the format YYYY-MM-DDT00:00:00Z. Note that this field only applies to certain streams, and only data generated on or after the start date will be replicated. For more information, refer to the documentation.",
+ "examples": ["2021-03-01T00:00:00Z"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "format": "date-time",
+ "order": 4
+ },
+ "expand_issue_changelog": {
+ "type": "boolean",
+ "title": "Expand Issue Changelog",
+ "description": "Expand the changelog when replicating issues.",
+ "default": false,
+ "order": 5
+ },
+ "render_fields": {
+ "type": "boolean",
+ "title": "Render Issue Fields",
+ "description": "Render issue fields in HTML format in addition to Jira JSON-like format.",
+ "default": false,
+ "order": 6
+ },
+ "enable_experimental_streams": {
+ "type": "boolean",
+ "title": "Enable Experimental Streams",
+ "description": "Allow the use of experimental streams which rely on undocumented Jira API endpoints. See https://docs.airbyte.com/integrations/sources/jira#experimental-tables for more info.",
+ "default": false,
+ "order": 7
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["${domain}"]
+ },
+ "maxSecondsBetweenMessages": 21600
+ },
+ {
+ "sourceDefinitionId": "e300ece7-b073-43a3-852e-8aff36a57f13",
+ "name": "K6 Cloud",
+ "dockerRepository": "airbyte/source-k6-cloud",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/k6-cloud",
+ "icon": "k6cloud.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/k6-cloud",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "K6 Cloud Spec",
+ "type": "object",
+ "required": ["api_token"],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "title": "Api Token",
+ "type": "string",
+ "description": "Your API Token. See here. The key is case sensitive.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "d917a47b-8537-4d0d-8c10-36a9928d4265",
+ "name": "Kafka",
+ "dockerRepository": "airbyte/source-kafka",
+ "dockerImageTag": "0.2.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/kafka",
+ "icon": "kafka.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/kafka",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Kafka Source Spec",
+ "type": "object",
+ "required": ["bootstrap_servers", "subscription", "protocol"],
+ "additionalProperties": true,
+ "properties": {
+ "MessageFormat": {
+ "title": "MessageFormat",
+ "type": "object",
+ "description": "The serialization used based on this ",
+ "oneOf": [
+ {
+ "title": "JSON",
+ "properties": {
+ "deserialization_type": {
+ "type": "string",
+ "const": "JSON"
+ }
+ }
+ },
+ {
+ "title": "AVRO",
+ "properties": {
+ "deserialization_type": {
+ "const": "AVRO"
+ },
+ "deserialization_strategy": {
+ "type": "string",
+ "enum": [
+ "TopicNameStrategy",
+ "RecordNameStrategy",
+ "TopicRecordNameStrategy"
+ ],
+ "default": "TopicNameStrategy"
+ },
+ "schema_registry_url": {
+ "type": "string",
+ "examples": ["http://localhost:8081"]
+ },
+ "schema_registry_username": {
+ "type": "string",
+ "default": ""
+ },
+ "schema_registry_password": {
+ "type": "string",
+ "default": ""
+ }
+ }
+ }
+ ]
+ },
+ "bootstrap_servers": {
+ "title": "Bootstrap Servers",
+ "description": "A list of host/port pairs to use for establishing the initial connection to the Kafka cluster. The client will make use of all servers irrespective of which servers are specified here for bootstrapping—this list only impacts the initial hosts used to discover the full set of servers. This list should be in the form host1:port1,host2:port2,...
. Since these servers are just used for the initial connection to discover the full cluster membership (which may change dynamically), this list need not contain the full set of servers (you may want more than one, though, in case a server is down).",
+ "type": "string",
+ "examples": ["kafka-broker1:9092,kafka-broker2:9092"]
+ },
+ "subscription": {
+ "title": "Subscription Method",
+ "type": "object",
+ "description": "You can choose to manually assign a list of partitions, or subscribe to all topics matching specified pattern to get dynamically assigned partitions.",
+ "oneOf": [
+ {
+ "title": "Manually assign a list of partitions",
+ "required": ["subscription_type", "topic_partitions"],
+ "properties": {
+ "subscription_type": {
+ "description": "Manually assign a list of partitions to this consumer. This interface does not allow for incremental assignment and will replace the previous assignment (if there is one).\nIf the given list of topic partitions is empty, it is treated the same as unsubscribe().",
+ "type": "string",
+ "const": "assign"
+ },
+ "topic_partitions": {
+ "title": "List of topic:partition Pairs",
+ "type": "string",
+ "examples": ["sample.topic:0, sample.topic:1"]
+ }
+ }
+ },
+ {
+ "title": "Subscribe to all topics matching specified pattern",
+ "required": ["subscription_type", "topic_pattern"],
+ "properties": {
+ "subscription_type": {
+ "description": "The Topic pattern from which the records will be read.",
+ "type": "string",
+ "const": "subscribe"
+ },
+ "topic_pattern": {
+ "title": "Topic Pattern",
+ "type": "string",
+ "examples": ["sample.topic"]
+ }
+ }
+ }
+ ]
+ },
+ "test_topic": {
+ "title": "Test Topic",
+ "description": "The Topic to test in case the Airbyte can consume messages.",
+ "type": "string",
+ "examples": ["test.topic"]
+ },
+ "group_id": {
+ "title": "Group ID",
+ "description": "The Group ID is how you distinguish different consumer groups.",
+ "type": "string",
+ "examples": ["group.id"]
+ },
+ "max_poll_records": {
+ "title": "Max Poll Records",
+ "description": "The maximum number of records returned in a single call to poll(). Note, that max_poll_records does not impact the underlying fetching behavior. The consumer will cache the records from each fetch request and returns them incrementally from each poll.",
+ "type": "integer",
+ "default": 500
+ },
+ "polling_time": {
+ "title": "Polling Time",
+ "description": "Amount of time Kafka connector should try to poll for messages.",
+ "type": "integer",
+ "default": 100
+ },
+ "protocol": {
+ "title": "Protocol",
+ "type": "object",
+ "description": "The Protocol used to communicate with brokers.",
+ "oneOf": [
+ {
+ "title": "PLAINTEXT",
+ "required": ["security_protocol"],
+ "properties": {
+ "security_protocol": {
+ "type": "string",
+ "const": "PLAINTEXT"
+ }
+ }
+ },
+ {
+ "title": "SASL PLAINTEXT",
+ "required": [
+ "security_protocol",
+ "sasl_mechanism",
+ "sasl_jaas_config"
+ ],
+ "properties": {
+ "security_protocol": {
+ "type": "string",
+ "const": "SASL_PLAINTEXT"
+ },
+ "sasl_mechanism": {
+ "title": "SASL Mechanism",
+ "description": "The SASL mechanism used for client connections. This may be any mechanism for which a security provider is available.",
+ "type": "string",
+ "const": "PLAIN"
+ },
+ "sasl_jaas_config": {
+ "title": "SASL JAAS Config",
+ "description": "The JAAS login context parameters for SASL connections in the format used by JAAS configuration files.",
+ "type": "string",
+ "default": "",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "SASL SSL",
+ "required": [
+ "security_protocol",
+ "sasl_mechanism",
+ "sasl_jaas_config"
+ ],
+ "properties": {
+ "security_protocol": {
+ "type": "string",
+ "const": "SASL_SSL"
+ },
+ "sasl_mechanism": {
+ "title": "SASL Mechanism",
+ "description": "The SASL mechanism used for client connections. This may be any mechanism for which a security provider is available.",
+ "type": "string",
+ "default": "GSSAPI",
+ "enum": [
+ "GSSAPI",
+ "OAUTHBEARER",
+ "SCRAM-SHA-256",
+ "SCRAM-SHA-512",
+ "PLAIN"
+ ]
+ },
+ "sasl_jaas_config": {
+ "title": "SASL JAAS Config",
+ "description": "The JAAS login context parameters for SASL connections in the format used by JAAS configuration files.",
+ "type": "string",
+ "default": "",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ },
+ "client_id": {
+ "title": "Client ID",
+ "description": "An ID string to pass to the server when making requests. The purpose of this is to be able to track the source of requests beyond just ip/port by allowing a logical application name to be included in server-side request logging.",
+ "type": "string",
+ "examples": ["airbyte-consumer"]
+ },
+ "enable_auto_commit": {
+ "title": "Enable Auto Commit",
+ "description": "If true, the consumer's offset will be periodically committed in the background.",
+ "type": "boolean",
+ "default": true
+ },
+ "auto_commit_interval_ms": {
+ "title": "Auto Commit Interval, ms",
+ "description": "The frequency in milliseconds that the consumer offsets are auto-committed to Kafka if enable.auto.commit is set to true.",
+ "type": "integer",
+ "default": 5000
+ },
+ "client_dns_lookup": {
+ "title": "Client DNS Lookup",
+ "description": "Controls how the client uses DNS lookups. If set to use_all_dns_ips, connect to each returned IP address in sequence until a successful connection is established. After a disconnection, the next IP is used. Once all IPs have been used once, the client resolves the IP(s) from the hostname again. If set to resolve_canonical_bootstrap_servers_only, resolve each bootstrap address into a list of canonical names. After the bootstrap phase, this behaves the same as use_all_dns_ips. If set to default (deprecated), attempt to connect to the first IP address returned by the lookup, even if the lookup returns multiple IP addresses.",
+ "type": "string",
+ "default": "use_all_dns_ips",
+ "enum": [
+ "default",
+ "use_all_dns_ips",
+ "resolve_canonical_bootstrap_servers_only"
+ ]
+ },
+ "retry_backoff_ms": {
+ "title": "Retry Backoff, ms",
+ "description": "The amount of time to wait before attempting to retry a failed request to a given topic partition. This avoids repeatedly sending requests in a tight loop under some failure scenarios.",
+ "type": "integer",
+ "default": 100
+ },
+ "request_timeout_ms": {
+ "title": "Request Timeout, ms",
+ "description": "The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted.",
+ "type": "integer",
+ "default": 30000
+ },
+ "receive_buffer_bytes": {
+ "title": "Receive Buffer, bytes",
+ "description": "The size of the TCP receive buffer (SO_RCVBUF) to use when reading data. If the value is -1, the OS default will be used.",
+ "type": "integer",
+ "default": 32768
+ },
+ "auto_offset_reset": {
+ "title": "Auto Offset Reset",
+ "description": "What to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server - earliest: automatically reset the offset to the earliest offset, latest: automatically reset the offset to the latest offset, none: throw exception to the consumer if no previous offset is found for the consumer's group, anything else: throw exception to the consumer.",
+ "type": "string",
+ "default": "latest",
+ "enum": ["latest", "earliest", "none"]
+ },
+ "repeated_calls": {
+ "title": "Repeated Calls",
+ "description": "The number of repeated calls to poll() if no messages were received.",
+ "type": "integer",
+ "default": 3
+ },
+ "max_records_process": {
+ "title": "Maximum Records",
+ "description": "The Maximum to be processed per execution",
+ "type": "integer",
+ "default": 100000
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "supported_source_sync_modes": ["append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "60c24725-00ae-490c-991d-55b78c3197e0",
+ "name": "Klarna",
+ "dockerRepository": "airbyte/source-klarna",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/klarna",
+ "icon": "klarna.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/klarna",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Klarna Spec",
+ "type": "object",
+ "required": ["region", "playground", "username", "password"],
+ "additionalProperties": true,
+ "properties": {
+ "region": {
+ "title": "Region",
+ "type": "string",
+ "enum": ["eu", "us", "oc"],
+ "description": "Base url region (For playground eu https://docs.klarna.com/klarna-payments/api/payments-api/#tag/API-URLs). Supported 'eu', 'us', 'oc'"
+ },
+ "playground": {
+ "title": "Playground",
+ "type": "boolean",
+ "description": "Propertie defining if connector is used against playground or production environment",
+ "default": false
+ },
+ "username": {
+ "title": "Username",
+ "type": "string",
+ "description": "Consists of your Merchant ID (eid) - a unique number that identifies your e-store, combined with a random string (https://developers.klarna.com/api/#authentication)"
+ },
+ "password": {
+ "title": "Password",
+ "type": "string",
+ "description": "A string which is associated with your Merchant ID and is used to authorize use of Klarna's APIs (https://developers.klarna.com/api/#authentication)",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "95e8cffd-b8c4-4039-968e-d32fb4a69bde",
+ "name": "Klaviyo",
+ "dockerRepository": "airbyte/source-klaviyo",
+ "dockerImageTag": "0.3.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/klaviyo",
+ "icon": "klaviyo.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/klaviyo",
+ "changelogUrl": "https://docs.airbyte.com/integrations/sources/klaviyo",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Klaviyo Spec",
+ "type": "object",
+ "properties": {
+ "api_key": {
+ "title": "Api Key",
+ "description": "Klaviyo API Key. See our docs if you need help finding this key.",
+ "airbyte_secret": true,
+ "type": "string"
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2017-01-25T00:00:00Z"],
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": ["api_key", "start_date"]
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["a.klaviyo.com", "klaviyo.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "547dc08e-ab51-421d-953b-8f3745201a8c",
+ "name": "Kyriba",
+ "dockerRepository": "airbyte/source-kyriba",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/kyriba",
+ "icon": "kyriba.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Kyriba Spec",
+ "type": "object",
+ "required": ["domain", "username", "password", "start_date"],
+ "additionalProperties": false,
+ "properties": {
+ "domain": {
+ "type": "string",
+ "description": "Kyriba domain",
+ "title": "Domain",
+ "examples": ["demo.kyriba.com"],
+ "pattern": "^[a-zA-Z0-9._-]*\\.[a-zA-Z0-9._-]*\\.[a-z]*"
+ },
+ "username": {
+ "type": "string",
+ "description": "Username to be used in basic auth",
+ "title": "Username"
+ },
+ "password": {
+ "type": "string",
+ "description": "Password to be used in basic auth",
+ "title": "Password",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "description": "The date the sync should start from.",
+ "title": "Start Date",
+ "examples": ["2021-01-10"],
+ "pattern": "^\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12][0-9]|3[01])$"
+ },
+ "end_date": {
+ "type": "string",
+ "description": "The date the sync should end. If let empty the sync will run to the current date.",
+ "title": "End Date",
+ "examples": ["2022-03-01"],
+ "pattern": "^(?:(\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12][0-9]|3[01]))|)$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "f96bb511-5e3c-48fc-b408-547953cd81a4",
+ "name": "LaunchDarkly",
+ "dockerRepository": "airbyte/source-launchdarkly",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/launchdarkly",
+ "icon": "launchdarkly.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/launchdarkly",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Launchdarkly Spec",
+ "type": "object",
+ "required": ["access_token"],
+ "additionalProperties": true,
+ "properties": {
+ "access_token": {
+ "title": "Access token",
+ "type": "string",
+ "description": "Your Access token. See here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "789f8e7a-2d28-11ec-8d3d-0242ac130003",
+ "name": "Lemlist",
+ "dockerRepository": "airbyte/source-lemlist",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/lemlist",
+ "icon": "lemlist.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/lemlist",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Lemlist Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": false,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API key",
+ "description": "Lemlist API key.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "3981c999-bd7d-4afc-849b-e53dea90c948",
+ "name": "Lever Hiring",
+ "dockerRepository": "airbyte/source-lever-hiring",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/lever-hiring",
+ "icon": "leverhiring.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/lever-hiring",
+ "changelogUrl": "https://docs.airbyte.com/integrations/sources/lever-hiring#changelog",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Lever Hiring Source Spec",
+ "type": "object",
+ "required": ["start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "order": 3,
+ "title": "Authentication Mechanism",
+ "description": "Choose how to authenticate to Lever Hiring.",
+ "type": "object",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "Authenticate via Lever (OAuth)",
+ "required": ["refresh_token"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Lever Hiring developer application."
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Lever Hiring developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "The token for obtaining new access token.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "Authenticate via Lever (Api Key)",
+ "required": ["api_key"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Api Key",
+ "order": 0
+ },
+ "api_key": {
+ "title": "Api key",
+ "type": "string",
+ "description": "The Api Key of your Lever Hiring account.",
+ "airbyte_secret": true,
+ "order": 1
+ }
+ }
+ }
+ ]
+ },
+ "start_date": {
+ "order": 0,
+ "type": "string",
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. Note that it will be used only in the following incremental streams: comments, commits, and issues.",
+ "examples": ["2021-03-01T00:00:00Z"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
+ },
+ "environment": {
+ "order": 1,
+ "type": "string",
+ "title": "Environment",
+ "description": "The environment in which you'd like to replicate data for Lever. This is used to determine which Lever API endpoint to use.",
+ "default": "Sandbox",
+ "enum": ["Production", "Sandbox"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": ["credentials", "0"],
+ "oauthFlowInitParameters": [["client_id"], ["client_secret"]],
+ "oauthFlowOutputParameters": [["refresh_token"]]
+ }
+ },
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "auth_type"],
+ "predicate_value": "Client",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "properties": {
+ "environment": {
+ "type": "string",
+ "path_in_connector_config": ["environment"]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "refresh_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "137ece28-5434-455c-8f34-69dc3782f451",
+ "name": "LinkedIn Ads",
+ "dockerRepository": "airbyte/source-linkedin-ads",
+ "dockerImageTag": "0.1.15",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/linkedin-ads",
+ "icon": "linkedin.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/linkedin-ads",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Linkedin Ads Spec",
+ "type": "object",
+ "required": ["start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authentication",
+ "type": "object",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": ["client_id", "client_secret", "refresh_token"],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "oAuth2.0"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The client ID of the LinkedIn Ads developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client secret",
+ "description": "The client secret the LinkedIn Ads developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh token",
+ "description": "The key to refresh the expired access token.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "Access token",
+ "type": "object",
+ "required": ["access_token"],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "access_token"
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access token",
+ "description": "The token value generated using the authentication code. See the docs to obtain yours.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "description": "UTC date in the format 2020-09-17. Any data before this date will not be replicated.",
+ "examples": ["2021-05-17"],
+ "format": "date"
+ },
+ "account_ids": {
+ "title": "Account IDs",
+ "type": "array",
+ "description": "Specify the account IDs separated by a space, to pull the data from. Leave empty, if you want to pull the data from all associated accounts. See the LinkedIn Ads docs for more info.",
+ "items": {
+ "type": "integer"
+ },
+ "default": []
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": ["credentials", "0"],
+ "oauthFlowInitParameters": [["client_id"], ["client_secret"]],
+ "oauthFlowOutputParameters": [["refresh_token"]]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["api.linkedin.com"]
+ },
+ "maxSecondsBetweenMessages": 21600
+ },
+ {
+ "sourceDefinitionId": "af54297c-e8f8-4d63-a00d-a94695acc9d3",
+ "name": "LinkedIn Pages",
+ "dockerRepository": "airbyte/source-linkedin-pages",
+ "dockerImageTag": "1.0.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/linkedin-pages",
+ "icon": "linkedin.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/linkedin-pages/",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Linkedin Pages Spec",
+ "type": "object",
+ "required": ["org_id"],
+ "additionalProperties": true,
+ "properties": {
+ "org_id": {
+ "title": "Organization ID",
+ "type": "string",
+ "airbyte_secret": true,
+ "description": "Specify the Organization ID",
+ "examples": ["123456789"]
+ },
+ "credentials": {
+ "title": "Authentication",
+ "type": "object",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": ["client_id", "client_secret", "refresh_token"],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "oAuth2.0"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The client ID of the LinkedIn developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client secret",
+ "description": "The client secret of the LinkedIn developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh token",
+ "description": "The token value generated using the LinkedIn Developers OAuth Token Tools. See the docs to obtain yours.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "Access token",
+ "type": "object",
+ "required": ["access_token"],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "access_token"
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access token",
+ "description": "The token value generated using the LinkedIn Developers OAuth Token Tools. See the docs to obtain yours.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "7b86879e-26c5-4ef6-a5ce-2be5c7b46d1e",
+ "name": "Linnworks",
+ "dockerRepository": "airbyte/source-linnworks",
+ "dockerImageTag": "0.1.5",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/linnworks",
+ "icon": "linnworks.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/linnworks",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Linnworks Spec",
+ "type": "object",
+ "required": [
+ "application_id",
+ "application_secret",
+ "token",
+ "start_date"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "application_id": {
+ "title": "Application ID.",
+ "description": "Linnworks Application ID",
+ "type": "string"
+ },
+ "application_secret": {
+ "title": "Application Secret",
+ "description": "Linnworks Application Secret",
+ "type": "string",
+ "airbyte_secret": true
+ },
+ "token": {
+ "title": "API Token",
+ "type": "string"
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "45e0b135-615c-40ac-b38e-e65b0944197f",
+ "name": "Lokalise",
+ "dockerRepository": "airbyte/source-lokalise",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/lokalise",
+ "icon": "lokalise.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/lokalise",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Lokalise Spec",
+ "type": "object",
+ "required": ["api_key", "project_id"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Lokalise API Key with read-access. Available at Profile settings > API tokens. See here.",
+ "airbyte_secret": true
+ },
+ "project_id": {
+ "title": "Project Id",
+ "type": "string",
+ "description": "Lokalise project ID. Available at Project Settings > General."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "00405b19-9768-4e0c-b1ae-9fc2ee2b2a8c",
+ "name": "Looker",
+ "dockerRepository": "airbyte/source-looker",
+ "dockerImageTag": "0.2.8",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/looker",
+ "icon": "looker.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/looker",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Looker Spec",
+ "type": "object",
+ "required": ["domain", "client_id", "client_secret"],
+ "additionalProperties": true,
+ "properties": {
+ "domain": {
+ "type": "string",
+ "title": "Domain",
+ "examples": [
+ "domainname.looker.com",
+ "looker.clientname.com",
+ "123.123.124.123:8000"
+ ],
+ "description": "Domain for your Looker account, e.g. airbyte.cloud.looker.com,looker.[clientname].com,IP address"
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID is first part of an API3 key that is specific to each Looker user. See the docs for more information on how to generate this key."
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret is second part of an API3 key.",
+ "airbyte_secret": true
+ },
+ "run_look_ids": {
+ "title": "Look IDs to Run",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "^[0-9]*$"
+ },
+ "description": "The IDs of any Looks to run"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "b03a9f3e-22a5-11eb-adc1-0242ac120002",
+ "name": "Mailchimp",
+ "dockerRepository": "airbyte/source-mailchimp",
+ "dockerImageTag": "0.4.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailchimp",
+ "icon": "mailchimp.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailchimp",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Mailchimp Spec",
+ "type": "object",
+ "required": [],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "type": "object",
+ "title": "Authentication",
+ "oneOf": [
+ {
+ "title": "OAuth2.0",
+ "type": "object",
+ "required": ["auth_type", "access_token"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "title": "Access Token",
+ "type": "string",
+ "description": "An access token generated using the above client ID and secret.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "API Key",
+ "required": ["auth_type", "apikey"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "apikey",
+ "order": 1
+ },
+ "apikey": {
+ "type": "string",
+ "title": "API Key",
+ "description": "Mailchimp API Key. See the docs for information on how to generate this key.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ },
+ "campaign_id": {
+ "type": "string",
+ "title": "ID of a campaign to sync email activities",
+ "airbyte_hidden": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "auth_type"],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "access_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["*.api.mailchimp.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "56582331-5de2-476b-b913-5798de77bbdf",
+ "name": "Mailjet Mail",
+ "dockerRepository": "airbyte/source-mailjet-mail",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailjet-mail",
+ "icon": "mailjetmail.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailjet-mail",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Mailjet Mail Spec",
+ "type": "object",
+ "required": ["api_key", "api_key_secret"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Your API Key. See here."
+ },
+ "api_key_secret": {
+ "title": "API Secret Key",
+ "type": "string",
+ "description": "Your API Secret Key. See here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "6ec2acea-7fd1-4378-b403-41a666e0c028",
+ "name": "Mailjet SMS",
+ "dockerRepository": "airbyte/source-mailjet-sms",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailjet-sms",
+ "icon": "mailjetsms.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailjet-sms",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Mailjet Sms Spec",
+ "type": "object",
+ "required": ["token"],
+ "additionalProperties": true,
+ "properties": {
+ "token": {
+ "title": "Access Token",
+ "type": "string",
+ "description": "Your access token. See here.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "title": "Start date",
+ "type": "integer",
+ "description": "Retrieve SMS messages created after the specified timestamp. Required format - Unix timestamp.",
+ "pattern": "^[0-9]*$",
+ "examples": [1666261656]
+ },
+ "end_date": {
+ "title": "End date",
+ "type": "integer",
+ "description": "Retrieve SMS messages created before the specified timestamp. Required format - Unix timestamp.",
+ "pattern": "^[0-9]*$",
+ "examples": [1666281656]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "dc3b9003-2432-4e93-a7f4-4620b0f14674",
+ "name": "MailerLite",
+ "dockerRepository": "airbyte/source-mailerlite",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailerlite",
+ "icon": "mailerlite.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailerlite",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Mailerlite Spec",
+ "type": "object",
+ "required": ["api_token"],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "description": "Your API Token. See here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "2707d529-3c04-46eb-9c7e-40d4038df6f7",
+ "name": "MailerSend",
+ "dockerRepository": "airbyte/source-mailersend",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailersend",
+ "icon": "mailersend.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailersend",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Mailersend Spec",
+ "type": "object",
+ "required": ["api_token", "domain_id"],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "description": "Your API Token. See here.",
+ "airbyte_secret": true
+ },
+ "domain_id": {
+ "type": "string",
+ "description": "The domain entity in mailersend",
+ "examples": ["airbyte.com", "linkana.com"]
+ },
+ "start_date": {
+ "type": "number",
+ "description": "Timestamp is assumed to be UTC.",
+ "examples": [123131321]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "5b9cb09e-1003-4f9c-983d-5779d1b2cd51",
+ "name": "Mailgun",
+ "dockerRepository": "airbyte/source-mailgun",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailgun",
+ "icon": "mailgun.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mailgun",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Mailgun Spec",
+ "type": "object",
+ "required": ["private_key"],
+ "additionalProperties": true,
+ "properties": {
+ "private_key": {
+ "type": "string",
+ "airbyte_secret": true,
+ "description": "Primary account API key to access your Mailgun data.",
+ "title": "Private API Key"
+ },
+ "domain_region": {
+ "type": "string",
+ "description": "Domain region code. 'EU' or 'US' are possible values. The default is 'US'.",
+ "title": "Domain Region Code"
+ },
+ "start_date": {
+ "title": "Replication Start Date",
+ "description": "UTC date and time in the format 2020-10-01 00:00:00. Any data before this date will not be replicated. If omitted, defaults to 3 days ago.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$",
+ "examples": ["2020-10-01 00:00:00"],
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "9e0556f4-69df-4522-a3fb-03264d36b348",
+ "name": "Marketo",
+ "dockerRepository": "airbyte/source-marketo",
+ "dockerImageTag": "1.0.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/marketo",
+ "icon": "marketo.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/marketo",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Marketo Spec",
+ "type": "object",
+ "required": [
+ "domain_url",
+ "client_id",
+ "client_secret",
+ "start_date"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "domain_url": {
+ "title": "Domain URL",
+ "type": "string",
+ "order": 3,
+ "description": "Your Marketo Base URL. See the docs for info on how to obtain this.",
+ "examples": ["https://000-AAA-000.mktorest.com"],
+ "airbyte_secret": true
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Marketo developer application. See the docs for info on how to obtain this.",
+ "order": 0,
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Marketo developer application. See the docs for info on how to obtain this.",
+ "order": 1,
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "order": 2,
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": ["2020-09-25T00:00:00Z"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["*.mktorest.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "c7cb421b-942e-4468-99ee-e369bcabaec5",
+ "name": "Metabase",
+ "dockerRepository": "airbyte/source-metabase",
+ "dockerImageTag": "0.3.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/metabase",
+ "icon": "metabase.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/metabase",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Metabase Source Spec",
+ "type": "object",
+ "required": ["instance_api_url"],
+ "additionalProperties": true,
+ "properties": {
+ "instance_api_url": {
+ "type": "string",
+ "title": "Metabase Instance API URL",
+ "description": "URL to your metabase instance API",
+ "examples": ["https://localhost:3000/api/"],
+ "pattern": "^https://",
+ "order": 0
+ },
+ "username": {
+ "type": "string",
+ "order": 1
+ },
+ "password": {
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "session_token": {
+ "type": "string",
+ "description": "To generate your session token, you need to run the following command: ``` curl -X POST \\\n -H \"Content-Type: application/json\" \\\n -d '{\"username\": \"person@metabase.com\", \"password\": \"fakepassword\"}' \\\n http://localhost:3000/api/session\n``` Then copy the value of the `id` field returned by a successful call to that API.\nNote that by default, sessions are good for 14 days and needs to be regenerated.",
+ "airbyte_secret": true,
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta"
+ },
+ {
+ "sourceDefinitionId": "b5ea17b1-f170-46dc-bc31-cc744ca984c1",
+ "name": "Microsoft SQL Server (MSSQL)",
+ "dockerRepository": "airbyte/source-mssql",
+ "dockerImageTag": "1.0.14",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mssql",
+ "icon": "mssql.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/mssql",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "MSSQL Source Spec",
+ "type": "object",
+ "required": ["host", "port", "database", "username"],
+ "properties": {
+ "host": {
+ "description": "The hostname of the database.",
+ "title": "Host",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "description": "The port of the database.",
+ "title": "Port",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "examples": ["1433"],
+ "order": 1
+ },
+ "database": {
+ "description": "The name of the database.",
+ "title": "Database",
+ "type": "string",
+ "examples": ["master"],
+ "order": 2
+ },
+ "schemas": {
+ "title": "Schemas",
+ "description": "The list of schemas to sync from. Defaults to user. Case sensitive.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 0,
+ "uniqueItems": true,
+ "default": ["dbo"],
+ "order": 3
+ },
+ "username": {
+ "description": "The username which is used to access the database.",
+ "title": "Username",
+ "type": "string",
+ "order": 4
+ },
+ "password": {
+ "description": "The password associated with the username.",
+ "title": "Password",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 5
+ },
+ "jdbc_url_params": {
+ "title": "JDBC URL Params",
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "type": "string",
+ "order": 6
+ },
+ "ssl_method": {
+ "title": "SSL Method",
+ "type": "object",
+ "description": "The encryption method which is used when communicating with the database.",
+ "order": 7,
+ "oneOf": [
+ {
+ "title": "Unencrypted",
+ "description": "Data transfer will not be encrypted.",
+ "required": ["ssl_method"],
+ "properties": {
+ "ssl_method": {
+ "type": "string",
+ "const": "unencrypted"
+ }
+ }
+ },
+ {
+ "title": "Encrypted (trust server certificate)",
+ "description": "Use the certificate provided by the server without verification. (For testing purposes only!)",
+ "required": ["ssl_method"],
+ "properties": {
+ "ssl_method": {
+ "type": "string",
+ "const": "encrypted_trust_server_certificate"
+ }
+ }
+ },
+ {
+ "title": "Encrypted (verify certificate)",
+ "description": "Verify and use the certificate provided by the server.",
+ "required": [
+ "ssl_method",
+ "trustStoreName",
+ "trustStorePassword"
+ ],
+ "properties": {
+ "ssl_method": {
+ "type": "string",
+ "const": "encrypted_verify_certificate"
+ },
+ "hostNameInCertificate": {
+ "title": "Host Name In Certificate",
+ "type": "string",
+ "description": "Specifies the host name of the server. The value of this property must match the subject property of the certificate.",
+ "order": 7
+ }
+ }
+ }
+ ]
+ },
+ "replication_method": {
+ "type": "object",
+ "title": "Replication Method",
+ "description": "The replication method used for extracting data from the database. STANDARD replication requires no setup on the DB side but will not be able to represent deletions incrementally. CDC uses {TBC} to detect inserts, updates, and deletes. This needs to be configured on the source database itself.",
+ "default": "STANDARD",
+ "order": 8,
+ "oneOf": [
+ {
+ "title": "Standard",
+ "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.",
+ "required": ["method"],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "STANDARD",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "Logical Replication (CDC)",
+ "description": "CDC uses {TBC} to detect inserts, updates, and deletes. This needs to be configured on the source database itself.",
+ "required": ["method"],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "CDC",
+ "order": 0
+ },
+ "data_to_sync": {
+ "title": "Data to Sync",
+ "type": "string",
+ "default": "Existing and New",
+ "enum": ["Existing and New", "New Changes Only"],
+ "description": "What data should be synced under the CDC. \"Existing and New\" will read existing data as a snapshot, and sync new changes through CDC. \"New Changes Only\" will skip the initial snapshot, and only sync new changes through CDC.",
+ "order": 1
+ },
+ "snapshot_isolation": {
+ "title": "Initial Snapshot Isolation Level",
+ "type": "string",
+ "default": "Snapshot",
+ "enum": ["Snapshot", "Read Committed"],
+ "description": "Existing data in the database are synced through an initial snapshot. This parameter controls the isolation level that will be used during the initial snapshotting. If you choose the \"Snapshot\" level, you must enable the snapshot isolation mode on the database.",
+ "order": 2
+ },
+ "initial_waiting_seconds": {
+ "type": "integer",
+ "title": "Initial Waiting Time in Seconds (Advanced)",
+ "description": "The amount of time the connector will wait when it launches to determine if there is new data to sync or not. Defaults to 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about initial waiting time.",
+ "default": 300,
+ "min": 120,
+ "max": 1200,
+ "order": 3
+ }
+ }
+ }
+ ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [
+ {
+ "title": "No Tunnel",
+ "required": ["tunnel_method"],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "SSH Key Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "ssh_key"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Password Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "tunnel_user_password"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": ["${host}", "${tunnel_method.tunnel_host}"]
+ }
+ },
+ {
+ "sourceDefinitionId": "eaf50f04-21dd-4620-913b-2a83f5635227",
+ "name": "Microsoft teams",
+ "dockerRepository": "airbyte/source-microsoft-teams",
+ "dockerImageTag": "0.2.5",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/microsoft-teams",
+ "icon": "microsoft-teams.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/microsoft-teams",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Microsoft Teams Spec",
+ "type": "object",
+ "required": ["period"],
+ "additionalProperties": true,
+ "properties": {
+ "period": {
+ "type": "string",
+ "title": "Period",
+ "description": "Specifies the length of time over which the Team Device Report stream is aggregated. The supported values are: D7, D30, D90, and D180.",
+ "examples": ["D7"]
+ },
+ "credentials": {
+ "title": "Authentication mechanism",
+ "description": "Choose how to authenticate to Microsoft",
+ "type": "object",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "Authenticate via Microsoft (OAuth 2.0)",
+ "required": [
+ "tenant_id",
+ "client_id",
+ "client_secret",
+ "refresh_token"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client",
+ "enum": ["Client"],
+ "default": "Client",
+ "order": 0
+ },
+ "tenant_id": {
+ "title": "Directory (tenant) ID",
+ "type": "string",
+ "description": "A globally unique identifier (GUID) that is different than your organization name or domain. Follow these steps to obtain: open one of the Teams where you belong inside the Teams Application -> Click on the … next to the Team title -> Click on Get link to team -> Copy the link to the team and grab the tenant ID form the URL"
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Microsoft Teams developer application."
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Microsoft Teams developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "A Refresh Token to renew the expired Access Token.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "Authenticate via Microsoft",
+ "required": ["tenant_id", "client_id", "client_secret"],
+ "additionalProperties": false,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Token",
+ "enum": ["Token"],
+ "default": "Token",
+ "order": 0
+ },
+ "tenant_id": {
+ "title": "Directory (tenant) ID",
+ "type": "string",
+ "description": "A globally unique identifier (GUID) that is different than your organization name or domain. Follow these steps to obtain: open one of the Teams where you belong inside the Teams Application -> Click on the … next to the Team title -> Click on Get link to team -> Copy the link to the team and grab the tenant ID form the URL"
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Microsoft Teams developer application."
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Microsoft Teams developer application.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "auth_type"],
+ "predicate_value": "Client",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "tenant_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "tenant_id"]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "refresh_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "9220e3de-3b60-4bb2-a46f-046d59ea235a",
+ "name": "Microsoft Dataverse",
+ "dockerRepository": "airbyte/source-microsoft-dataverse",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/microsoft-dataverse",
+ "icon": "microsoftdataverse.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/microsoft-dataverse",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Microsoft Dataverse Spec",
+ "type": "object",
+ "required": ["url", "tenant_id", "client_id", "client_secret_value"],
+ "additionalProperties": true,
+ "properties": {
+ "url": {
+ "type": "string",
+ "description": "URL to Microsoft Dataverse API",
+ "title": "URL",
+ "examples": ["https://.crm.dynamics.com"],
+ "order": 0
+ },
+ "tenant_id": {
+ "type": "string",
+ "description": "Tenant Id of your Microsoft Dataverse Instance",
+ "title": "Tenant Id",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "client_id": {
+ "type": "string",
+ "description": "App Registration Client Id",
+ "title": "Client Id",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "client_secret_value": {
+ "type": "string",
+ "description": "App Registration Client Secret",
+ "title": "Client Secret",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "odata_maxpagesize": {
+ "type": "integer",
+ "description": "Max number of results per page. Default=5000",
+ "title": "Max page size",
+ "default": 5000,
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "12928b32-bf0a-4f1e-964f-07e12e37153a",
+ "name": "Mixpanel",
+ "dockerRepository": "airbyte/source-mixpanel",
+ "dockerImageTag": "0.1.31",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mixpanel",
+ "icon": "mixpanel.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mixpanel",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Mixpanel Spec",
+ "type": "object",
+ "properties": {
+ "credentials": {
+ "title": "Authentication *",
+ "description": "Choose how to authenticate to Mixpanel",
+ "type": "object",
+ "order": 0,
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "Service Account",
+ "required": ["username", "secret"],
+ "properties": {
+ "option_title": {
+ "type": "string",
+ "const": "Service Account",
+ "order": 0
+ },
+ "username": {
+ "order": 1,
+ "title": "Username",
+ "type": "string",
+ "description": "Mixpanel Service Account Username. See the docs for more information on how to obtain this."
+ },
+ "secret": {
+ "order": 2,
+ "title": "Secret",
+ "type": "string",
+ "description": "Mixpanel Service Account Secret. See the docs for more information on how to obtain this.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "Project Secret",
+ "required": ["api_secret"],
+ "properties": {
+ "option_title": {
+ "type": "string",
+ "const": "Project Secret",
+ "order": 0
+ },
+ "api_secret": {
+ "order": 1,
+ "title": "Project Secret",
+ "type": "string",
+ "description": "Mixpanel project secret. See the docs for more information on how to obtain this.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ },
+ "project_id": {
+ "order": 1,
+ "title": "Project ID",
+ "description": "Your project ID number. See the docs for more information on how to obtain this.",
+ "type": "integer"
+ },
+ "attribution_window": {
+ "order": 2,
+ "title": "Attribution Window",
+ "type": "integer",
+ "description": " A period of time for attributing results to ads and the lookback period after those actions occur during which ad results are counted. Default attribution window is 5 days.",
+ "default": 5
+ },
+ "project_timezone": {
+ "order": 3,
+ "title": "Project Timezone",
+ "type": "string",
+ "description": "Time zone in which integer date times are stored. The project timezone may be found in the project settings in the Mixpanel console.",
+ "default": "US/Pacific",
+ "examples": ["US/Pacific", "UTC"]
+ },
+ "select_properties_by_default": {
+ "order": 4,
+ "title": "Select Properties By Default",
+ "type": "boolean",
+ "description": "Setting this config parameter to TRUE ensures that new properties on events and engage records are captured. Otherwise new properties will be ignored.",
+ "default": true
+ },
+ "start_date": {
+ "order": 5,
+ "title": "Start Date",
+ "type": "string",
+ "description": "The date in the format YYYY-MM-DD. Any data before this date will not be replicated. If this option is not set, the connector will replicate data from up to one year ago by default.",
+ "examples": ["2021-11-16"],
+ "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}Z)?$",
+ "format": "date-time"
+ },
+ "end_date": {
+ "order": 6,
+ "title": "End Date",
+ "type": "string",
+ "description": "The date in the format YYYY-MM-DD. Any data after this date will not be replicated. Left empty to always sync to most recent date",
+ "examples": ["2021-11-16"],
+ "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}Z)?$",
+ "format": "date-time"
+ },
+ "region": {
+ "order": 7,
+ "title": "Region",
+ "description": "The region of mixpanel domain instance either US or EU.",
+ "type": "string",
+ "enum": ["US", "EU"],
+ "default": "US"
+ },
+ "date_window_size": {
+ "order": 8,
+ "title": "Date slicing window",
+ "description": "Defines window size in days, that used to slice through data. You can reduce it, if amount of data in each window is too big for your environment.",
+ "type": "integer",
+ "minimum": 1,
+ "default": 30
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["mixpanel.com", "eu.mixpanel.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "80a54ea2-9959-4040-aac1-eee42423ec9b",
+ "name": "Monday",
+ "dockerRepository": "airbyte/source-monday",
+ "dockerImageTag": "0.2.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/monday",
+ "icon": "monday.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/monday",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Monday Spec",
+ "type": "object",
+ "required": [],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [
+ "auth_type",
+ "client_id",
+ "client_secret",
+ "access_token"
+ ],
+ "properties": {
+ "subdomain": {
+ "type": "string",
+ "title": "Subdomain/Slug",
+ "description": "Slug/subdomain of the account, or the first part of the URL that comes before .monday.com",
+ "default": "",
+ "order": 0
+ },
+ "auth_type": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 1
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "API Token",
+ "required": ["auth_type", "api_token"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "api_token",
+ "order": 0
+ },
+ "api_token": {
+ "type": "string",
+ "title": "Personal API Token",
+ "description": "API Token for making authenticated requests.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "auth_type"],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "subdomain": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "subdomain"]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "access_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["api.monday.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "b2e713cd-cc36-4c0a-b5bd-b47cb8a0561e",
+ "name": "MongoDb",
+ "dockerRepository": "airbyte/source-mongodb-v2",
+ "dockerImageTag": "0.1.19",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mongodb-v2",
+ "icon": "mongodb.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mongodb-v2",
+ "changelogUrl": "https://docs.airbyte.com/integrations/sources/mongodb-v2",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "MongoDb Source Spec",
+ "type": "object",
+ "required": ["database"],
+ "additionalProperties": true,
+ "properties": {
+ "instance_type": {
+ "type": "object",
+ "title": "MongoDb Instance Type",
+ "description": "The MongoDb instance to connect to. For MongoDB Atlas and Replica Set TLS connection is used by default.",
+ "order": 0,
+ "oneOf": [
+ {
+ "title": "Standalone MongoDb Instance",
+ "required": ["instance", "host", "port"],
+ "properties": {
+ "instance": {
+ "type": "string",
+ "enum": ["standalone"],
+ "default": "standalone"
+ },
+ "host": {
+ "title": "Host",
+ "type": "string",
+ "description": "The host name of the Mongo database.",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "type": "integer",
+ "description": "The port of the Mongo database.",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 27017,
+ "examples": ["27017"],
+ "order": 1
+ },
+ "tls": {
+ "title": "TLS Connection",
+ "type": "boolean",
+ "description": "Indicates whether TLS encryption protocol will be used to connect to MongoDB. It is recommended to use TLS connection if possible. For more information see documentation.",
+ "default": false,
+ "order": 2
+ }
+ }
+ },
+ {
+ "title": "Replica Set",
+ "required": ["instance", "server_addresses"],
+ "properties": {
+ "instance": {
+ "type": "string",
+ "enum": ["replica"],
+ "default": "replica"
+ },
+ "server_addresses": {
+ "title": "Server Addresses",
+ "type": "string",
+ "description": "The members of a replica set. Please specify `host`:`port` of each member separated by comma.",
+ "examples": ["host1:27017,host2:27017,host3:27017"],
+ "order": 0
+ },
+ "replica_set": {
+ "title": "Replica Set",
+ "type": "string",
+ "description": "A replica set in MongoDB is a group of mongod processes that maintain the same data set.",
+ "order": 1
+ }
+ }
+ },
+ {
+ "title": "MongoDB Atlas",
+ "additionalProperties": false,
+ "required": ["instance", "cluster_url"],
+ "properties": {
+ "instance": {
+ "type": "string",
+ "enum": ["atlas"],
+ "default": "atlas"
+ },
+ "cluster_url": {
+ "title": "Cluster URL",
+ "type": "string",
+ "description": "The URL of a cluster to connect to.",
+ "order": 0
+ }
+ }
+ }
+ ]
+ },
+ "database": {
+ "title": "Database Name",
+ "type": "string",
+ "description": "The database you want to replicate.",
+ "order": 1
+ },
+ "user": {
+ "title": "User",
+ "type": "string",
+ "description": "The username which is used to access the database.",
+ "order": 2
+ },
+ "password": {
+ "title": "Password",
+ "type": "string",
+ "description": "The password associated with this username.",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "auth_source": {
+ "title": "Authentication Source",
+ "type": "string",
+ "description": "The authentication source where the user information is stored.",
+ "default": "admin",
+ "examples": ["admin"],
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "722ba4bf-06ec-45a4-8dd5-72e4a5cf3903",
+ "name": "My Hours",
+ "dockerRepository": "airbyte/source-my-hours",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/my-hours",
+ "icon": "my-hours.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/my-hours",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "My Hours Spec",
+ "type": "object",
+ "required": ["email", "password", "start_date"],
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "title": "Email",
+ "type": "string",
+ "description": "Your My Hours username",
+ "example": "john@doe.com"
+ },
+ "password": {
+ "title": "Password",
+ "type": "string",
+ "description": "The password associated to the username",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "Start date for collecting time logs",
+ "examples": ["%Y-%m-%d", "2016-01-01"],
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
+ },
+ "logs_batch_size": {
+ "title": "Time logs batch size",
+ "description": "Pagination size used for retrieving logs in days",
+ "examples": [30],
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 365,
+ "default": 30
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "435bb9a5-7887-4809-aa58-28c27df0d7ad",
+ "name": "MySQL",
+ "dockerRepository": "airbyte/source-mysql",
+ "dockerImageTag": "2.0.18",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mysql",
+ "icon": "mysql.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/mysql",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "MySql Source Spec",
+ "type": "object",
+ "required": [
+ "host",
+ "port",
+ "database",
+ "username",
+ "replication_method"
+ ],
+ "properties": {
+ "host": {
+ "description": "The host name of the database.",
+ "title": "Host",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "description": "The port to connect to.",
+ "title": "Port",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 3306,
+ "examples": ["3306"],
+ "order": 1
+ },
+ "database": {
+ "description": "The database name.",
+ "title": "Database",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "description": "The username which is used to access the database.",
+ "title": "Username",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "description": "The password associated with the username.",
+ "title": "Password",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
+ "title": "JDBC URL Parameters (Advanced)",
+ "type": "string",
+ "order": 5
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL.",
+ "type": "boolean",
+ "default": true,
+ "order": 6
+ },
+ "ssl_mode": {
+ "title": "SSL modes",
+ "description": "SSL connection modes. Read more in the docs.",
+ "type": "object",
+ "order": 7,
+ "oneOf": [
+ {
+ "title": "preferred",
+ "description": "Automatically attempt SSL connection. If the MySQL server does not support SSL, continue with a regular connection.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "preferred",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "required",
+ "description": "Always connect with SSL. If the MySQL server doesn’t support SSL, the connection will not be established. Certificate Authority (CA) and Hostname are not verified.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "required",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "Verify CA",
+ "description": "Always connect with SSL. Verifies CA, but allows connection even if Hostname does not match.",
+ "required": ["mode", "ca_certificate"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify_ca",
+ "order": 0
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ },
+ "client_certificate": {
+ "type": "string",
+ "title": "Client certificate",
+ "description": "Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 2,
+ "always_show": true
+ },
+ "client_key": {
+ "type": "string",
+ "title": "Client key",
+ "description": "Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 3,
+ "always_show": true
+ },
+ "client_key_password": {
+ "type": "string",
+ "title": "Client key password",
+ "description": "Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Verify Identity",
+ "description": "Always connect with SSL. Verify both CA and Hostname.",
+ "required": ["mode", "ca_certificate"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify_identity",
+ "order": 0
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ },
+ "client_certificate": {
+ "type": "string",
+ "title": "Client certificate",
+ "description": "Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 2,
+ "always_show": true
+ },
+ "client_key": {
+ "type": "string",
+ "title": "Client key",
+ "description": "Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 3,
+ "always_show": true
+ },
+ "client_key_password": {
+ "type": "string",
+ "title": "Client key password",
+ "description": "Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ },
+ "replication_method": {
+ "type": "object",
+ "title": "Replication Method",
+ "description": "Replication method to use for extracting data from the database.",
+ "order": 8,
+ "oneOf": [
+ {
+ "title": "Standard",
+ "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.",
+ "required": ["method"],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "STANDARD",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "Logical Replication (CDC)",
+ "description": "CDC uses the Binlog to detect inserts, updates, and deletes. This needs to be configured on the source database itself.",
+ "required": ["method"],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "CDC",
+ "order": 0
+ },
+ "initial_waiting_seconds": {
+ "type": "integer",
+ "title": "Initial Waiting Time in Seconds (Advanced)",
+ "description": "The amount of time the connector will wait when it launches to determine if there is new data to sync or not. Defaults to 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about initial waiting time.",
+ "default": 300,
+ "min": 120,
+ "max": 1200,
+ "order": 1
+ },
+ "server_time_zone": {
+ "type": "string",
+ "title": "Configured server timezone for the MySQL source (Advanced)",
+ "description": "Enter the configured MySQL server timezone. This should only be done if the configured timezone in your MySQL instance does not conform to IANNA standard.",
+ "order": 2
+ }
+ }
+ }
+ ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [
+ {
+ "title": "No Tunnel",
+ "required": ["tunnel_method"],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "SSH Key Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "ssh_key"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Password Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "tunnel_user_password"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["${host}", "${tunnel_method.tunnel_host}"]
+ }
+ },
+ {
+ "sourceDefinitionId": "4a961f66-5e99-4430-8320-a73afe52f7a2",
+ "name": "n8n",
+ "dockerRepository": "airbyte/source-n8n",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/n8n",
+ "icon": "n8n.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/n8n",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "N8n Spec",
+ "type": "object",
+ "required": ["host", "api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "host": {
+ "type": "string",
+ "description": "Hostname of the n8n instance"
+ },
+ "api_key": {
+ "type": "string",
+ "description": "Your API KEY. See here"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "1a8667d7-7978-43cd-ba4d-d32cbd478971",
+ "name": "NASA",
+ "dockerRepository": "airbyte/source-nasa",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/nasa",
+ "icon": "nasa.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/nasa-apod",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "NASA spec",
+ "type": "object",
+ "required": ["api_key"],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API access key used to retrieve data from the NASA APOD API.",
+ "airbyte_secret": true
+ },
+ "concept_tags": {
+ "type": "boolean",
+ "default": false,
+ "description": "Indicates whether concept tags should be returned with the rest of the response. The concept tags are not necessarily included in the explanation, but rather derived from common search tags that are associated with the description text. (Better than just pure text search.) Defaults to False."
+ },
+ "count": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 100,
+ "description": "A positive integer, no greater than 100. If this is specified then `count` randomly chosen images will be returned in a JSON array. Cannot be used in conjunction with `date` or `start_date` and `end_date`."
+ },
+ "start_date": {
+ "type": "string",
+ "description": "Indicates the start of a date range. All images in the range from `start_date` to `end_date` will be returned in a JSON array. Must be after 1995-06-16, the first day an APOD picture was posted. There are no images for tomorrow available through this API.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": ["2022-10-20"],
+ "format": "date"
+ },
+ "end_date": {
+ "type": "string",
+ "description": "Indicates that end of a date range. If `start_date` is specified without an `end_date` then `end_date` defaults to the current date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": ["2022-10-20"],
+ "format": "date"
+ },
+ "thumbs": {
+ "type": "boolean",
+ "default": false,
+ "description": "Indicates whether the API should return a thumbnail image URL for video files. If set to True, the API returns URL of video thumbnail. If an APOD is not a video, this parameter is ignored."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": ["api.nasa.gov"]
+ }
+ },
+ {
+ "sourceDefinitionId": "4f2f093d-ce44-4121-8118-9d13b7bfccd0",
+ "name": "Netsuite",
+ "dockerRepository": "airbyte/source-netsuite",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/netsuite",
+ "icon": "netsuite.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Netsuite Spec",
+ "type": "object",
+ "required": [
+ "realm",
+ "consumer_key",
+ "consumer_secret",
+ "token_key",
+ "token_secret",
+ "start_datetime"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "realm": {
+ "type": "string",
+ "title": "Realm (Account Id)",
+ "description": "Netsuite realm e.g. 2344535, as for `production` or 2344535_SB1, as for the `sandbox`",
+ "order": 0,
+ "airbyte_secret": true
+ },
+ "consumer_key": {
+ "type": "string",
+ "title": "Consumer Key",
+ "description": "Consumer key associated with your integration",
+ "order": 1,
+ "airbyte_secret": true
+ },
+ "consumer_secret": {
+ "type": "string",
+ "title": "Consumer Secret",
+ "description": "Consumer secret associated with your integration",
+ "order": 2,
+ "airbyte_secret": true
+ },
+ "token_key": {
+ "type": "string",
+ "title": "Token Key (Token Id)",
+ "description": "Access token key",
+ "order": 3,
+ "airbyte_secret": true
+ },
+ "token_secret": {
+ "type": "string",
+ "title": "Token Secret",
+ "description": "Access token secret",
+ "order": 4,
+ "airbyte_secret": true
+ },
+ "object_types": {
+ "type": "array",
+ "title": "Object Types",
+ "items": {
+ "type": "string"
+ },
+ "description": "The API names of the Netsuite objects you want to sync. Setting this speeds up the connection setup process by limiting the number of schemas that need to be retrieved from Netsuite.",
+ "order": 5,
+ "examples": ["customer", "salesorder", "etc"],
+ "default": []
+ },
+ "start_datetime": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "Starting point for your data replication, in format of \"YYYY-MM-DDTHH:mm:ssZ\"",
+ "order": 6,
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2017-01-25T00:00:00Z"]
+ },
+ "window_in_days": {
+ "type": "integer",
+ "title": "Window in Days",
+ "description": "The amount of days used to query the data with date chunks. Set smaller value, if you have lots of data.",
+ "order": 7,
+ "default": 30
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "df38991e-f35b-4af2-996d-36817f614587",
+ "name": "News API",
+ "dockerRepository": "airbyte/source-news-api",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/news-api",
+ "icon": "newsapi.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/news-api",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "News Api Spec",
+ "type": "object",
+ "required": ["api_key", "country", "category", "sort_by"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "search_query": {
+ "type": "string",
+ "description": "Search query. See https://newsapi.org/docs/endpoints/everything for \ninformation.\n",
+ "examples": [
+ "+bitcoin OR +crypto",
+ "sunak AND (truss OR johnson)"
+ ],
+ "order": 1
+ },
+ "search_in": {
+ "type": "array",
+ "description": "Where to apply search query. Possible values are: title, description,\ncontent.\n",
+ "items": {
+ "type": "string",
+ "enum": ["title", "description", "content"]
+ },
+ "order": 2
+ },
+ "sources": {
+ "type": "array",
+ "description": "Identifiers (maximum 20) for the news sources or blogs you want\nheadlines from. Use the `/sources` endpoint to locate these\nprogrammatically or look at the sources index:\nhttps://newsapi.com/sources. Will override both country and category.\n",
+ "items": {
+ "type": "string"
+ },
+ "order": 3
+ },
+ "domains": {
+ "type": "array",
+ "description": "A comma-seperated string of domains (eg bbc.co.uk, techcrunch.com,\nengadget.com) to restrict the search to.\n",
+ "items": {
+ "type": "string"
+ },
+ "order": 4
+ },
+ "exclude_domains": {
+ "type": "array",
+ "description": "A comma-seperated string of domains (eg bbc.co.uk, techcrunch.com,\nengadget.com) to remove from the results.\n",
+ "items": {
+ "type": "string"
+ },
+ "order": 5
+ },
+ "start_date": {
+ "type": "string",
+ "description": "A date and optional time for the oldest article allowed. This should\nbe in ISO 8601 format (e.g. 2021-01-01 or 2021-01-01T12:00:00).\n",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2})?$",
+ "order": 6
+ },
+ "end_date": {
+ "type": "string",
+ "description": "A date and optional time for the newest article allowed. This should\nbe in ISO 8601 format (e.g. 2021-01-01 or 2021-01-01T12:00:00).\n",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2})?$",
+ "order": 7
+ },
+ "language": {
+ "type": "string",
+ "description": "The 2-letter ISO-639-1 code of the language you want to get headlines\nfor. Possible options: ar de en es fr he it nl no pt ru se ud zh.\n",
+ "enum": [
+ "ar",
+ "de",
+ "en",
+ "es",
+ "fr",
+ "he",
+ "it",
+ "nl",
+ false,
+ "pt",
+ "ru",
+ "se",
+ "ud",
+ "zh"
+ ],
+ "order": 8
+ },
+ "country": {
+ "type": "string",
+ "description": "The 2-letter ISO 3166-1 code of the country you want to get headlines\nfor. You can't mix this with the sources parameter.\n",
+ "enum": [
+ "ae",
+ "ar",
+ "at",
+ "au",
+ "be",
+ "bg",
+ "br",
+ "ca",
+ "ch",
+ "cn",
+ "co",
+ "cu",
+ "cz",
+ "de",
+ "eg",
+ "fr",
+ "gb",
+ "gr",
+ "hk",
+ "hu",
+ "id",
+ "ie",
+ "il",
+ "in",
+ "it",
+ "jp",
+ "kr",
+ "lt",
+ "lv",
+ "ma",
+ "mx",
+ "my",
+ "ng",
+ "nl",
+ false,
+ "nz",
+ "ph",
+ "pl",
+ "pt",
+ "ro",
+ "rs",
+ "ru",
+ "sa",
+ "se",
+ "sg",
+ "si",
+ "sk",
+ "th",
+ "tr",
+ "tw",
+ "ua",
+ "us",
+ "ve",
+ "za"
+ ],
+ "default": "us",
+ "order": 9
+ },
+ "category": {
+ "type": "string",
+ "description": "The category you want to get top headlines for.",
+ "enum": [
+ "business",
+ "entertainment",
+ "general",
+ "health",
+ "science",
+ "sports",
+ "technology"
+ ],
+ "default": "business",
+ "order": 10
+ },
+ "sort_by": {
+ "type": "string",
+ "description": "The order to sort the articles in. Possible options: relevancy,\npopularity, publishedAt.\n",
+ "enum": ["relevancy", "popularity", "publishedAt"],
+ "default": "publishedAt",
+ "order": 11
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "60bd11d8-2632-4daa-a688-b47336d32093",
+ "name": "Newsdata",
+ "dockerRepository": "airbyte/source-newsdata",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/newsdata",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/newsdata",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Newsdata Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "OneOf": {
+ "query": {
+ "type": "string",
+ "description": "Keywords or phrases to search for in the news title and content. Advanced Search options:\n - Search `Social`: query = \"social\"\n - Search `Social Pizza`: query = \"social pizza\"\n - Search `Social` but not with `pizza`: query = \"social -pizza\"\n - Search `Social` but not with `pizza` and `wildfire`: query = \"social -pizza -wildfire\"\n - Search `Social` and `pizza`: query = \"social AND pizza\"\n - Search `Social` and `pizza` and `pasta`: query = \"social AND pizza AND pasta\"\n - Search `Social` or `pizza`: query = \"social OR pizza\"\n - Search `Social` or `pizza` but not `pasta`: query = \"social OR pizza -pasta\"\n - Search `Social` or `pizza` or `pasta`: query = \"social OR pizza OR pasta\"\nNote: You can't use AND and OR in the same query.",
+ "order": 1
+ },
+ "query_in_title": {
+ "type": "string",
+ "description": "Same as `query`, but restricting the search to only the news title. It cannot be used along with `query`.",
+ "order": 1
+ }
+ },
+ "domain": {
+ "type": "array",
+ "description": "Domains (maximum 5) to restrict the search to. Use the sources stream to find top sources id.",
+ "maxitems": 5,
+ "items": {
+ "type": "string"
+ },
+ "order": 2
+ },
+ "country": {
+ "type": "array",
+ "description": "2-letter ISO 3166-1 countries (maximum 5) to restrict the search to.",
+ "maxitems": 5,
+ "order": 3,
+ "items": {
+ "type": "string",
+ "enum": [
+ "ar",
+ "au",
+ "at",
+ "bd",
+ "by",
+ "be",
+ "br",
+ "bg",
+ "ca",
+ "cl",
+ "cn",
+ "co",
+ "cr",
+ "cu",
+ "cz",
+ "dk",
+ "do",
+ "ec",
+ "eg",
+ "ee",
+ "et",
+ "fi",
+ "fr",
+ "de",
+ "gr",
+ "hk",
+ "hu",
+ "in",
+ "id",
+ "iq",
+ "ie",
+ "il",
+ "it",
+ "jp",
+ "kz",
+ "kw",
+ "lv",
+ "lb",
+ "lt",
+ "my",
+ "mx",
+ "ma",
+ "mm",
+ "nl",
+ "nz",
+ "ng",
+ "kp",
+ "no",
+ "pk",
+ "pe",
+ "ph",
+ "pl",
+ "pt",
+ "pr",
+ "ro",
+ "ru",
+ "sa",
+ "rs",
+ "sg",
+ "sk",
+ "si",
+ "za",
+ "kr",
+ "es",
+ "se",
+ "ch",
+ "tw",
+ "tz",
+ "th",
+ "tr",
+ "ua",
+ "ae",
+ "gb",
+ "us",
+ "ve",
+ "vi"
+ ]
+ }
+ },
+ "category": {
+ "type": "array",
+ "description": "Categories (maximum 5) to restrict the search to.",
+ "maxitems": 5,
+ "order": 4,
+ "items": {
+ "type": "string",
+ "enum": [
+ "business",
+ "entertainment",
+ "environment",
+ "food",
+ "health",
+ "politics",
+ "science",
+ "sports",
+ "technology",
+ "top",
+ "world"
+ ]
+ }
+ },
+ "language": {
+ "type": "array",
+ "description": "Languages (maximum 5) to restrict the search to.",
+ "maxitems": 5,
+ "order": 5,
+ "items": {
+ "type": "string",
+ "enum": [
+ "be",
+ "am",
+ "ar",
+ "bn",
+ "bs",
+ "bg",
+ "my",
+ "ckb",
+ "zh",
+ "hr",
+ "cs",
+ "da",
+ "nl",
+ "en",
+ "et",
+ "fi",
+ "fr",
+ "de",
+ "el",
+ "he",
+ "hi",
+ "hu",
+ "in",
+ "it",
+ "jp",
+ "ko",
+ "lv",
+ "lt",
+ "ms",
+ "no",
+ "pl",
+ "pt",
+ "ro",
+ "ru",
+ "sr",
+ "sk",
+ "sl",
+ "es",
+ "sw",
+ "sv",
+ "th",
+ "tr",
+ "uk",
+ "ur",
+ "vi"
+ ]
+ }
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "6e00b415-b02e-4160-bf02-58176a0ae687",
+ "name": "Notion",
+ "dockerRepository": "airbyte/source-notion",
+ "dockerImageTag": "1.0.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/notion",
+ "icon": "notion.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/notion",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Notion Source Spec",
+ "type": "object",
+ "required": ["start_date"],
+ "properties": {
+ "start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00.000Z. Any data before this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
+ "examples": ["2020-11-16T00:00:00.000Z"],
+ "type": "string",
+ "format": "date-time"
+ },
+ "credentials": {
+ "title": "Authenticate using",
+ "description": "Pick an authentication method.",
+ "type": "object",
+ "order": 1,
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [
+ "auth_type",
+ "client_id",
+ "client_secret",
+ "access_token"
+ ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "OAuth2.0"
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The ClientID of your Notion integration.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The ClientSecret of your Notion integration.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "title": "Access Token",
+ "type": "string",
+ "description": "Access Token is a token you received by complete the OauthWebFlow of Notion.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "Access Token",
+ "required": ["auth_type", "token"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "token"
+ },
+ "token": {
+ "title": "Access Token",
+ "description": "Notion API access token, see the docs for more information on how to obtain this token.",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": ["credentials", "0"],
+ "oauthFlowInitParameters": [["client_id"], ["client_secret"]],
+ "oauthFlowOutputParameters": [["access_token"]]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["api.notion.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "0fae6a9a-04eb-44d4-96e1-e02d3dbc1d83",
+ "name": "New York Times",
+ "dockerRepository": "airbyte/source-nytimes",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/nytimes",
+ "icon": "nytimes.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/nytimes",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Nytimes Spec",
+ "type": "object",
+ "required": ["api_key", "start_date", "period"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "description": "API Key",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "Start date to begin the article retrieval (format YYYY-MM)",
+ "pattern": "^[0-9]{4}-[0-9]{2}$",
+ "examples": ["2022-08", "1851-01"],
+ "format": "date",
+ "order": 1
+ },
+ "end_date": {
+ "type": "string",
+ "title": "End Date",
+ "description": "End date to stop the article retrieval (format YYYY-MM)",
+ "pattern": "^[0-9]{4}-[0-9]{2}$",
+ "examples": ["2022-08", "1851-01"],
+ "format": "date",
+ "order": 2
+ },
+ "period": {
+ "type": "integer",
+ "title": "Period (used for Most Popular streams)",
+ "description": "Period of time (in days)",
+ "order": 3,
+ "enum": [1, 7, 30]
+ },
+ "share_type": {
+ "type": "string",
+ "title": "Share Type (used for Most Popular Shared stream)",
+ "description": "Share Type",
+ "order": 4,
+ "enum": ["facebook"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "1d4fdb25-64fc-4569-92da-fcdca79a8372",
+ "name": "Okta",
+ "dockerRepository": "airbyte/source-okta",
+ "dockerImageTag": "0.1.14",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/okta",
+ "icon": "okta.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/okta",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Okta Spec",
+ "type": "object",
+ "required": [],
+ "additionalProperties": true,
+ "properties": {
+ "domain": {
+ "type": "string",
+ "title": "Okta domain",
+ "description": "The Okta domain. See the docs for instructions on how to find it.",
+ "airbyte_secret": false
+ },
+ "start_date": {
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format YYYY-MM-DDTHH:MM:SSZ. Any data before this date will not be replicated.",
+ "examples": ["2022-07-22T00:00:00Z"],
+ "title": "Start Date"
+ },
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [
+ "auth_type",
+ "client_id",
+ "client_secret",
+ "refresh_token"
+ ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "Refresh Token to obtain new Access Token, when it's expired.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "API Token",
+ "required": ["auth_type", "api_token"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "api_token",
+ "order": 0
+ },
+ "api_token": {
+ "type": "string",
+ "title": "Personal API Token",
+ "description": "An Okta token. See the docs for instructions on how to generate it.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "e7f0c5e2-4815-48c4-90cf-f47124209835",
+ "name": "Omnisend",
+ "dockerRepository": "airbyte/source-omnisend",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/omnisend",
+ "icon": "omnisend.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/omnisend",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Omnisend Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "bb6afd81-87d5-47e3-97c4-e2c2901b1cf8",
+ "name": "OneSignal",
+ "dockerRepository": "airbyte/source-onesignal",
+ "dockerImageTag": "1.0.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/onesignal",
+ "icon": "onesignal.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/onesignal",
+ "connectionSpecification": {
+ "$schema": "https://json-schema.org/draft-07/schema#",
+ "title": "OneSignal Source Spec",
+ "type": "object",
+ "required": [
+ "user_auth_key",
+ "start_date",
+ "outcome_names",
+ "applications"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "user_auth_key": {
+ "type": "string",
+ "title": "User Auth Key",
+ "description": "OneSignal User Auth Key, see the docs for more information on how to obtain this key.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "applications": {
+ "type": "array",
+ "title": "Applications",
+ "description": "Applications keys, see the docs for more information on how to obtain this data",
+ "items": {
+ "type": "object",
+ "properties": {
+ "app_name": {
+ "type": "string",
+ "title": "OneSignal App Name",
+ "order": 0
+ },
+ "app_id": {
+ "type": "string",
+ "title": "OneSignal App ID",
+ "order": 1,
+ "airbyte_secret": true
+ },
+ "app_api_key": {
+ "type": "string",
+ "title": "REST API Key",
+ "order": 2,
+ "airbyte_secret": true
+ }
+ },
+ "required": ["app_id", "app_api_key"]
+ },
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for OneSignal API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "examples": ["2020-11-16T00:00:00Z"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "format": "date-time",
+ "order": 2
+ },
+ "outcome_names": {
+ "type": "string",
+ "title": "Outcome Names",
+ "description": "Comma-separated list of names and the value (sum/count) for the returned outcome data. See the docs for more details",
+ "examples": [
+ "os__session_duration.count,os__click.count,CustomOutcomeName.sum"
+ ],
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "77d5ca6b-d345-4dce-ba1e-1935a75778b8",
+ "name": "Open Exchange Rates",
+ "dockerRepository": "airbyte/source-open-exchange-rates",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/open-exchange-rates",
+ "icon": "airbyte.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/openexchangesrates",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Open Exchange Rates Spec",
+ "type": "object",
+ "required": ["app_id", "start_date"],
+ "properties": {
+ "app_id": {
+ "type": "string",
+ "description": "App ID provided by Open Exchange Rates",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "description": "Start getting data from that date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": ["YYYY-MM-DD"]
+ },
+ "base": {
+ "type": "string",
+ "description": "Change base currency (3-letter code, default is USD - only modifiable in paid plans)",
+ "examples": ["EUR", "USD"],
+ "default": "USD"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "d8540a80-6120-485d-b7d6-272bca477d9b",
+ "name": "OpenWeather",
+ "dockerRepository": "airbyte/source-openweather",
+ "dockerImageTag": "0.1.6",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/openweather",
+ "icon": "openweather.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Open Weather Spec",
+ "type": "object",
+ "required": ["appid", "lat", "lon"],
+ "additionalProperties": true,
+ "properties": {
+ "lat": {
+ "title": "Latitude",
+ "type": "string",
+ "pattern": "^[-]?\\d{1,2}(\\.\\d+)?$",
+ "examples": ["45.7603", "-21.249107858038816"],
+ "description": "Latitude for which you want to get weather condition from. (min -90, max 90)"
+ },
+ "lon": {
+ "title": "Longitude",
+ "type": "string",
+ "pattern": "^[-]?\\d{1,3}(\\.\\d+)?$",
+ "examples": ["4.835659", "-70.39482074115321"],
+ "description": "Longitude for which you want to get weather condition from. (min -180, max 180)"
+ },
+ "appid": {
+ "title": "App ID",
+ "type": "string",
+ "description": "Your OpenWeather API Key. See here. The key is case sensitive.",
+ "airbyte_secret": true
+ },
+ "units": {
+ "title": "Units",
+ "type": "string",
+ "description": "Units of measurement. standard, metric and imperial units are available. If you do not use the units parameter, standard units will be applied by default.",
+ "enum": ["standard", "metric", "imperial"],
+ "examples": ["standard", "metric", "imperial"]
+ },
+ "lang": {
+ "title": "Language",
+ "type": "string",
+ "description": "You can use lang parameter to get the output in your language. The contents of the description field will be translated. See here for the list of supported languages.",
+ "enum": [
+ "af",
+ "al",
+ "ar",
+ "az",
+ "bg",
+ "ca",
+ "cz",
+ "da",
+ "de",
+ "el",
+ "en",
+ "eu",
+ "fa",
+ "fi",
+ "fr",
+ "gl",
+ "he",
+ "hi",
+ "hr",
+ "hu",
+ "id",
+ "it",
+ "ja",
+ "kr",
+ "la",
+ "lt",
+ "mk",
+ "no",
+ "nl",
+ "pl",
+ "pt",
+ "pt_br",
+ "ro",
+ "ru",
+ "sv",
+ "se",
+ "sk",
+ "sl",
+ "sp",
+ "es",
+ "sr",
+ "th",
+ "tr",
+ "ua",
+ "uk",
+ "vi",
+ "zh_cn",
+ "zh_tw",
+ "zu"
+ ],
+ "examples": ["en", "fr", "pt_br", "uk", "zh_cn", "zh_tw"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "06bdb480-2598-40b8-8b0f-fc2e2d2abdda",
+ "name": "Opsgenie",
+ "dockerRepository": "airbyte/source-opsgenie",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/opsgenie",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Opsgenie Spec",
+ "type": "object",
+ "required": ["api_token", "endpoint"],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "description": "API token used to access the Opsgenie platform",
+ "airbyte_secret": true
+ },
+ "endpoint": {
+ "type": "string",
+ "description": "Service endpoint to use for API calls.",
+ "examples": ["api.opsgenie.com", "api.eu.opsgenie.com"],
+ "default": "api.opsgenie.com"
+ },
+ "start_date": {
+ "type": "string",
+ "description": "The date from which you'd like to replicate data from Opsgenie in the format of YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated. Note that it will be used only in the following incremental streams: issues.",
+ "examples": ["2022-07-01T00:00:00Z"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "b39a7370-74c3-45a6-ac3a-380d48520a83",
+ "name": "Oracle DB",
+ "dockerRepository": "airbyte/source-oracle",
+ "dockerImageTag": "0.3.24",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/oracle",
+ "icon": "oracle.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/oracle",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Oracle Source Spec",
+ "type": "object",
+ "required": ["host", "port", "username"],
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 1
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.\nOracle Corporations recommends the following port numbers:\n1521 - Default listening port for client connections to the listener. \n2484 - Recommended and officially registered listening port for client connections to the listener using TCP/IP with SSL",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 1521,
+ "order": 2
+ },
+ "connection_data": {
+ "title": "Connect by",
+ "type": "object",
+ "description": "Connect data that will be used for DB connection",
+ "order": 3,
+ "oneOf": [
+ {
+ "title": "Service name",
+ "description": "Use service name",
+ "required": ["service_name"],
+ "properties": {
+ "connection_type": {
+ "type": "string",
+ "const": "service_name",
+ "order": 0
+ },
+ "service_name": {
+ "title": "Service name",
+ "type": "string",
+ "order": 1
+ }
+ }
+ },
+ {
+ "title": "System ID (SID)",
+ "description": "Use SID (Oracle System Identifier)",
+ "required": ["sid"],
+ "properties": {
+ "connection_type": {
+ "type": "string",
+ "const": "sid",
+ "order": 0
+ },
+ "sid": {
+ "title": "System ID (SID)",
+ "type": "string",
+ "order": 1
+ }
+ }
+ }
+ ]
+ },
+ "username": {
+ "title": "User",
+ "description": "The username which is used to access the database.",
+ "type": "string",
+ "order": 4
+ },
+ "password": {
+ "title": "Password",
+ "description": "The password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 5
+ },
+ "schemas": {
+ "title": "Schemas",
+ "description": "The list of schemas to sync from. Defaults to user. Case sensitive.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1,
+ "uniqueItems": true,
+ "order": 6
+ },
+ "jdbc_url_params": {
+ "title": "JDBC URL Params",
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "type": "string",
+ "order": 7
+ },
+ "encryption": {
+ "title": "Encryption",
+ "type": "object",
+ "description": "The encryption method with is used when communicating with the database.",
+ "order": 8,
+ "oneOf": [
+ {
+ "title": "Unencrypted",
+ "description": "Data transfer will not be encrypted.",
+ "required": ["encryption_method"],
+ "properties": {
+ "encryption_method": {
+ "type": "string",
+ "const": "unencrypted"
+ }
+ }
+ },
+ {
+ "title": "Native Network Encryption (NNE)",
+ "description": "The native network encryption gives you the ability to encrypt database connections, without the configuration overhead of TCP/IP and SSL/TLS and without the need to open and listen on different ports.",
+ "required": ["encryption_method"],
+ "properties": {
+ "encryption_method": {
+ "type": "string",
+ "const": "client_nne"
+ },
+ "encryption_algorithm": {
+ "type": "string",
+ "description": "This parameter defines what encryption algorithm is used.",
+ "title": "Encryption Algorithm",
+ "default": "AES256",
+ "enum": ["AES256", "RC4_56", "3DES168"]
+ }
+ }
+ },
+ {
+ "title": "TLS Encrypted (verify certificate)",
+ "description": "Verify and use the certificate provided by the server.",
+ "required": ["encryption_method", "ssl_certificate"],
+ "properties": {
+ "encryption_method": {
+ "type": "string",
+ "const": "encrypted_verify_certificate"
+ },
+ "ssl_certificate": {
+ "title": "SSL PEM File",
+ "description": "Privacy Enhanced Mail (PEM) files are concatenated certificate containers frequently used in certificate installations.",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [
+ {
+ "title": "No Tunnel",
+ "required": ["tunnel_method"],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "SSH Key Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "ssh_key"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Password Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "tunnel_user_password"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": ["${host}", "${tunnel_method.tunnel_host}"]
+ }
+ },
+ {
+ "sourceDefinitionId": "7f0455fb-4518-4ec0-b7a3-d808bf8081cc",
+ "name": "Orb",
+ "dockerRepository": "airbyte/source-orb",
+ "dockerImageTag": "1.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/orb",
+ "icon": "orb.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.withorb.com/",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Orb Spec",
+ "type": "object",
+ "required": ["api_key", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "Orb API Key",
+ "description": "Orb API Key, issued from the Orb admin console.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2022-03-01T00:00:00Z. Any data with created_at before this data will not be synced. For Subscription Usage, this becomes the `timeframe_start` API parameter.",
+ "examples": ["2022-03-01T00:00:00Z"],
+ "order": 2
+ },
+ "lookback_window_days": {
+ "type": "integer",
+ "title": "Lookback Window (in days)",
+ "default": 0,
+ "minimum": 0,
+ "description": "When set to N, the connector will always refresh resources created within the past N days. By default, updated objects that are not newly created are not incrementally synced.",
+ "order": 3
+ },
+ "string_event_properties_keys": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "Event properties keys (string values)",
+ "description": "Property key names to extract from all events, in order to enrich ledger entries corresponding to an event deduction.",
+ "order": 4
+ },
+ "numeric_event_properties_keys": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "Event properties keys (numeric values)",
+ "description": "Property key names to extract from all events, in order to enrich ledger entries corresponding to an event deduction.",
+ "order": 5
+ },
+ "subscription_usage_grouping_key": {
+ "type": "string",
+ "title": "Subscription usage grouping key (string value)",
+ "description": "Property key name to group subscription usage by."
+ },
+ "plan_id": {
+ "type": "string",
+ "title": "Orb Plan ID for Subscription Usage (string value)",
+ "description": "Orb Plan ID to filter subscriptions that should have usage fetched."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "95bcc041-1d1a-4c2e-8802-0ca5b1bfa36a",
+ "name": "Orbit",
+ "dockerRepository": "airbyte/source-orbit",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/orbit",
+ "icon": "orbit.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/orbit",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Orbit Source Spec",
+ "type": "object",
+ "required": ["api_token", "workspace"],
+ "additionalProperties": false,
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "airbyte_secret": true,
+ "title": "API Token",
+ "description": "Authorizes you to work with Orbit workspaces associated with the token.",
+ "order": 0
+ },
+ "workspace": {
+ "type": "string",
+ "title": "Workspace",
+ "description": "The unique name of the workspace that your API token is associated with.",
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "Date in the format 2022-06-26. Only load members whose last activities are after this date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 2
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "2bf6c581-bec5-4e32-891d-de33036bd631",
+ "name": "Oura",
+ "dockerRepository": "airbyte/source-oura",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/oura",
+ "icon": "oura.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Oura Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "start_datetime": {
+ "type": "string",
+ "description": "Start datetime to sync from. Default is current UTC datetime minus 1\nday.\n",
+ "pattern": "^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$",
+ "order": 1
+ },
+ "end_datetime": {
+ "type": "string",
+ "description": "End datetime to sync until. Default is current UTC datetime.",
+ "pattern": "^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$",
+ "order": 2
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "3490c201-5d95-4783-b600-eaf07a4c7787",
+ "name": "Outreach",
+ "dockerRepository": "airbyte/source-outreach",
+ "dockerImageTag": "0.2.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/outreach",
+ "icon": "outreach.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/outreach",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Outreach Spec",
+ "type": "object",
+ "required": [
+ "client_id",
+ "client_secret",
+ "refresh_token",
+ "redirect_uri",
+ "start_date"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your Outreach developer application."
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your Outreach developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "The token for obtaining the new access token.",
+ "airbyte_secret": true
+ },
+ "redirect_uri": {
+ "type": "string",
+ "title": "Redirect URI",
+ "description": "A Redirect URI is the location where the authorization server sends the user once the app has been successfully authorized and granted an authorization code or access token."
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for Outreach API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "examples": ["2020-11-16T00:00:00Z"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "ad15c7ba-72a7-440b-af15-b9a963dc1a8a",
+ "name": "Pardot",
+ "dockerRepository": "airbyte/source-pardot",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pardot",
+ "icon": "salesforcepardot.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pardot",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Pardot Spec",
+ "type": "object",
+ "required": [
+ "pardot_business_unit_id",
+ "client_id",
+ "client_secret",
+ "refresh_token"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "pardot_business_unit_id": {
+ "description": "Pardot Business ID, can be found at Setup > Pardot > Pardot Account Setup",
+ "type": "string"
+ },
+ "client_id": {
+ "description": "The Consumer Key that can be found when viewing your app in Salesforce",
+ "type": "string",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "description": "The Consumer Secret that can be found when viewing your app in Salesforce",
+ "type": "string",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "description": "Salesforce Refresh Token used for Airbyte to access your Salesforce account. If you don't know what this is, follow this guide to retrieve it.",
+ "type": "string",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. Leave blank to skip this filter",
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "default": null,
+ "examples": ["2021-07-25T00:00:00Z"]
+ },
+ "is_sandbox": {
+ "description": "Whether or not the the app is in a Salesforce sandbox. If you do not know what this, assume it is false.",
+ "type": "boolean",
+ "default": false
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "2817b3f0-04e4-4c7a-9f32-7a5e8a83db95",
+ "name": "PagerDuty",
+ "dockerRepository": "farosai/airbyte-pagerduty-source",
+ "dockerImageTag": "0.1.23",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pagerduty",
+ "icon": "pagerduty.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.faros.ai",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "PagerDuty Spec",
+ "type": "object",
+ "required": ["token"],
+ "additionalProperties": false,
+ "properties": {
+ "token": {
+ "type": "string",
+ "title": "PagerDuty API key",
+ "airbyte_secret": true
+ },
+ "pageSize": {
+ "type": "number",
+ "minimum": 1,
+ "maximum": 25,
+ "default": 25,
+ "title": "Page Size",
+ "description": "page size to use when querying PagerDuty API"
+ },
+ "cutoffDays": {
+ "type": "number",
+ "minimum": 1,
+ "default": 90,
+ "title": "Cutoff Days",
+ "description": "fetch pipelines updated in the last number of days"
+ },
+ "incidentLogEntriesOverview": {
+ "type": "boolean",
+ "title": "Incident Log Entries Overview",
+ "description": "If true, will return a subset of log entries that show only the most important changes to the incident.",
+ "default": true
+ },
+ "defaultSeverity": {
+ "type": "string",
+ "title": "Severity category",
+ "description": "A default severity category if not present",
+ "examples": ["Sev1", "Sev2", "Sev3", "Sev4", "Sev5", "Custom"],
+ "pattern": "^(Sev[0-5])?(Custom)?$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "d30fb809-6456-484d-8e2c-ee12e0f6888d",
+ "name": "PartnerStack",
+ "dockerRepository": "airbyte/source-partnerstack",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/partnerstack",
+ "icon": "partnerstack.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/partnerstack",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Partnerstack Spec",
+ "type": "object",
+ "required": ["public_key", "private_key"],
+ "additionalProperties": true,
+ "properties": {
+ "public_key": {
+ "type": "string",
+ "title": "Partnerstack Public key",
+ "description": "The Live Public Key for a Partnerstack account.",
+ "airbyte_secret": true
+ },
+ "private_key": {
+ "type": "string",
+ "title": "Partnerstack Private key",
+ "description": "The Live Private Key for a Partnerstack account.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": ["2017-01-25T00:00:00Z"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "d913b0f2-cc51-4e55-a44c-8ba1697b9239",
+ "name": "Paypal Transaction",
+ "dockerRepository": "airbyte/source-paypal-transaction",
+ "dockerImageTag": "0.1.12",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/paypal-transaction",
+ "icon": "paypal.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/paypal-transactions",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Paypal Transaction Search",
+ "type": "object",
+ "required": ["start_date", "is_sandbox"],
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your Paypal developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client secret",
+ "description": "The Client Secret of your Paypal developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh token",
+ "description": "The key to refresh the expired access token.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "Start Date for data extraction in ISO format. Date must be in range from 3 years till 12 hrs before present time.",
+ "examples": ["2021-06-11T23:59:59-00:00"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}[+-][0-9]{2}:[0-9]{2}$"
+ },
+ "is_sandbox": {
+ "title": "Sandbox",
+ "description": "Determines whether to use the sandbox or production environment.",
+ "type": "boolean",
+ "default": false
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["api-m.paypal.com", "api-m.sandbox.paypal.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "193bdcb8-1dd9-48d1-aade-91cadfd74f9b",
+ "name": "Paystack",
+ "dockerRepository": "airbyte/source-paystack",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/paystack",
+ "icon": "paystack.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/paystack",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Paystack Source Spec",
+ "type": "object",
+ "required": ["secret_key", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "secret_key": {
+ "type": "string",
+ "title": "Secret Key",
+ "pattern": "^(s|r)k_(live|test)_[a-zA-Z0-9]+$",
+ "description": "The Paystack API key (usually starts with 'sk_live_'; find yours here).",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": ["2017-01-25T00:00:00Z"],
+ "format": "date-time"
+ },
+ "lookback_window_days": {
+ "type": "integer",
+ "title": "Lookback Window (in days)",
+ "default": 0,
+ "minimum": 0,
+ "description": "When set, the connector will always reload data from the past N days, where N is the value set here. This is useful if your data is updated after creation."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["api.paystack.co"]
+ }
+ },
+ {
+ "sourceDefinitionId": "b1ccb590-e84f-46c0-83a0-2048ccfffdae",
+ "name": "Pendo",
+ "dockerRepository": "airbyte/source-pendo",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pendo",
+ "icon": "pendo.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pendo",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["api_key"],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "airbyte_secret": true
+ }
+ },
+ "additionalProperties": true
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "3052c77e-8b91-47e2-97a0-a29a22794b4b",
+ "name": "PersistIq",
+ "dockerRepository": "airbyte/source-persistiq",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/persistiq",
+ "icon": "persistiq.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/persistiq",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Persistiq Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": false,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "PersistIq API Key. See the docs for more information on where to find that key.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "69d9eb65-8026-47dc-baf1-e4bf67901fd6",
+ "name": "Pexels API",
+ "dockerRepository": "airbyte/source-pexels-api",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pexels-api",
+ "icon": "pexels.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pexels-api",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Pexel API Spec",
+ "type": "object",
+ "required": ["api_key", "query"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key from the pexels website",
+ "type": "string",
+ "description": "API key is required to access pexels api, For getting your's goto https://www.pexels.com/api/documentation and create account for free.",
+ "airbyte_secret": true
+ },
+ "query": {
+ "title": "Specific query for the search",
+ "type": "string",
+ "description": "Optional, the search query, Example Ocean, Tigers, Pears, etc.",
+ "examples": ["people", "oceans"]
+ },
+ "orientation": {
+ "title": "Specific orientation for the search",
+ "type": "string",
+ "description": "Optional, Desired photo orientation. The current supported orientations are landscape, portrait or square",
+ "examples": ["square", "landscape"]
+ },
+ "size": {
+ "title": "Specific size for the search",
+ "type": "string",
+ "description": "Optional, Minimum photo size. The current supported sizes are large(24MP), medium(12MP) or small(4MP).",
+ "examples": ["large", "small"]
+ },
+ "color": {
+ "title": "Specific color for the search",
+ "type": "string",
+ "description": "Optional, Desired photo color. Supported colors red, orange, yellow, green, turquoise, blue, violet, pink, brown, black, gray, white or any hexidecimal color code.",
+ "examples": ["red", "orange"]
+ },
+ "locale": {
+ "title": "Specific locale for the search",
+ "type": "string",
+ "description": "Optional, The locale of the search you are performing. The current supported locales are 'en-US' 'pt-BR' 'es-ES' 'ca-ES' 'de-DE' 'it-IT' 'fr-FR' 'sv-SE' 'id-ID' 'pl-PL' 'ja-JP' 'zh-TW' 'zh-CN' 'ko-KR' 'th-TH' 'nl-NL' 'hu-HU' 'vi-VN' 'cs-CZ' 'da-DK' 'fi-FI' 'uk-UA' 'el-GR' 'ro-RO' 'nb-NO' 'sk-SK' 'tr-TR' 'ru-RU'.",
+ "examples": ["en-US", "pt-BR"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "5cb7e5fe-38c2-11ec-8d3d-0242ac130003",
+ "name": "Pinterest",
+ "dockerRepository": "airbyte/source-pinterest",
+ "dockerImageTag": "0.2.5",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pinterest",
+ "icon": "pinterest.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pinterest",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Pinterest Spec",
+ "type": "object",
+ "required": ["start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "A date in the format YYYY-MM-DD. If you have not set a date, it would be defaulted to latest allowed date by api (89 days from today).",
+ "examples": ["2022-07-28"]
+ },
+ "status": {
+ "title": "Status",
+ "description": "Entity statuses based off of campaigns, ad_groups, and ads. If you do not have a status set, it will be ignored completely.",
+ "type": ["array", "null"],
+ "items": {
+ "type": "string",
+ "enum": ["ACTIVE", "PAUSED", "ARCHIVED"]
+ },
+ "uniqueItems": true
+ },
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": ["auth_method", "refresh_token"],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your OAuth application",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "Refresh Token to obtain new Access Token, when it's expired.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "Access Token",
+ "required": ["auth_method", "access_token"],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "access_token",
+ "order": 0
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The Access Token to make authenticated requests.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "auth_method"],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "refresh_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["api.pinterest.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "d8286229-c680-4063-8c59-23b9b391c700",
+ "name": "Pipedrive",
+ "dockerRepository": "airbyte/source-pipedrive",
+ "dockerImageTag": "0.1.17",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pipedrive",
+ "icon": "pipedrive.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pipedrive",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Pipedrive Spec",
+ "type": "object",
+ "required": ["replication_start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "authorization": {
+ "type": "object",
+ "title": "API Key Authentication",
+ "required": ["auth_type", "api_token"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Token",
+ "order": 0
+ },
+ "api_token": {
+ "title": "API Token",
+ "type": "string",
+ "description": "The Pipedrive API Token.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "replication_start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. When specified and not None, then stream will behave as incremental",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2017-01-25T00:00:00Z"],
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["api.pipedrive.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "d60f5393-f99e-4310-8d05-b1876820f40e",
+ "name": "Pivotal Tracker",
+ "dockerRepository": "airbyte/source-pivotal-tracker",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pivotal-tracker",
+ "icon": "pivotal-tracker.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Pivotal Tracker Spec",
+ "type": "object",
+ "required": ["api_token"],
+ "additionalProperties": false,
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "description": "Pivotal Tracker API token",
+ "examples": ["5c054d0de3440452190fdc5d5a04d871"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "ed799e2b-2158-4c66-8da4-b40fe63bc72a",
+ "name": "Plaid",
+ "dockerRepository": "airbyte/source-plaid",
+ "dockerImageTag": "0.3.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/plaid",
+ "icon": "plaid.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://plaid.com/docs/api/",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["access_token", "api_key", "client_id", "plaid_env"],
+ "additionalProperties": true,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The end-user's Link access token."
+ },
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "The Plaid API key to use to hit the API.",
+ "airbyte_secret": true
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Plaid client id"
+ },
+ "plaid_env": {
+ "title": "Plaid Environment",
+ "type": "string",
+ "enum": ["sandbox", "development", "production"],
+ "description": "The Plaid environment"
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "The date from which you'd like to replicate data for Plaid in the format YYYY-MM-DD. All data generated after this date will be replicated.",
+ "examples": ["2021-03-01"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "603ba446-3d75-41d7-92f3-aba901f8b897",
+ "name": "Plausible",
+ "dockerRepository": "airbyte/source-plausible",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/plausible",
+ "icon": "plausible.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/plausible",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Plausible Spec",
+ "type": "object",
+ "required": ["api_key", "site_id"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "Plausible API key",
+ "description": "Plausible API Key. See the docs for information on how to generate this key.",
+ "airbyte_secret": true
+ },
+ "site_id": {
+ "type": "string",
+ "title": "Target website domain",
+ "description": "The domain of the site you want to retrieve data for. Enter the name of your site as configured on Plausible, i.e., excluding \"https://\" and \"www\". Can be retrieved from the 'domain' field in your Plausible site settings.",
+ "pattern": "^[A-Za-z0-9-.]+\\.[A-Z-a-z0-9-.]+",
+ "examples": ["airbyte.com", "docs.airbyte.com"]
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Data start date",
+ "description": "Start date for data to retrieve, in ISO-8601 format.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": ["YYYY-MM-DD"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "b0dd65f1-081f-4731-9c51-38e9e6aa0ebf",
+ "name": "Pocket",
+ "dockerRepository": "airbyte/source-pocket",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pocket",
+ "icon": "pocket.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pocket",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Pocket Spec",
+ "type": "object",
+ "required": ["consumer_key", "access_token"],
+ "additionalProperties": true,
+ "properties": {
+ "consumer_key": {
+ "type": "string",
+ "title": "Consumer Key",
+ "description": "Your application's Consumer Key.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The user's Pocket access token.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "state": {
+ "type": "string",
+ "title": "State",
+ "description": "Select the state of the items to retrieve.",
+ "order": 2,
+ "enum": ["unread", "archive", "all"]
+ },
+ "favorite": {
+ "type": "boolean",
+ "title": "Is Favorite?",
+ "description": "Retrieve only favorited items.",
+ "default": false,
+ "order": 3
+ },
+ "tag": {
+ "type": "string",
+ "title": "Tag Name",
+ "description": "Return only items tagged with this tag name. Use _untagged_ for retrieving only untagged items.",
+ "order": 4
+ },
+ "content_type": {
+ "type": "string",
+ "title": "Content Type",
+ "description": "Select the content type of the items to retrieve.",
+ "order": 5,
+ "enum": ["article", "video", "image"]
+ },
+ "sort": {
+ "type": "string",
+ "title": "Sort By",
+ "description": "Sort retrieved items by the given criteria.",
+ "order": 6,
+ "enum": ["newest", "oldest", "title", "site"]
+ },
+ "detail_type": {
+ "type": "string",
+ "title": "Detail Type",
+ "description": "Select the granularity of the information about each item.",
+ "order": 7,
+ "enum": ["simple", "complete"]
+ },
+ "search": {
+ "type": "string",
+ "title": "Search Query",
+ "description": "Only return items whose title or url contain the `search` string.",
+ "order": 8
+ },
+ "domain": {
+ "type": "string",
+ "title": "Domain",
+ "description": "Only return items from a particular `domain`.",
+ "order": 9
+ },
+ "since": {
+ "type": "string",
+ "title": "Since",
+ "description": "Only return items modified since the given timestamp.",
+ "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}",
+ "examples": ["2022-10-20 14:14:14"],
+ "order": 10
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "6371b14b-bc68-4236-bfbd-468e8df8e968",
+ "name": "PokeAPI",
+ "dockerRepository": "airbyte/source-pokeapi",
+ "dockerImageTag": "0.1.5",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pokeapi",
+ "icon": "pokeapi.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pokeapi",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Pokeapi Spec",
+ "type": "object",
+ "required": ["pokemon_name"],
+ "additionalProperties": false,
+ "properties": {
+ "pokemon_name": {
+ "type": "string",
+ "title": "Pokemon Name",
+ "description": "Pokemon requested from the API.",
+ "pattern": "^[a-z0-9_\\-]+$",
+ "examples": ["ditto", "luxray", "snorlax"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "5807d72f-0abc-49f9-8fa5-ae820007032b",
+ "name": "Polygon Stock API",
+ "dockerRepository": "airbyte/source-polygon-stock-api",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/polygon-stock-api",
+ "icon": "polygon.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/airtable",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Weather API Spec",
+ "type": "object",
+ "required": [
+ "apiKey",
+ "stocksTicker",
+ "multiplier",
+ "timespan",
+ "start_date",
+ "end_date"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "apiKey": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Your API ACCESS Key",
+ "airbyte_secret": true
+ },
+ "stocksTicker": {
+ "title": "Stock Ticker",
+ "type": "string",
+ "description": "The exchange symbol that this item is traded under.",
+ "examples": ["IBM", "MSFT"]
+ },
+ "multiplier": {
+ "title": "Multiplier",
+ "type": "integer",
+ "description": "The size of the timespan multiplier.",
+ "examples": [1, 2]
+ },
+ "timespan": {
+ "title": "Timespan",
+ "type": "string",
+ "description": "The size of the time window.",
+ "examples": ["day"]
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "description": "The beginning date for the aggregate window.",
+ "examples": ["2020-10-14"],
+ "format": "date"
+ },
+ "end_date": {
+ "title": "End Date",
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "description": "The target date for the aggregate window.",
+ "examples": ["2020-10-14"],
+ "format": "date"
+ },
+ "adjusted": {
+ "title": "Adjusted",
+ "type": "string",
+ "description": "Determines whether or not the results are adjusted for splits. By default, results are adjusted and set to true. Set this to false to get results that are NOT adjusted for splits.",
+ "examples": ["true", "false"]
+ },
+ "sort": {
+ "title": "Sort",
+ "type": "string",
+ "description": "Sort the results by timestamp. asc will return results in ascending order (oldest at the top), desc will return results in descending order (newest at the top).",
+ "examples": ["asc", "desc"]
+ },
+ "limit": {
+ "title": "Limit",
+ "type": "integer",
+ "description": "The target date for the aggregate window.",
+ "examples": [100, 120]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": ["api.polygon.io"]
+ }
+ },
+ {
+ "sourceDefinitionId": "af6d50ee-dddf-4126-a8ee-7faee990774f",
+ "name": "PostHog",
+ "dockerRepository": "airbyte/source-posthog",
+ "dockerImageTag": "0.1.9",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/posthog",
+ "icon": "posthog.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/posthog",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "PostHog Spec",
+ "type": "object",
+ "required": ["api_key", "start_date"],
+ "properties": {
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "The date from which you'd like to replicate the data. Any data before this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2021-01-01T00:00:00Z"],
+ "format": "date-time"
+ },
+ "api_key": {
+ "type": "string",
+ "airbyte_secret": true,
+ "title": "API Key",
+ "description": "API Key. See the docs for information on how to generate this key."
+ },
+ "base_url": {
+ "type": "string",
+ "default": "https://app.posthog.com",
+ "title": "Base URL",
+ "description": "Base PostHog url. Defaults to PostHog Cloud (https://app.posthog.com).",
+ "examples": ["https://posthog.example.com"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["${base_url}", "app.posthog.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "decd338e-5647-4c0b-adf4-da0e75f5a750",
+ "name": "Postgres",
+ "dockerRepository": "airbyte/source-postgres",
+ "dockerImageTag": "2.0.25",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/postgres",
+ "icon": "postgresql.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/postgres",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Postgres Source Spec",
+ "type": "object",
+ "required": ["host", "port", "database", "username"],
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0,
+ "group": "db"
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 5432,
+ "examples": ["5432"],
+ "order": 1,
+ "group": "db"
+ },
+ "database": {
+ "title": "Database Name",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2,
+ "group": "db"
+ },
+ "schemas": {
+ "title": "Schemas",
+ "description": "The list of schemas (case sensitive) to sync from. Defaults to public.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 0,
+ "uniqueItems": true,
+ "default": ["public"],
+ "order": 3,
+ "group": "db"
+ },
+ "username": {
+ "title": "Username",
+ "description": "Username to access the database.",
+ "type": "string",
+ "order": 4,
+ "group": "auth"
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 5,
+ "group": "auth",
+ "always_show": true
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (Eg. key1=value1&key2=value2&key3=value3). For more information read about JDBC URL parameters.",
+ "title": "JDBC URL Parameters (Advanced)",
+ "type": "string",
+ "order": 6,
+ "group": "advanced",
+ "pattern_descriptor": "key1=value1&key2=value2"
+ },
+ "ssl_mode": {
+ "title": "SSL Modes",
+ "description": "SSL connection modes. \n Read more in the docs.",
+ "type": "object",
+ "order": 8,
+ "group": "security",
+ "oneOf": [
+ {
+ "title": "disable",
+ "additionalProperties": true,
+ "description": "Disables encryption of communication between Airbyte and source database.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "disable",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "allow",
+ "additionalProperties": true,
+ "description": "Enables encryption only when required by the source database.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "allow",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "prefer",
+ "additionalProperties": true,
+ "description": "Allows unencrypted connection only if the source database does not support encryption.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "prefer",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "require",
+ "additionalProperties": true,
+ "description": "Always require encryption. If the source database server does not support encryption, connection will fail.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "require",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "verify-ca",
+ "additionalProperties": true,
+ "description": "Always require encryption and verifies that the source database server has a valid SSL certificate.",
+ "required": ["mode", "ca_certificate"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-ca",
+ "order": 0
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA Certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ },
+ "client_certificate": {
+ "type": "string",
+ "title": "Client Certificate",
+ "description": "Client certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 2,
+ "always_show": true
+ },
+ "client_key": {
+ "type": "string",
+ "title": "Client Key",
+ "description": "Client key",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 3,
+ "always_show": true
+ },
+ "client_key_password": {
+ "type": "string",
+ "title": "Client key password",
+ "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "verify-full",
+ "additionalProperties": true,
+ "description": "This is the most secure mode. Always require encryption and verifies the identity of the source database server.",
+ "required": ["mode", "ca_certificate"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-full",
+ "order": 0
+ },
+ "ca_certificate": {
+ "type": "string",
+ "title": "CA Certificate",
+ "description": "CA certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ },
+ "client_certificate": {
+ "type": "string",
+ "title": "Client Certificate",
+ "description": "Client certificate",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 2,
+ "always_show": true
+ },
+ "client_key": {
+ "type": "string",
+ "title": "Client Key",
+ "description": "Client key",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 3,
+ "always_show": true
+ },
+ "client_key_password": {
+ "type": "string",
+ "title": "Client key password",
+ "description": "Password for keystorage. If you do not add it - the password will be generated automatically.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ },
+ "replication_method": {
+ "type": "object",
+ "title": "Replication Method",
+ "description": "Replication method for extracting data from the database.",
+ "order": 9,
+ "group": "advanced",
+ "oneOf": [
+ {
+ "title": "Standard",
+ "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.",
+ "required": ["method"],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "Standard",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "Logical Replication (CDC)",
+ "description": "Logical replication uses the Postgres write-ahead log (WAL) to detect inserts, updates, and deletes. This needs to be configured on the source database itself. Only available on Postgres 10 and above. Read the docs.",
+ "required": ["method", "replication_slot", "publication"],
+ "additionalProperties": true,
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "CDC",
+ "order": 1
+ },
+ "plugin": {
+ "type": "string",
+ "title": "Plugin",
+ "description": "A logical decoding plugin installed on the PostgreSQL server.",
+ "enum": ["pgoutput"],
+ "default": "pgoutput",
+ "order": 2
+ },
+ "replication_slot": {
+ "type": "string",
+ "title": "Replication Slot",
+ "description": "A plugin logical replication slot. Read about replication slots.",
+ "order": 3
+ },
+ "publication": {
+ "type": "string",
+ "title": "Publication",
+ "description": "A Postgres publication used for consuming changes. Read about publications and replication identities.",
+ "order": 4
+ },
+ "initial_waiting_seconds": {
+ "type": "integer",
+ "title": "Initial Waiting Time in Seconds (Advanced)",
+ "description": "The amount of time the connector will wait when it launches to determine if there is new data to sync or not. Defaults to 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about initial waiting time.",
+ "default": 300,
+ "order": 5,
+ "min": 120,
+ "max": 1200
+ },
+ "lsn_commit_behaviour": {
+ "type": "string",
+ "title": "LSN commit behaviour",
+ "description": "Determines when Airbtye should flush the LSN of processed WAL logs in the source database. `After loading Data in the destination` is default. If `While reading Data` is selected, in case of a downstream failure (while loading data into the destination), next sync would result in a full sync.",
+ "enum": [
+ "While reading Data",
+ "After loading Data in the destination"
+ ],
+ "default": "After loading Data in the destination",
+ "order": 6
+ }
+ }
+ }
+ ]
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [
+ {
+ "title": "No Tunnel",
+ "required": ["tunnel_method"],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "SSH Key Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "ssh_key"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Password Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "tunnel_user_password"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ],
+ "group": "security"
+ }
+ },
+ "groups": [
+ {
+ "id": "db"
+ },
+ {
+ "id": "auth"
+ },
+ {
+ "id": "security",
+ "title": "Security"
+ },
+ {
+ "id": "advanced",
+ "title": "Advanced"
+ }
+ ]
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["${host}", "${tunnel_method.tunnel_host}"]
+ },
+ "maxSecondsBetweenMessages": 7200
+ },
+ {
+ "sourceDefinitionId": "cde75ca1-1e28-4a0f-85bb-90c546de9f1f",
+ "name": "Postmark App",
+ "dockerRepository": "airbyte/source-postmarkapp",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/postmarkapp",
+ "icon": "postmark.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Postmarkapp Spec",
+ "type": "object",
+ "required": ["X-Postmark-Server-Token", "X-Postmark-Account-Token"],
+ "additionalProperties": true,
+ "properties": {
+ "X-Postmark-Server-Token": {
+ "title": "X-Postmark-Server-Token",
+ "type": "string",
+ "description": "API Key for server",
+ "airbyte_secret": true
+ },
+ "X-Postmark-Account-Token": {
+ "title": "X-Postmark-Account-Token",
+ "type": "string",
+ "description": "API Key for account",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "d60a46d4-709f-4092-a6b7-2457f7d455f5",
+ "name": "PrestaShop",
+ "dockerRepository": "airbyte/source-prestashop",
+ "dockerImageTag": "0.3.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/prestashop",
+ "icon": "prestashop.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/prestashop",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "PrestaShop Spec",
+ "type": "object",
+ "required": ["access_key", "url", "start_date"],
+ "properties": {
+ "access_key": {
+ "type": "string",
+ "title": "Access Key",
+ "description": "Your PrestaShop access key. See the docs for info on how to obtain this.",
+ "order": 0,
+ "airbyte_secret": true
+ },
+ "url": {
+ "type": "string",
+ "title": "Shop URL",
+ "description": "Shop URL without trailing slash.",
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "description": "The Start date in the format YYYY-MM-DD.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": ["2022-01-01"],
+ "format": "date",
+ "order": 2
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["${domain}"]
+ }
+ },
+ {
+ "sourceDefinitionId": "f636c3c6-4077-45ac-b109-19fc62a283c1",
+ "name": "Primetric",
+ "dockerRepository": "airbyte/source-primetric",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/primetric",
+ "icon": "primetric.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Primetric Spec",
+ "type": "object",
+ "required": ["client_id", "client_secret"],
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your Primetric developer application. The Client ID is visible here.",
+ "pattern": "^[a-zA-Z0-9]+$",
+ "airbyte_secret": true,
+ "examples": ["1234aBcD5678EFGh9045Neq79sdDlA15082VMYcj"],
+ "order": 0
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your Primetric developer application. You can manage your client's credentials here.",
+ "pattern": "^[a-zA-Z0-9]+$",
+ "airbyte_secret": true,
+ "order": 1
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "a4617b39-3c14-44cd-a2eb-6e720f269235",
+ "name": "Public APIs",
+ "dockerRepository": "airbyte/source-public-apis",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/public-apis",
+ "icon": "publicapi.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/public-apis",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Public Apis Spec",
+ "type": "object",
+ "required": [],
+ "properties": {}
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "dbe9b7ae-7b46-4e44-a507-02a343cf7230",
+ "name": "Punk API",
+ "dockerRepository": "airbyte/source-punk-api",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/punk-api",
+ "icon": "punkapi.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/punk-api",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Punk Api Spec",
+ "type": "object",
+ "required": ["brewed_before", "brewed_after"],
+ "additionalProperties": true,
+ "properties": {
+ "id": {
+ "title": "Beers with specific ID",
+ "type": "string",
+ "description": "To extract specific data with Unique ID",
+ "examples": [1, 22]
+ },
+ "brewed_before": {
+ "title": "Brewed before data to get incremental reads",
+ "type": "string",
+ "description": "To extract specific data with Unique ID",
+ "pattern": "^[0-9]{2}-[0-9]{4}$",
+ "examples": ["MM-YYYY"]
+ },
+ "brewed_after": {
+ "title": "Brewed after data to get incremental reads",
+ "type": "string",
+ "description": "To extract specific data with Unique ID",
+ "pattern": "^[0-9]{2}-[0-9]{4}$",
+ "examples": ["MM-YYYY"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "88ecd3a8-5f5b-11ed-9b6a-0242ac120002",
+ "name": "PyPI",
+ "dockerRepository": "airbyte/source-pypi",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/pypi",
+ "icon": "pypi.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/pypi",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Pypi Spec",
+ "type": "object",
+ "required": ["project_name"],
+ "additionalProperties": true,
+ "properties": {
+ "project_name": {
+ "type": "string",
+ "title": "PyPI Package",
+ "description": "Name of the project/package. Can only be in lowercase with hyphen. This is the name used using pip command for installing the package.",
+ "examples": ["sampleproject"]
+ },
+ "version": {
+ "title": "Package Version",
+ "type": "string",
+ "description": "Version of the project/package. Use it to find a particular release instead of all releases.",
+ "examples": ["1.2.0"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "f7c0b910-5f66-11ed-9b6a-0242ac120002",
+ "name": "Qonto",
+ "dockerRepository": "airbyte/source-qonto",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/public-qonto",
+ "icon": "qonto.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Qonto Spec",
+ "type": "object",
+ "required": ["endpoint", "organization_slug", "secret_key", "iban"],
+ "properties": {
+ "endpoint": {
+ "title": "Endpoint",
+ "type": "string",
+ "description": "Please choose the right endpoint to use in this connection",
+ "enum": ["Production", "Test Mocked API Server"]
+ },
+ "organization_slug": {
+ "title": "Organization slug",
+ "type": "string",
+ "description": "Organization slug used in Qonto"
+ },
+ "secret_key": {
+ "title": "Secret Key",
+ "type": "string",
+ "description": "Secret key of the Qonto account",
+ "airbyte_secret": true
+ },
+ "iban": {
+ "title": "IBAN",
+ "type": "string",
+ "description": "International Bank Account Number linked used with your Qonto Account",
+ "pattern": "^[A-Z0-9]*$"
+ },
+ "start_date": {
+ "title": "Start date",
+ "type": "string",
+ "description": "Start getting data from that date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": ["YYYY-MM-DD"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "b08e4776-d1de-4e80-ab5c-1e51dad934a2",
+ "name": "Qualaroo",
+ "dockerRepository": "airbyte/source-qualaroo",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/qualaroo",
+ "icon": "qualaroo.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/qualaroo",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Qualaroo Spec",
+ "type": "object",
+ "required": ["token", "key", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "token": {
+ "type": "string",
+ "title": "API token",
+ "description": "A Qualaroo token. See the docs for instructions on how to generate it.",
+ "airbyte_secret": true
+ },
+ "key": {
+ "type": "string",
+ "title": "API key",
+ "description": "A Qualaroo token. See the docs for instructions on how to generate it.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": ["2021-03-01T00:00:00.000Z"]
+ },
+ "survey_ids": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "^[0-9]{1,8}$"
+ },
+ "title": "Qualaroo survey IDs",
+ "description": "IDs of the surveys from which you'd like to replicate data. If left empty, data from all surveys to which you have access will be replicated."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [],
+ "oauthFlowInitParameters": [],
+ "oauthFlowOutputParameters": [["token"], ["key"]]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "cf9c4355-b171-4477-8f2d-6c5cc5fc8b7e",
+ "name": "QuickBooks",
+ "dockerRepository": "airbyte/source-quickbooks",
+ "dockerImageTag": "2.0.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/quickbooks",
+ "icon": "quickbooks.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/quickbooks",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source QuickBooks Spec",
+ "type": "object",
+ "required": ["credentials", "start_date", "sandbox"],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "order": 0,
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [
+ "client_id",
+ "client_secret",
+ "refresh_token",
+ "access_token",
+ "token_expiry_date",
+ "realm_id"
+ ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "oauth2.0"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "Identifies which app is making the request. Obtain this value from the Keys tab on the app profile via My Apps on the developer site. There are two versions of this key: development and production."
+ },
+ "client_secret": {
+ "description": " Obtain this value from the Keys tab on the app profile via My Apps on the developer site. There are two versions of this key: development and production.",
+ "title": "Client Secret",
+ "type": "string",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "description": "A token used when refreshing the access token.",
+ "title": "Refresh Token",
+ "type": "string",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "description": "Access token fot making authenticated requests.",
+ "title": "Access Token",
+ "type": "string",
+ "airbyte_secret": true
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "title": "Token Expiry Date",
+ "description": "The date-time when the access token should be refreshed.",
+ "format": "date-time"
+ },
+ "realm_id": {
+ "description": "Labeled Company ID. The Make API Calls panel is populated with the realm id and the current access token.",
+ "title": "Realm ID",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ },
+ "start_date": {
+ "order": 1,
+ "description": "The default value to use if no bookmark exists for an endpoint (rfc3339 date string). E.g, 2021-03-20T00:00:00+00:00. Any data before this date will not be replicated.",
+ "title": "Start Date",
+ "type": "string",
+ "format": "date-time",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2021-03-20T00:00:00+00:00"]
+ },
+ "sandbox": {
+ "order": 2,
+ "description": "Determines whether to use the sandbox or production environment.",
+ "title": "Sandbox",
+ "type": "boolean",
+ "default": false
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [
+ "sandbox-quickbooks.api.intuit.com",
+ "quickbooks.api.intuit.com",
+ "oauth.platform.intuit.com"
+ ]
+ }
+ },
+ {
+ "sourceDefinitionId": "9b6cc0c0-da81-4103-bbfd-5279e18a849a",
+ "name": "Railz",
+ "dockerRepository": "airbyte/source-railz",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/railz",
+ "icon": "railz.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Railz Spec",
+ "type": "object",
+ "required": ["client_id", "secret_key", "start_date"],
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "Client ID (client_id)",
+ "order": 0
+ },
+ "secret_key": {
+ "type": "string",
+ "title": "Secret key",
+ "description": "Secret key (secret_key)",
+ "order": 1,
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date",
+ "description": "Start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 2
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "45d2e135-2ede-49e1-939f-3e3ec357a65e",
+ "name": "Recharge",
+ "dockerRepository": "airbyte/source-recharge",
+ "dockerImageTag": "0.2.9",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/recharge",
+ "icon": "recharge.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/recharge",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Recharge Spec",
+ "type": "object",
+ "required": ["start_date", "access_token"],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for Recharge API, in the format YYYY-MM-DDT00:00:00Z. Any data before this date will not be replicated.",
+ "examples": ["2021-05-14T00:00:00Z"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "format": "date-time"
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The value of the Access Token generated. See the docs for more information.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["api.rechargeapps.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "25d7535d-91e0-466a-aa7f-af81578be277",
+ "name": "Recreation",
+ "dockerRepository": "airbyte/source-recreation",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/recreation",
+ "icon": "recreation.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/recreation",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Recreation Spec",
+ "type": "object",
+ "required": ["apikey"],
+ "additionalProperties": true,
+ "properties": {
+ "apikey": {
+ "title": "API Key",
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true
+ },
+ "query_campsites": {
+ "title": "Query Campsite",
+ "type": "string"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "3b046ac7-d8d3-4eb3-b122-f96b2a16d8a8",
+ "name": "Recruitee",
+ "dockerRepository": "airbyte/source-recruitee",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/recruitee",
+ "icon": "recruitee.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/recruitee",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Recruitee Spec",
+ "type": "object",
+ "required": ["api_key", "company_id"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Recruitee API Key. See here.",
+ "airbyte_secret": true
+ },
+ "company_id": {
+ "title": "Company ID",
+ "type": "integer",
+ "description": "Recruitee Company ID. You can also find this ID on the Recruitee API tokens page."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "cd42861b-01fc-4658-a8ab-5d11d0510f01",
+ "name": "Recurly",
+ "dockerRepository": "airbyte/source-recurly",
+ "dockerImageTag": "0.4.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/recurly",
+ "icon": "recurly.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/recurly",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Recurly Source Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": false,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "airbyte_secret": true,
+ "description": "Recurly API Key. See the docs for more information on how to generate this key.",
+ "order": 1
+ },
+ "begin_time": {
+ "type": "string",
+ "description": "ISO8601 timestamp from which the replication from Recurly API will start from.",
+ "examples": ["2021-12-01T00:00:00"],
+ "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
+ "order": 2
+ },
+ "end_time": {
+ "type": "string",
+ "description": "ISO8601 timestamp to which the replication from Recurly API will stop. Records after that date won't be imported.",
+ "examples": ["2021-12-01T00:00:00"],
+ "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "e87ffa8e-a3b5-f69c-9076-6011339de1f6",
+ "name": "Redshift",
+ "dockerRepository": "airbyte/source-redshift",
+ "dockerImageTag": "0.3.16",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/redshift",
+ "icon": "redshift.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/destinations/redshift",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Redshift Source Spec",
+ "type": "object",
+ "required": ["host", "port", "database", "username", "password"],
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Host Endpoint of the Redshift Cluster (must include the cluster-id, region and end with .redshift.amazonaws.com).",
+ "type": "string",
+ "order": 1
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 5439,
+ "examples": ["5439"],
+ "order": 2
+ },
+ "database": {
+ "title": "Database",
+ "description": "Name of the database.",
+ "type": "string",
+ "examples": ["master"],
+ "order": 3
+ },
+ "schemas": {
+ "title": "Schemas",
+ "description": "The list of schemas to sync from. Specify one or more explicitly or keep empty to process all schemas. Schema names are case sensitive.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 0,
+ "uniqueItems": true,
+ "examples": ["public"],
+ "order": 4
+ },
+ "username": {
+ "title": "Username",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 5
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 6
+ },
+ "jdbc_url_params": {
+ "title": "JDBC URL Params",
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "type": "string",
+ "order": 7
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "8cc6537e-f8a6-423c-b960-e927af76116e",
+ "name": "Reply.io",
+ "dockerRepository": "airbyte/source-reply-io",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/reply-io",
+ "icon": "reply-io.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/reply-io",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Reply Io Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Token",
+ "description": "The API Token for Reply",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "db04ecd1-42e7-4115-9cec-95812905c626",
+ "name": "Retently",
+ "dockerRepository": "airbyte/source-retently",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/retently",
+ "icon": "retently.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Retently Api Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authentication Mechanism",
+ "description": "Choose how to authenticate to Retently",
+ "type": "object",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "Authenticate via Retently (OAuth)",
+ "required": ["client_id", "client_secret", "refresh_token"],
+ "additionalProperties": true,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Retently developer application."
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Retently developer application.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "Retently Refresh Token which can be used to fetch new Bearer Tokens when the current one expires.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "Authenticate with API Token",
+ "required": ["api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Token",
+ "order": 0
+ },
+ "api_key": {
+ "title": "API Token",
+ "description": "Retently API Token. See the docs for more information on how to obtain this key.",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "auth_type"],
+ "predicate_value": "Client",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "refresh_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "fb141f29-be2a-450b-a4f2-2cd203a00f84",
+ "name": "RD Station Marketing",
+ "dockerRepository": "airbyte/source-rd-station-marketing",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/rd-station-marketing",
+ "icon": "rdstation.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/rd-station-marketing",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "RD Station Marketing Spec",
+ "type": "object",
+ "required": ["start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "authorization": {
+ "type": "object",
+ "title": "Authentication Type",
+ "description": "Choose one of the possible authorization method",
+ "oneOf": [
+ {
+ "title": "Sign in via RD Station (OAuth)",
+ "type": "object",
+ "required": ["auth_type"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client",
+ "order": 0
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your RD Station developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your RD Station developer application",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "The token for obtaining the new access token.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated. When specified and not None, then stream will behave as incremental",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2017-01-25T00:00:00Z"],
+ "type": "string"
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": ["authorization", "0"],
+ "oauthFlowInitParameters": [["client_id"], ["client_secret"]],
+ "oauthFlowOutputParameters": [["refresh_token"]]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "d78e5de0-aa44-4744-aa4f-74c818ccfe19",
+ "name": "RKI Covid",
+ "dockerRepository": "airbyte/source-rki-covid",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/rki-covid",
+ "icon": "rki.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/rki-covid",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "RKI Covid Spec",
+ "type": "object",
+ "required": ["start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "UTC date in the format 2017-01-25. Any data before this date will not be replicated.",
+ "order": 1
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "0efee448-6948-49e2-b786-17db50647908",
+ "name": "RSS",
+ "dockerRepository": "airbyte/source-rss",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/rss",
+ "icon": "rss.svg",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/rss",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "RSS Spec",
+ "type": "object",
+ "required": ["url"],
+ "properties": {
+ "url": {
+ "type": "string",
+ "description": "RSS Feed URL"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false
+ },
+ {
+ "sourceDefinitionId": "921d9608-3915-450b-8078-0af18801ea1b",
+ "name": "Rocket.chat",
+ "dockerRepository": "airbyte/source-rocket-chat",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/rocket-chat",
+ "icon": "rocket-chat.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/rocket-chat",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Rocket Chat Spec",
+ "type": "object",
+ "required": ["token", "user_id", "endpoint"],
+ "additionalProperties": true,
+ "properties": {
+ "endpoint": {
+ "title": "Endpoint",
+ "type": "string",
+ "description": "Your rocket.chat instance URL.",
+ "examples": [
+ "https://airbyte-connector-poc.rocket.chat",
+ "https://hey.yoursite.com"
+ ]
+ },
+ "token": {
+ "title": "Token",
+ "type": "string",
+ "description": "Your API Token. See here. The token is case sensitive.",
+ "airbyte_secret": true
+ },
+ "user_id": {
+ "title": "User ID.",
+ "type": "string",
+ "description": "Your User Id."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "69589781-7828-43c5-9f63-8925b1c1ccc2",
+ "name": "S3",
+ "dockerRepository": "airbyte/source-s3",
+ "dockerImageTag": "2.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/s3",
+ "icon": "s3.svg",
+ "sourceType": "file",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/s3",
+ "changelogUrl": "https://docs.airbyte.com/integrations/sources/s3",
+ "connectionSpecification": {
+ "title": "S3 Source Spec",
+ "type": "object",
+ "properties": {
+ "dataset": {
+ "title": "Output Stream Name",
+ "description": "The name of the stream you would like this source to output. Can contain letters, numbers, or underscores.",
+ "pattern": "^([A-Za-z0-9-_]+)$",
+ "order": 0,
+ "type": "string"
+ },
+ "path_pattern": {
+ "title": "Pattern of files to replicate",
+ "description": "A regular expression which tells the connector which files to replicate. All files which match this pattern will be replicated. Use | to separate multiple patterns. See this page to understand pattern syntax (GLOBSTAR and SPLIT flags are enabled). Use pattern ** to pick up all files.",
+ "examples": [
+ "**",
+ "myFolder/myTableFiles/*.csv|myFolder/myOtherTableFiles/*.csv"
+ ],
+ "order": 10,
+ "type": "string"
+ },
+ "format": {
+ "title": "File Format",
+ "description": "The format of the files you'd like to replicate",
+ "default": "csv",
+ "order": 20,
+ "type": "object",
+ "oneOf": [
+ {
+ "title": "CSV",
+ "description": "This connector utilises PyArrow (Apache Arrow) for CSV parsing.",
+ "type": "object",
+ "properties": {
+ "filetype": {
+ "title": "Filetype",
+ "const": "csv",
+ "type": "string"
+ },
+ "delimiter": {
+ "title": "Delimiter",
+ "description": "The character delimiting individual cells in the CSV data. This may only be a 1-character string. For tab-delimited data enter '\\t'.",
+ "default": ",",
+ "minLength": 1,
+ "order": 0,
+ "type": "string"
+ },
+ "infer_datatypes": {
+ "title": "Infer Datatypes",
+ "description": "Configures whether a schema for the source should be inferred from the current data or not. If set to false and a custom schema is set, then the manually enforced schema is used. If a schema is not manually set, and this is set to false, then all fields will be read as strings",
+ "default": true,
+ "order": 1,
+ "type": "boolean"
+ },
+ "quote_char": {
+ "title": "Quote Character",
+ "description": "The character used for quoting CSV values. To disallow quoting, make this field blank.",
+ "default": "\"",
+ "order": 2,
+ "type": "string"
+ },
+ "escape_char": {
+ "title": "Escape Character",
+ "description": "The character used for escaping special characters. To disallow escaping, leave this field blank.",
+ "order": 3,
+ "type": "string"
+ },
+ "encoding": {
+ "title": "Encoding",
+ "description": "The character encoding of the CSV data. Leave blank to default to UTF8. See list of python encodings for allowable options.",
+ "default": "utf8",
+ "order": 4,
+ "type": "string"
+ },
+ "double_quote": {
+ "title": "Double Quote",
+ "description": "Whether two quotes in a quoted CSV value denote a single quote in the data.",
+ "default": true,
+ "order": 5,
+ "type": "boolean"
+ },
+ "newlines_in_values": {
+ "title": "Allow newlines in values",
+ "description": "Whether newline characters are allowed in CSV values. Turning this on may affect performance. Leave blank to default to False.",
+ "default": false,
+ "order": 6,
+ "type": "boolean"
+ },
+ "additional_reader_options": {
+ "title": "Additional Reader Options",
+ "description": "Optionally add a valid JSON string here to provide additional options to the csv reader. Mappings must correspond to options detailed here. 'column_types' is used internally to handle schema so overriding that would likely cause problems.",
+ "examples": [
+ "{\"timestamp_parsers\": [\"%m/%d/%Y %H:%M\", \"%Y/%m/%d %H:%M\"], \"strings_can_be_null\": true, \"null_values\": [\"NA\", \"NULL\"]}"
+ ],
+ "order": 7,
+ "type": "string"
+ },
+ "advanced_options": {
+ "title": "Advanced Options",
+ "description": "Optionally add a valid JSON string here to provide additional Pyarrow ReadOptions. Specify 'column_names' here if your CSV doesn't have header, or if you want to use custom column names. 'block_size' and 'encoding' are already used above, specify them again here will override the values above.",
+ "examples": [
+ "{\"column_names\": [\"column1\", \"column2\"]}"
+ ],
+ "order": 8,
+ "type": "string"
+ },
+ "block_size": {
+ "title": "Block Size",
+ "description": "The chunk size in bytes to process at a time in memory from each file. If your data is particularly wide and failing during schema detection, increasing this should solve it. Beware of raising this too high as you could hit OOM errors.",
+ "default": 10000,
+ "minimum": 1,
+ "maximum": 2147483647,
+ "order": 9,
+ "type": "integer"
+ }
+ }
+ },
+ {
+ "title": "Parquet",
+ "description": "This connector utilises PyArrow (Apache Arrow) for Parquet parsing.",
+ "type": "object",
+ "properties": {
+ "filetype": {
+ "title": "Filetype",
+ "const": "parquet",
+ "type": "string"
+ },
+ "columns": {
+ "title": "Selected Columns",
+ "description": "If you only want to sync a subset of the columns from the file(s), add the columns you want here as a comma-delimited list. Leave it empty to sync all columns.",
+ "order": 0,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "batch_size": {
+ "title": "Record batch size",
+ "description": "Maximum number of records per batch read from the input files. Batches may be smaller if there aren’t enough rows in the file. This option can help avoid out-of-memory errors if your data is particularly wide.",
+ "default": 65536,
+ "order": 1,
+ "type": "integer"
+ },
+ "buffer_size": {
+ "title": "Buffer Size",
+ "description": "Perform read buffering when deserializing individual column chunks. By default every group column will be loaded fully to memory. This option can help avoid out-of-memory errors if your data is particularly wide.",
+ "default": 2,
+ "type": "integer"
+ }
+ }
+ },
+ {
+ "title": "Avro",
+ "description": "This connector utilises fastavro for Avro parsing.",
+ "type": "object",
+ "properties": {
+ "filetype": {
+ "title": "Filetype",
+ "const": "avro",
+ "type": "string"
+ }
+ }
+ },
+ {
+ "title": "Jsonl",
+ "description": "This connector uses PyArrow for JSON Lines (jsonl) file parsing.",
+ "type": "object",
+ "properties": {
+ "filetype": {
+ "title": "Filetype",
+ "const": "jsonl",
+ "type": "string"
+ },
+ "newlines_in_values": {
+ "title": "Allow newlines in values",
+ "description": "Whether newline characters are allowed in JSON values. Turning this on may affect performance. Leave blank to default to False.",
+ "default": false,
+ "order": 0,
+ "type": "boolean"
+ },
+ "unexpected_field_behavior": {
+ "title": "Unexpected field behavior",
+ "description": "How JSON fields outside of explicit_schema (if given) are treated. Check PyArrow documentation for details",
+ "default": "infer",
+ "examples": ["ignore", "infer", "error"],
+ "order": 1,
+ "enum": ["ignore", "infer", "error"]
+ },
+ "block_size": {
+ "title": "Block Size",
+ "description": "The chunk size in bytes to process at a time in memory from each file. If your data is particularly wide and failing during schema detection, increasing this should solve it. Beware of raising this too high as you could hit OOM errors.",
+ "default": 0,
+ "order": 2,
+ "type": "integer"
+ }
+ }
+ }
+ ]
+ },
+ "schema": {
+ "title": "Manually enforced data schema",
+ "description": "Optionally provide a schema to enforce, as a valid JSON string. Ensure this is a mapping of { \"column\" : \"type\" }, where types are valid JSON Schema datatypes. Leave as {} to auto-infer the schema.",
+ "default": "{}",
+ "examples": [
+ "{\"column_1\": \"number\", \"column_2\": \"string\", \"column_3\": \"array\", \"column_4\": \"object\", \"column_5\": \"boolean\"}"
+ ],
+ "order": 30,
+ "type": "string"
+ },
+ "provider": {
+ "title": "S3: Amazon Web Services",
+ "type": "object",
+ "properties": {
+ "bucket": {
+ "title": "Bucket",
+ "description": "Name of the S3 bucket where the file(s) exist.",
+ "order": 0,
+ "type": "string"
+ },
+ "aws_access_key_id": {
+ "title": "AWS Access Key ID",
+ "description": "In order to access private Buckets stored on AWS S3, this connector requires credentials with the proper permissions. If accessing publicly available data, this field is not necessary.",
+ "airbyte_secret": true,
+ "order": 1,
+ "type": "string"
+ },
+ "aws_secret_access_key": {
+ "title": "AWS Secret Access Key",
+ "description": "In order to access private Buckets stored on AWS S3, this connector requires credentials with the proper permissions. If accessing publicly available data, this field is not necessary.",
+ "airbyte_secret": true,
+ "order": 2,
+ "type": "string"
+ },
+ "path_prefix": {
+ "title": "Path Prefix",
+ "description": "By providing a path-like prefix (e.g. myFolder/thisTable/) under which all the relevant files sit, we can optimize finding these in S3. This is optional but recommended if your bucket contains many folders/files which you don't need to replicate.",
+ "default": "",
+ "order": 3,
+ "type": "string"
+ },
+ "endpoint": {
+ "title": "Endpoint",
+ "description": "Endpoint to an S3 compatible service. Leave empty to use AWS.",
+ "default": "",
+ "order": 4,
+ "type": "string"
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any file modified before this date will not be replicated.",
+ "examples": ["2021-01-01T00:00:00Z"],
+ "format": "date-time",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "order": 5,
+ "type": "string"
+ }
+ },
+ "required": ["bucket"],
+ "order": 11,
+ "description": "Use this to load files from S3 or S3-compatible services"
+ }
+ },
+ "required": ["dataset", "path_pattern", "provider"]
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [
+ "overwrite",
+ "append",
+ "append_dedup"
+ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["*.s3.amazonaws.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "41991d12-d4b5-439e-afd0-260a31d4c53f",
+ "name": "SalesLoft",
+ "dockerRepository": "airbyte/source-salesloft",
+ "dockerImageTag": "1.0.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/salesloft",
+ "icon": "salesloft.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/salesloft",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Salesloft Spec",
+ "type": "object",
+ "required": ["credentials", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "order": 0,
+ "type": "object",
+ "title": "Credentials",
+ "oneOf": [
+ {
+ "title": "Authenticate via OAuth",
+ "type": "object",
+ "required": [
+ "client_id",
+ "client_secret",
+ "refresh_token",
+ "access_token",
+ "token_expiry_date",
+ "auth_type"
+ ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "oauth2.0"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your Salesloft developer application."
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your Salesloft developer application.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "description": "The date-time when the access token should be refreshed.",
+ "format": "date-time"
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "The token for obtaining a new access token.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "Authenticate via API Key",
+ "type": "object",
+ "required": ["api_key", "auth_type"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "api_key"
+ },
+ "api_key": {
+ "type": "string",
+ "airbyte_secret": true,
+ "title": "API Key",
+ "description": "API Key for making authenticated requests. More instruction on how to find this value in our docs"
+ }
+ }
+ }
+ ]
+ },
+ "start_date": {
+ "order": 1,
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for Salesloft API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "examples": ["2020-11-16T00:00:00Z"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["api.salesloft.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "b117307c-14b6-41aa-9422-947e34922962",
+ "name": "Salesforce",
+ "dockerRepository": "airbyte/source-salesforce",
+ "dockerImageTag": "2.0.11",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/salesforce",
+ "icon": "salesforce.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/salesforce",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Salesforce Source Spec",
+ "type": "object",
+ "required": ["client_id", "client_secret", "refresh_token"],
+ "additionalProperties": true,
+ "properties": {
+ "is_sandbox": {
+ "title": "Sandbox",
+ "description": "Toggle if you're using a Salesforce Sandbox",
+ "type": "boolean",
+ "default": false,
+ "order": 1
+ },
+ "auth_type": {
+ "type": "string",
+ "const": "Client"
+ },
+ "client_id": {
+ "title": "Client ID",
+ "description": "Enter your Salesforce developer application's Client ID",
+ "type": "string",
+ "order": 2
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "description": "Enter your Salesforce developer application's Client secret",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "description": "Enter your application's Salesforce Refresh Token used for Airbyte to access your Salesforce account.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "start_date": {
+ "title": "Start Date",
+ "description": "Enter the date in the YYYY-MM-DD format. Airbyte will replicate the data added on and after this date. If this field is blank, Airbyte will replicate the data for last two years.",
+ "type": "string",
+ "pattern": "^([0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}Z)?)$",
+ "examples": ["2021-07-25", "2021-07-25T00:00:00Z"],
+ "format": "date-time",
+ "order": 5
+ },
+ "streams_criteria": {
+ "type": "array",
+ "order": 6,
+ "items": {
+ "type": "object",
+ "required": ["criteria", "value"],
+ "properties": {
+ "criteria": {
+ "type": "string",
+ "title": "Search criteria",
+ "enum": [
+ "starts with",
+ "ends with",
+ "contains",
+ "exacts",
+ "starts not with",
+ "ends not with",
+ "not contains",
+ "not exacts"
+ ],
+ "order": 1,
+ "default": "contains"
+ },
+ "value": {
+ "type": "string",
+ "title": "Search value",
+ "order": 2
+ }
+ }
+ },
+ "title": "Filter Salesforce Objects",
+ "description": "Filter streams relevant to you"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["auth_type"],
+ "predicate_value": "Client",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "is_sandbox": {
+ "type": "boolean",
+ "path_in_connector_config": ["is_sandbox"]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": ["refresh_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["*.salesforce.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "ec5f3102-fb31-4916-99ae-864faf8e7e25",
+ "name": "SAP Fieldglass",
+ "dockerRepository": "airbyte/source-sap-fieldglass",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sap-fieldglass",
+ "icon": "sapfieldglass.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sap-fieldglass",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Sap Fieldglass Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "8d7ef552-2c0f-11ec-8d3d-0242ac130003",
+ "name": "SearchMetrics",
+ "dockerRepository": "airbyte/source-search-metrics",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/search-metrics",
+ "icon": "searchmetrics.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/seacrh-metrics",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Search Metrics Spec",
+ "type": "object",
+ "required": [
+ "api_key",
+ "client_secret",
+ "country_code",
+ "start_date"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "",
+ "airbyte_secret": true
+ },
+ "country_code": {
+ "title": "Country Code",
+ "type": "string",
+ "default": "",
+ "description": "The region of the S3 staging bucket to use if utilising a copy strategy.",
+ "enum": [
+ "",
+ "AR",
+ "AU",
+ "AT",
+ "BE",
+ "BR",
+ "CA",
+ "CN",
+ "CO",
+ "DK",
+ "FI",
+ "FR",
+ "DE",
+ "HK",
+ "IN",
+ "IE",
+ "IT",
+ "JP",
+ "MX",
+ "NL",
+ "NO",
+ "PL",
+ "RU",
+ "SG",
+ "ZA",
+ "ES",
+ "SE",
+ "CH",
+ "TR",
+ "US",
+ "GB"
+ ],
+ "order": 2
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "Data generated in SearchMetrics after this date will be replicated. This date must be specified in the format YYYY-MM-DDT00:00:00Z.",
+ "examples": ["20200925"],
+ "pattern": "^[0-9]{4}[0-9]{2}[0-9]{2}$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "da9fc6b9-8059-4be0-b204-f56e22e4d52d",
+ "name": "Secoda",
+ "dockerRepository": "airbyte/source-secoda",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/secoda",
+ "icon": "secoda.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/secoda",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Secoda Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "Api Key",
+ "type": "string",
+ "description": "Your API Access Key. See here. The key is case sensitive.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "fbb5fbe2-16ad-4cf4-af7d-ff9d9c316c87",
+ "name": "Sendgrid",
+ "dockerRepository": "airbyte/source-sendgrid",
+ "dockerImageTag": "0.3.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sendgrid",
+ "icon": "sendgrid.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sendgrid",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Sendgrid Spec",
+ "type": "object",
+ "required": ["apikey"],
+ "additionalProperties": true,
+ "properties": {
+ "apikey": {
+ "title": "Sendgrid API key",
+ "airbyte_secret": true,
+ "type": "string",
+ "description": "API Key, use admin to generate this key.",
+ "order": 0
+ },
+ "start_time": {
+ "title": "Start time",
+ "type": "string",
+ "format": "date-time",
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(.\\d+)?Z$",
+ "description": "Start time in ISO8601 format. Any data before this time point will not be replicated.",
+ "examples": [
+ "2020-01-01T01:01:01Z",
+ "2020-01-01T01:01:01.000001Z"
+ ],
+ "order": 1
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["api.sendgrid.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "39de93cb-1511-473e-a673-5cbedb9436af",
+ "name": "Senseforce",
+ "dockerRepository": "airbyte/source-senseforce",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/senseforce",
+ "icon": "senseforce.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/senseforce",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Senseforce Source Spec",
+ "type": "object",
+ "required": [
+ "access_token",
+ "backend_url",
+ "dataset_id",
+ "start_date"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "title": "API Access Token",
+ "description": "Your API access token. See here. The toke is case sensitive.",
+ "airbyte_secret": true
+ },
+ "backend_url": {
+ "type": "string",
+ "title": "Senseforce backend URL",
+ "examples": ["https://galaxyapi.senseforce.io"],
+ "description": "Your Senseforce API backend URL. This is the URL shown during the Login screen. See here for more details. (Note: Most Senseforce backend APIs have the term 'galaxy' in their ULR)"
+ },
+ "dataset_id": {
+ "type": "string",
+ "title": "Dataset ID",
+ "examples": ["8f418098-ca28-4df5-9498-0df9fe78eda7"],
+ "description": "The ID of the dataset you want to synchronize. The ID can be found in the URL when opening the dataset. See here for more details. (Note: As the Senseforce API only allows to synchronize a specific dataset, each dataset you want to synchronize needs to be implemented as a separate airbyte source)."
+ },
+ "start_date": {
+ "type": "string",
+ "title": "The first day (in UTC) when to read data from.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "description": "UTC date and time in the format 2017-01-25. Only data with \"Timestamp\" after this date will be replicated. Important note: This start date must be set to the first day of where your dataset provides data. If your dataset has data from 2020-10-10 10:21:10, set the start_date to 2020-10-10 or later",
+ "examples": ["2017-01-25"],
+ "format": "date"
+ },
+ "slice_range": {
+ "type": "integer",
+ "title": "Data request time increment in days",
+ "default": 10,
+ "minimum": 1,
+ "maximum": 365,
+ "examples": [1, 3, 10, 30, 180, 360],
+ "airbyte_hidden": true,
+ "description": "The time increment used by the connector when requesting data from the Senseforce API. The bigger the value is, the less requests will be made and faster the sync will be. On the other hand, the more seldom the state is persisted and the more likely one could run into rate limites. Furthermore, consider that large chunks of time might take a long time for the Senseforce query to return data - meaning it could take in effect longer than with more smaller time slices. If there are a lot of data per day, set this setting to 1. If there is only very little data per day, you might change the setting to 10 or more."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": ["galaxyapi.senseforce.io", "senseforce.io"]
+ }
+ },
+ {
+ "sourceDefinitionId": "2e88fa20-a2f6-43cc-bba6-98a0a3f244fb",
+ "name": "Sendinblue",
+ "dockerRepository": "airbyte/source-sendinblue",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sendinblue",
+ "icon": "sendinblue.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sendinblue",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Sendinblue Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Your API Key. See here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "9da77001-af33-4bcd-be46-6252bf9342b9",
+ "name": "Shopify",
+ "dockerRepository": "airbyte/source-shopify",
+ "dockerImageTag": "0.3.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/shopify",
+ "icon": "shopify.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/shopify",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Shopify Source CDK Specifications",
+ "type": "object",
+ "required": ["shop", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "shop": {
+ "type": "string",
+ "title": "Shopify Store",
+ "description": "The name of your Shopify store found in the URL. For example, if your URL was https://NAME.myshopify.com, then the name would be 'NAME'.",
+ "order": 1
+ },
+ "credentials": {
+ "title": "Shopify Authorization Method",
+ "description": "The authorization method to use to retrieve data from Shopify",
+ "type": "object",
+ "order": 2,
+ "oneOf": [
+ {
+ "title": "API Password",
+ "description": "API Password Auth",
+ "type": "object",
+ "required": ["auth_method", "api_password"],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "api_password",
+ "order": 0
+ },
+ "api_password": {
+ "type": "string",
+ "title": "API Password",
+ "description": "The API Password for your private application in the `Shopify` store.",
+ "airbyte_secret": true,
+ "order": 1
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "description": "OAuth2.0",
+ "required": ["auth_method"],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of the Shopify developer application.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of the Shopify developer application.",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The Access Token for making authenticated requests.",
+ "airbyte_secret": true,
+ "order": 3
+ }
+ }
+ }
+ ]
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Replication Start Date",
+ "description": "The date you would like to replicate data from. Format: YYYY-MM-DD. Any data before this date will not be replicated.",
+ "examples": ["2021-01-01"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "format": "date",
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "auth_method"],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "shop": {
+ "type": "string",
+ "path_in_connector_config": ["shop"]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "access_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "2fed2292-5586-480c-af92-9944e39fe12d",
+ "name": "Short.io",
+ "dockerRepository": "airbyte/source-shortio",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/shortio",
+ "icon": "short.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://developers.short.io/reference",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Shortio Spec",
+ "type": "object",
+ "required": ["domain_id", "secret_key", "start_date"],
+ "properties": {
+ "domain_id": {
+ "type": "string",
+ "desciprtion": "Short.io Domain ID",
+ "title": "Domain ID",
+ "airbyte_secret": false
+ },
+ "secret_key": {
+ "type": "string",
+ "title": "Secret Key",
+ "description": "Short.io Secret Key",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "airbyte_secret": false
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "c2281cee-86f9-4a86-bb48-d23286b4c7bd",
+ "name": "Slack",
+ "dockerRepository": "airbyte/source-slack",
+ "dockerImageTag": "0.1.25",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/slack",
+ "icon": "slack.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/slack",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Slack Spec",
+ "type": "object",
+ "required": ["start_date", "lookback_window", "join_channels"],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": ["2017-01-25T00:00:00Z"],
+ "title": "Start Date",
+ "format": "date-time"
+ },
+ "lookback_window": {
+ "type": "integer",
+ "title": "Threads Lookback window (Days)",
+ "description": "How far into the past to look for messages in threads.",
+ "examples": [7, 14]
+ },
+ "join_channels": {
+ "type": "boolean",
+ "default": true,
+ "title": "Join all channels",
+ "description": "Whether to join all channels or to sync data only from channels the bot is already in. If false, you'll need to manually add the bot to all the channels from which you'd like to sync messages. "
+ },
+ "channel_filter": {
+ "type": "array",
+ "default": [],
+ "items": {
+ "type": "string",
+ "minLength": 0
+ },
+ "title": "Channel name filter",
+ "description": "A channel name list (without leading '#' char) which limit the channels from which you'd like to sync. Empty list means no filter.",
+ "examples": ["channel_one", "channel_two"]
+ },
+ "credentials": {
+ "title": "Authentication mechanism",
+ "description": "Choose how to authenticate into Slack",
+ "type": "object",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "Sign in via Slack (OAuth)",
+ "required": [
+ "option_title",
+ "client_id",
+ "client_secret",
+ "access_token"
+ ],
+ "properties": {
+ "option_title": {
+ "type": "string",
+ "const": "Default OAuth2.0 authorization"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "Slack client_id. See our docs if you need help finding this id."
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "Slack client_secret. See our docs if you need help finding this secret.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access token",
+ "description": "Slack access_token. See our docs if you need help generating the token.",
+ "airbyte_secret": true
+ }
+ },
+ "order": 0
+ },
+ {
+ "type": "object",
+ "title": "API Token",
+ "required": ["option_title", "api_token"],
+ "properties": {
+ "option_title": {
+ "type": "string",
+ "const": "API Token Credentials"
+ },
+ "api_token": {
+ "type": "string",
+ "title": "API Token",
+ "description": "A Slack bot token. See the docs for instructions on how to generate it.",
+ "airbyte_secret": true
+ }
+ },
+ "order": 1
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "option_title"],
+ "predicate_value": "Default OAuth2.0 authorization",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "access_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["slack.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "781f8b1d-4e20-4842-a2c3-cd9b119d65fa",
+ "name": "Smaily",
+ "dockerRepository": "airbyte/source-smaily",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/smaily",
+ "icon": "smaily.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/smaily",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Smaily Spec",
+ "type": "object",
+ "required": ["api_subdomain", "api_username", "api_password"],
+ "additionalProperties": true,
+ "properties": {
+ "api_subdomain": {
+ "type": "string",
+ "title": "API Subdomain",
+ "description": "API Subdomain. See https://smaily.com/help/api/general/create-api-user/"
+ },
+ "api_username": {
+ "type": "string",
+ "title": "API User Username",
+ "description": "API user username. See https://smaily.com/help/api/general/create-api-user/"
+ },
+ "api_password": {
+ "type": "string",
+ "title": "API User Password",
+ "description": "API user password. See https://smaily.com/help/api/general/create-api-user/",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "21cc4a17-a011-4485-8a3e-e2341a91ab9f",
+ "name": "SmartEngage",
+ "dockerRepository": "airbyte/source-smartengage",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/smartengage",
+ "icon": "smartengage.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/smartengage",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "SmartEngage Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "API Key",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "374ebc65-6636-4ea0-925c-7d35999a8ffc",
+ "name": "Smartsheets",
+ "dockerRepository": "airbyte/source-smartsheets",
+ "dockerImageTag": "1.0.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/smartsheets",
+ "icon": "smartsheet.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/smartsheets",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Smartsheets Source Spec",
+ "type": "object",
+ "required": ["credentials", "spreadsheet_id"],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "order": 0,
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [
+ "client_id",
+ "client_secret",
+ "refresh_token",
+ "access_token",
+ "token_expiry_date"
+ ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "oauth2.0"
+ },
+ "client_id": {
+ "type": "string",
+ "description": "The API ID of the SmartSheets developer application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "description": "The API Secret the SmartSheets developer application.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "description": "The date-time when the access token should be refreshed.",
+ "format": "date-time"
+ },
+ "refresh_token": {
+ "type": "string",
+ "description": "The key to refresh the expired access_token.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "API Access Token",
+ "type": "object",
+ "required": ["access_token"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "access_token"
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The access token to use for accessing your data from Smartsheets. This access token must be generated by a user with at least read access to the data you'd like to replicate. Generate an access token in the Smartsheets main menu by clicking Account > Apps & Integrations > API Access. See the setup guide for information on how to obtain this token.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ },
+ "spreadsheet_id": {
+ "title": "Sheet ID",
+ "description": "The spreadsheet ID. Find it by opening the spreadsheet then navigating to File > Properties",
+ "type": "string",
+ "order": 1
+ },
+ "start_datetime": {
+ "title": "Start Datetime",
+ "type": "string",
+ "examples": ["2000-01-01T13:00:00", "2000-01-01T13:00:00-07:00"],
+ "description": "Only rows modified after this date/time will be replicated. This should be an ISO 8601 string, for instance: `2000-01-01T13:00:00`",
+ "format": "date-time",
+ "default": "2020-01-01T00:00:00+00:00",
+ "order": 2,
+ "airbyte_hidden": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "auth_type"],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "access_token"]
+ },
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "refresh_token"]
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "format": "date-time",
+ "path_in_connector_config": [
+ "credentials",
+ "token_expiry_date"
+ ]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["app.smartsheet.com", "api.smartsheet.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "200330b2-ea62-4d11-ac6d-cfe3e3f8ab2b",
+ "name": "Snapchat Marketing",
+ "dockerRepository": "airbyte/source-snapchat-marketing",
+ "dockerImageTag": "0.1.16",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/snapchat-marketing",
+ "icon": "snapchat.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/snapchat-marketing",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Snapchat Marketing Spec",
+ "type": "object",
+ "required": ["client_id", "client_secret", "refresh_token"],
+ "properties": {
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your Snapchat developer application.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The Client Secret of your Snapchat developer application.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "Refresh Token to renew the expired Access Token.",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "Date in the format 2022-01-01. Any data before this date will not be replicated.",
+ "examples": ["2022-01-01"],
+ "default": "2022-01-01",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 3,
+ "format": "date"
+ },
+ "end_date": {
+ "type": "string",
+ "title": "End Date",
+ "description": "Date in the format 2017-01-25. Any data after this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": ["2022-01-30"],
+ "order": 4,
+ "format": "date"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": [],
+ "oauthFlowInitParameters": [["client_id"], ["client_secret"]],
+ "oauthFlowOutputParameters": [["refresh_token"]]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["accounts.snapchat.com", "adsapi.snapchat.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "e2d65910-8c8b-40a1-ae7d-ee2416b2bfa2",
+ "name": "Snowflake",
+ "dockerRepository": "airbyte/source-snowflake",
+ "dockerImageTag": "0.1.34",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/snowflake",
+ "icon": "snowflake.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/snowflake",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Snowflake Source Spec",
+ "type": "object",
+ "required": ["host", "role", "warehouse", "database"],
+ "properties": {
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "order": 0,
+ "required": ["client_id", "client_secret", "auth_type"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "OAuth",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your Snowflake developer application.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your Snowflake developer application.",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true,
+ "order": 3
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "Refresh Token for making authenticated requests.",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Username and Password",
+ "type": "object",
+ "required": ["username", "password", "auth_type"],
+ "order": 1,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "username/password",
+ "order": 0
+ },
+ "username": {
+ "description": "The username you created to allow Airbyte to access the database.",
+ "examples": ["AIRBYTE_USER"],
+ "type": "string",
+ "title": "Username",
+ "order": 1
+ },
+ "password": {
+ "description": "The password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "title": "Password",
+ "order": 2
+ }
+ }
+ }
+ ],
+ "order": 0
+ },
+ "host": {
+ "description": "The host domain of the snowflake instance (must include the account, region, cloud environment, and end with snowflakecomputing.com).",
+ "examples": ["accountname.us-east-2.aws.snowflakecomputing.com"],
+ "type": "string",
+ "title": "Account Name",
+ "order": 1
+ },
+ "role": {
+ "description": "The role you created for Airbyte to access Snowflake.",
+ "examples": ["AIRBYTE_ROLE"],
+ "type": "string",
+ "title": "Role",
+ "order": 2
+ },
+ "warehouse": {
+ "description": "The warehouse you created for Airbyte to access data.",
+ "examples": ["AIRBYTE_WAREHOUSE"],
+ "type": "string",
+ "title": "Warehouse",
+ "order": 3
+ },
+ "database": {
+ "description": "The database you created for Airbyte to access data.",
+ "examples": ["AIRBYTE_DATABASE"],
+ "type": "string",
+ "title": "Database",
+ "order": 4
+ },
+ "schema": {
+ "description": "The source Snowflake schema tables. Leave empty to access tables from multiple schemas.",
+ "examples": ["AIRBYTE_SCHEMA"],
+ "type": "string",
+ "title": "Schema",
+ "order": 5
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 6
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "auth_type"],
+ "predicate_value": "OAuth",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "path_in_connector_config": ["host"]
+ },
+ "role": {
+ "type": "string",
+ "path_in_connector_config": ["role"]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "access_token"]
+ },
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "refresh_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": ["${host}"]
+ }
+ },
+ {
+ "sourceDefinitionId": "3ab1d7d0-1577-4ab9-bcc4-1ff6a4c2c9f2",
+ "name": "Sonar Cloud",
+ "dockerRepository": "airbyte/source-sonar-cloud",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sonar-cloud",
+ "icon": "sonarcloud.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sonar-cloud",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Sonar Cloud Spec",
+ "type": "object",
+ "required": ["user_token", "organization", "component_keys"],
+ "additionalProperties": true,
+ "properties": {
+ "user_token": {
+ "title": "User Token",
+ "type": "string",
+ "description": "Your User Token. See here. The token is case sensitive.",
+ "airbyte_secret": true
+ },
+ "organization": {
+ "title": "Organization",
+ "type": "string",
+ "description": "Organization key. See here.",
+ "examples": ["airbyte"]
+ },
+ "component_keys": {
+ "title": "Component Keys",
+ "type": "array",
+ "description": "Comma-separated list of component keys.",
+ "examples": ["airbyte-ws-order", "airbyte-ws-checkout"]
+ },
+ "start_date": {
+ "title": "Start date",
+ "type": "string",
+ "description": "To retrieve issues created after the given date (inclusive).",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": ["YYYY-MM-DD"],
+ "format": "date"
+ },
+ "end_date": {
+ "title": "End date",
+ "type": "string",
+ "description": "To retrieve issues created before the given date (inclusive).",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": ["YYYY-MM-DD"],
+ "format": "date"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": ["sonarcloud.io"]
+ }
+ },
+ {
+ "sourceDefinitionId": "62235e65-af7a-4138-9130-0bda954eb6a8",
+ "name": "SpaceX API",
+ "dockerRepository": "airbyte/source-spacex-api",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/spacex-api",
+ "icon": "spacex.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/spacex-api",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Spacex Api Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "id": {
+ "title": "Unique ID for specific source target",
+ "type": "string",
+ "desciption": "Optional, For a specific ID"
+ },
+ "options": {
+ "title": "Configuration options for endpoints",
+ "type": "string",
+ "desciption": "Optional, Possible values for an endpoint. Example values for launches-latest, upcoming, past"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "77225a51-cd15-4a13-af02-65816bd0ecf4",
+ "name": "Square",
+ "dockerRepository": "airbyte/source-square",
+ "dockerImageTag": "0.2.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/square",
+ "icon": "square.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/square",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Square Spec",
+ "type": "object",
+ "required": ["is_sandbox"],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authentication",
+ "description": "Choose how to authenticate to Square.",
+ "type": "object",
+ "order": 0,
+ "oneOf": [
+ {
+ "title": "Oauth authentication",
+ "type": "object",
+ "required": [
+ "auth_type",
+ "client_id",
+ "client_secret",
+ "refresh_token"
+ ],
+ "properties": {
+ "credentials_title": {
+ "type": "string",
+ "const": "OAuth Credentials",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Square-issued ID of your application",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Square-issued application secret for your application",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "A refresh token generated using the above client ID and secret",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "API key",
+ "type": "object",
+ "required": ["auth_type", "api_key"],
+ "properties": {
+ "credentials_title": {
+ "type": "string",
+ "const": "API Key",
+ "order": 0
+ },
+ "api_key": {
+ "type": "string",
+ "title": "API key token",
+ "description": "The API key for a Square application",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ },
+ "is_sandbox": {
+ "type": "boolean",
+ "description": "Determines whether to use the sandbox or production environment.",
+ "title": "Sandbox",
+ "default": false,
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "description": "UTC date in the format YYYY-MM-DD. Any data before this date will not be replicated. If not set, all data will be replicated.",
+ "title": "Start Date",
+ "default": "2021-01-01",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": "2,",
+ "format": "date"
+ },
+ "include_deleted_objects": {
+ "type": "boolean",
+ "description": "In some streams there is an option to include deleted objects (Items, Categories, Discounts, Taxes)",
+ "title": "Include Deleted Objects",
+ "default": false,
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": ["credentials", "0"],
+ "oauthFlowInitParameters": [["client_id"], ["client_secret"]],
+ "oauthFlowOutputParameters": [["refresh_token"]]
+ }
+ },
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "auth_type"],
+ "predicate_value": "Oauth",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "refresh_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["connect.squareupsandbox.com", "connect.squareup.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "7a4327c4-315a-11ec-8d3d-0242ac130003",
+ "name": "Strava",
+ "dockerRepository": "airbyte/source-strava",
+ "dockerImageTag": "0.1.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/strava",
+ "icon": "strava.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/strava",
+ "connectionSpecification": {
+ "$schema": "https://json-schema.org/draft-07/schema#",
+ "title": "Strava Spec",
+ "type": "object",
+ "required": [
+ "client_id",
+ "client_secret",
+ "refresh_token",
+ "athlete_id",
+ "start_date"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "Client",
+ "enum": ["Client"],
+ "default": "Client"
+ },
+ "client_id": {
+ "type": "string",
+ "description": "The Client ID of your Strava developer application.",
+ "title": "Client ID",
+ "pattern": "^[0-9_\\-]+$",
+ "examples": ["12345"],
+ "order": 0
+ },
+ "client_secret": {
+ "type": "string",
+ "description": "The Client Secret of your Strava developer application.",
+ "title": "Client Secret",
+ "pattern": "^[0-9a-fA-F]+$",
+ "examples": ["fc6243f283e51f6ca989aab298b17da125496f50"],
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "refresh_token": {
+ "type": "string",
+ "description": "The Refresh Token with the activity: read_all permissions.",
+ "title": "Refresh Token",
+ "pattern": "^[0-9a-fA-F]+$",
+ "examples": ["fc6243f283e51f6ca989aab298b17da125496f50"],
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "athlete_id": {
+ "type": "integer",
+ "description": "The Athlete ID of your Strava developer application.",
+ "title": "Athlete ID",
+ "pattern": "^[0-9_\\-]+$",
+ "examples": ["17831421"],
+ "order": 3
+ },
+ "start_date": {
+ "type": "string",
+ "description": "UTC date and time. Any data before this date will not be replicated.",
+ "title": "Start Date",
+ "examples": ["2021-03-01T00:00:00Z"],
+ "format": "date-time",
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["auth_type"],
+ "predicate_value": "Client",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": ["refresh_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["strava.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "74cbd708-46c3-4512-9c93-abd5c3e9a94d",
+ "name": "Statuspage",
+ "dockerRepository": "airbyte/source-statuspage",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/statuspage",
+ "icon": "statuspage.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/statuspage",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Statuspage Spec",
+ "type": "object",
+ "required": ["api_key"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Your API Key. See here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "e094cb9a-26de-4645-8761-65c0c425d1de",
+ "name": "Stripe",
+ "dockerRepository": "airbyte/source-stripe",
+ "dockerImageTag": "3.4.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/stripe",
+ "icon": "stripe.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/stripe",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Stripe Source Spec",
+ "type": "object",
+ "required": ["client_secret", "account_id", "start_date"],
+ "properties": {
+ "account_id": {
+ "type": "string",
+ "title": "Account ID",
+ "description": "Your Stripe account ID (starts with 'acct_', find yours here).",
+ "order": 0
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Secret Key",
+ "description": "Stripe API key (usually starts with 'sk_live_'; find yours here).",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Replication start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Only data generated after this date will be replicated.",
+ "examples": ["2017-01-25T00:00:00Z"],
+ "format": "date-time",
+ "order": 2
+ },
+ "lookback_window_days": {
+ "type": "integer",
+ "title": "Lookback Window in days",
+ "default": 0,
+ "minimum": 0,
+ "description": "When set, the connector will always re-export data from the past N days, where N is the value set here. This is useful if your data is frequently updated after creation. More info here",
+ "order": 3
+ },
+ "slice_range": {
+ "type": "integer",
+ "title": "Data request time increment in days",
+ "default": 365,
+ "minimum": 1,
+ "examples": [1, 3, 10, 30, 180, 360],
+ "description": "The time increment used by the connector when requesting data from the Stripe API. The bigger the value is, the less requests will be made and faster the sync will be. On the other hand, the more seldom the state is persisted.",
+ "order": 4
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["api.stripe.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "dd4632f4-15e0-4649-9b71-41719fb1fdee",
+ "name": "SurveyCTO",
+ "dockerRepository": "airbyte/source-surveycto",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/surveycto",
+ "icon": "surveycto.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/surveycto",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Surveycto Spec",
+ "type": "object",
+ "required": ["server_name", "username", "password", "form_id"],
+ "properties": {
+ "server_name": {
+ "type": "string",
+ "title": "Server Name",
+ "description": "The name of the SurveryCTO server",
+ "order": 0
+ },
+ "username": {
+ "type": "string",
+ "title": "Username",
+ "description": "Username to authenticate into the SurveyCTO server",
+ "order": 1
+ },
+ "password": {
+ "type": "string",
+ "title": "Password",
+ "description": "Password to authenticate into the SurveyCTO server",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "form_id": {
+ "type": "array",
+ "title": "Form's Id",
+ "description": "Unique identifier for one of your forms",
+ "order": 3
+ },
+ "start_date": {
+ "type": "string",
+ "description": "initial date for survey cto",
+ "title": "Start Date",
+ "examples": ["Jan 09, 2022 00:00:00 AM"],
+ "default": "Jan 09, 2022 00:00:00 AM",
+ "order": 4,
+ "pattern": "^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{2}, [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} (AM|PM)$"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "badc5925-0485-42be-8caa-b34096cb71b5",
+ "name": "SurveyMonkey",
+ "dockerRepository": "airbyte/source-surveymonkey",
+ "dockerImageTag": "0.1.16",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/surveymonkey",
+ "icon": "surveymonkey.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/surveymonkey",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "SurveyMonkey Spec",
+ "type": "object",
+ "required": ["start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "origin": {
+ "type": "string",
+ "order": 1,
+ "enum": ["USA", "Europe", "Canada"],
+ "default": "USA",
+ "title": "Origin datacenter of the SurveyMonkey account",
+ "description": "Depending on the originating datacenter of the SurveyMonkey account, the API access URL may be different."
+ },
+ "credentials": {
+ "title": "SurveyMonkey Authorization Method",
+ "description": "The authorization method to use to retrieve data from SurveyMonkey",
+ "type": "object",
+ "required": ["auth_method", "access_token"],
+ "order": 2,
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of the SurveyMonkey developer application.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of the SurveyMonkey developer application.",
+ "airbyte_secret": true,
+ "order": 2
+ },
+ "access_token": {
+ "title": "Access Token",
+ "order": 3,
+ "type": "string",
+ "airbyte_secret": true,
+ "description": "Access Token for making authenticated requests. See the docs for information on how to generate this key."
+ }
+ }
+ },
+ "start_date": {
+ "title": "Start Date",
+ "order": 3,
+ "type": "string",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z?$",
+ "examples": ["2021-01-01T00:00:00Z"],
+ "format": "date-time"
+ },
+ "survey_ids": {
+ "type": "array",
+ "order": 4,
+ "items": {
+ "type": "string",
+ "pattern": "^[0-9]{8,9}$"
+ },
+ "title": "Survey Monkey survey IDs",
+ "description": "IDs of the surveys from which you'd like to replicate data. If left empty, data from all boards to which you have access will be replicated."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "auth_method"],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "origin": {
+ "type": "string",
+ "path_in_connector_config": ["origin"]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "access_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["api.surveymonkey.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "4a4d887b-0f2d-4b33-ab7f-9b01b9072804",
+ "name": "SurveySparrow",
+ "dockerRepository": "airbyte/source-survey-sparrow",
+ "dockerImageTag": "0.2.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/survey-sparrow",
+ "icon": "surveysparrow.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/surveysparrow",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Survey Sparrow Spec",
+ "type": "object",
+ "required": ["access_token"],
+ "additionalProperties": true,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "description": "Your access token. See here. The key is case sensitive.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "survey_id": {
+ "type": "array",
+ "description": "A List of your survey ids for survey-specific stream",
+ "order": 2
+ },
+ "region": {
+ "title": "Base URL",
+ "type": "object",
+ "description": "Is your account location is EU based? If yes, the base url to retrieve data will be different.",
+ "oneOf": [
+ {
+ "title": "EU-based account",
+ "type": "object",
+ "properties": {
+ "url_base": {
+ "type": "string",
+ "const": "https://eu-api.surveysparrow.com/v3"
+ }
+ }
+ },
+ {
+ "title": "Global account",
+ "type": "object",
+ "properties": {
+ "url_base": {
+ "type": "string",
+ "const": "https://api.surveysparrow.com/v3"
+ }
+ }
+ }
+ ],
+ "default": {
+ "title": "Global account",
+ "type": "object",
+ "properties": {
+ "url_base": {
+ "type": "string",
+ "const": "https://api.surveysparrow.com/v3"
+ }
+ }
+ },
+ "order": 1
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "f00d2cf4-3c28-499a-ba93-b50b6f26359e",
+ "name": "TalkDesk Explore",
+ "dockerRepository": "airbyte/source-talkdesk-explore",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/talkdesk-explore",
+ "icon": "talkdesk-explore.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Talkdesk Explore API Spec",
+ "type": "object",
+ "required": ["start_date", "auth_url", "api_key"],
+ "additionalProperties": false,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "START DATE",
+ "description": "The date from which you'd like to replicate data for Talkdesk Explore API, in the format YYYY-MM-DDT00:00:00. All data generated after this date will be replicated.",
+ "examples": ["2020-10-15T00:00:00"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$",
+ "order": 0
+ },
+ "timezone": {
+ "type": "string",
+ "title": "TIMEZONE",
+ "description": "Timezone to use when generating reports. Only IANA timezones are supported (https://nodatime.org/TimeZones)",
+ "examples": ["Europe/London", "America/Los_Angeles"],
+ "default": "UTC",
+ "order": 1
+ },
+ "auth_url": {
+ "title": "AUTH URL",
+ "type": "string",
+ "description": "Talkdesk Auth URL. Only 'client_credentials' auth type supported at the moment.",
+ "examples": [
+ "https://xxxxxx.talkdeskid.com/oauth/token?grant_type=client_credentials"
+ ],
+ "order": 2
+ },
+ "api_key": {
+ "title": "API KEY",
+ "type": "string",
+ "description": "Talkdesk API key.",
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "d1aa448b-7c54-498e-ad95-263cbebcd2db",
+ "name": "Tempo",
+ "dockerRepository": "airbyte/source-tempo",
+ "dockerImageTag": "0.3.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tempo",
+ "icon": "tempo.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Tempo Spec",
+ "type": "object",
+ "required": ["api_token"],
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "title": "API token",
+ "description": "Tempo API Token. Go to Tempo>Settings, scroll down to Data Access and select API integration.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["api.tempo.io"]
+ }
+ },
+ {
+ "sourceDefinitionId": "aa8ba6fd-4875-d94e-fc8d-4e1e09aa2503",
+ "name": "Teradata",
+ "dockerRepository": "airbyte/source-teradata",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/teradata",
+ "icon": "teradata.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/teradata",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Teradata Source Spec",
+ "type": "object",
+ "required": ["host", "database", "username"],
+ "properties": {
+ "host": {
+ "title": "Host",
+ "description": "Hostname of the database.",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "title": "Port",
+ "description": "Port of the database.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 3306,
+ "examples": ["3306"],
+ "order": 1
+ },
+ "database": {
+ "title": "Database",
+ "description": "Name of the database.",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "title": "Username",
+ "description": "Username to use to access the database.",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "title": "Password",
+ "description": "Password associated with the username.",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "jdbc_url_params": {
+ "title": "JDBC URL params",
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3)",
+ "type": "string",
+ "order": 5
+ },
+ "replication_method": {
+ "title": "Replication method",
+ "description": "Replication method to use for extracting data from the database. STANDARD replication requires no setup on the DB side but will not be able to represent deletions incrementally. CDC uses the Binlog to detect inserts, updates, and deletes. This needs to be configured on the source database itself.",
+ "type": "string",
+ "order": 6,
+ "default": "STANDARD",
+ "enum": ["STANDARD", "CDC"]
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL. When activating SSL, please select one of the connection modes.",
+ "type": "boolean",
+ "default": false,
+ "order": 7
+ },
+ "ssl_mode": {
+ "title": "SSL Modes",
+ "description": "SSL connection modes. \n disable - Chose this mode to disable encryption of communication between Airbyte and destination database\n allow - Chose this mode to enable encryption only when required by the destination database\n prefer - Chose this mode to allow unencrypted connection only if the destination database does not support encryption\n require - Chose this mode to always require encryption. If the destination database server does not support encryption, connection will fail\n verify-ca - Chose this mode to always require encryption and to verify that the destination database server has a valid SSL certificate\n verify-full - This is the most secure mode. Chose this mode to always require encryption and to verify the identity of the destination database server\n See more information - in the docs.",
+ "type": "object",
+ "order": 8,
+ "oneOf": [
+ {
+ "title": "disable",
+ "additionalProperties": true,
+ "description": "Disable SSL.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "disable",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "allow",
+ "additionalProperties": true,
+ "description": "Allow SSL mode.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "allow",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "prefer",
+ "additionalProperties": true,
+ "description": "Prefer SSL mode.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "prefer",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "require",
+ "additionalProperties": true,
+ "description": "Require SSL mode.",
+ "required": ["mode"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "require",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "verify-ca",
+ "additionalProperties": true,
+ "description": "Verify-ca SSL mode.",
+ "required": ["mode", "ssl_ca_certificate"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-ca",
+ "order": 0
+ },
+ "ssl_ca_certificate": {
+ "type": "string",
+ "title": "CA certificate",
+ "description": "Specifies the file name of a PEM file that contains Certificate Authority (CA) certificates for use with SSLMODE=verify-ca.\n See more information - in the docs.",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ }
+ }
+ },
+ {
+ "title": "verify-full",
+ "additionalProperties": true,
+ "description": "Verify-full SSL mode.",
+ "required": ["mode", "ssl_ca_certificate"],
+ "properties": {
+ "mode": {
+ "type": "string",
+ "const": "verify-full",
+ "order": 0
+ },
+ "ssl_ca_certificate": {
+ "type": "string",
+ "title": "CA certificate",
+ "description": "Specifies the file name of a PEM file that contains Certificate Authority (CA) certificates for use with SSLMODE=verify-full.\n See more information - in the docs.",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": ["${host}"]
+ }
+ },
+ {
+ "sourceDefinitionId": "0dad1a35-ccf8-4d03-b73e-6788c00b13ae",
+ "name": "TiDB",
+ "dockerRepository": "airbyte/source-tidb",
+ "dockerImageTag": "0.2.4",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tidb",
+ "icon": "tidb.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tidb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "TiDB Source Spec",
+ "type": "object",
+ "required": ["host", "port", "database", "username"],
+ "properties": {
+ "host": {
+ "description": "Hostname of the database.",
+ "title": "Host",
+ "type": "string",
+ "order": 0
+ },
+ "port": {
+ "description": "Port of the database.",
+ "title": "Port",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 4000,
+ "examples": ["4000"],
+ "order": 1
+ },
+ "database": {
+ "description": "Name of the database.",
+ "title": "Database",
+ "type": "string",
+ "order": 2
+ },
+ "username": {
+ "description": "Username to use to access the database.",
+ "title": "Username",
+ "type": "string",
+ "order": 3
+ },
+ "password": {
+ "description": "Password associated with the username.",
+ "title": "Password",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ },
+ "jdbc_url_params": {
+ "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3)",
+ "title": "JDBC URL Params",
+ "type": "string",
+ "order": 5
+ },
+ "ssl": {
+ "title": "SSL Connection",
+ "description": "Encrypt data using SSL.",
+ "type": "boolean",
+ "default": false,
+ "order": 6
+ },
+ "tunnel_method": {
+ "type": "object",
+ "title": "SSH Tunnel Method",
+ "description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
+ "oneOf": [
+ {
+ "title": "No Tunnel",
+ "required": ["tunnel_method"],
+ "properties": {
+ "tunnel_method": {
+ "description": "No ssh tunnel needed to connect to database",
+ "type": "string",
+ "const": "NO_TUNNEL",
+ "order": 0
+ }
+ }
+ },
+ {
+ "title": "SSH Key Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "ssh_key"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host.",
+ "type": "string",
+ "order": 3
+ },
+ "ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 4
+ }
+ }
+ },
+ {
+ "title": "Password Authentication",
+ "required": [
+ "tunnel_method",
+ "tunnel_host",
+ "tunnel_port",
+ "tunnel_user",
+ "tunnel_user_password"
+ ],
+ "properties": {
+ "tunnel_method": {
+ "description": "Connect through a jump server tunnel host using username and password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "tunnel_host": {
+ "title": "SSH Tunnel Jump Server Host",
+ "description": "Hostname of the jump server host that allows inbound ssh tunnel.",
+ "type": "string",
+ "order": 1
+ },
+ "tunnel_port": {
+ "title": "SSH Connection Port",
+ "description": "Port on the proxy/jump server that accepts inbound ssh connections.",
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65536,
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "tunnel_user": {
+ "title": "SSH Login Username",
+ "description": "OS-level username for logging into the jump server host",
+ "type": "string",
+ "order": 3
+ },
+ "tunnel_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 4
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": ["${host}", "${tunnel_method.tunnel_host}"]
+ }
+ },
+ {
+ "sourceDefinitionId": "4bfac00d-ce15-44ff-95b9-9e3c3e8fbd35",
+ "name": "TikTok Marketing",
+ "dockerRepository": "airbyte/source-tiktok-marketing",
+ "dockerImageTag": "3.0.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tiktok-marketing",
+ "icon": "tiktok.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tiktok-marketing",
+ "changelogUrl": "https://docs.airbyte.com/integrations/sources/tiktok-marketing",
+ "connectionSpecification": {
+ "title": "TikTok Marketing Source Spec",
+ "type": "object",
+ "properties": {
+ "credentials": {
+ "title": "Authentication Method",
+ "description": "Authentication method",
+ "default": {},
+ "order": 0,
+ "type": "object",
+ "oneOf": [
+ {
+ "title": "OAuth2.0",
+ "type": "object",
+ "properties": {
+ "auth_type": {
+ "title": "Auth Type",
+ "const": "oauth2.0",
+ "order": 0,
+ "type": "string"
+ },
+ "app_id": {
+ "title": "App ID",
+ "description": "The Developer Application App ID.",
+ "airbyte_secret": true,
+ "type": "string"
+ },
+ "secret": {
+ "title": "Secret",
+ "description": "The Developer Application Secret.",
+ "airbyte_secret": true,
+ "type": "string"
+ },
+ "access_token": {
+ "title": "Access Token",
+ "description": "Long-term Authorized Access Token.",
+ "airbyte_secret": true,
+ "type": "string"
+ },
+ "advertiser_id": {
+ "title": "Advertiser ID",
+ "description": "The Advertiser ID to filter reports and streams. Let this empty to retrieve all.",
+ "type": "string"
+ }
+ },
+ "required": ["app_id", "secret", "access_token"]
+ },
+ {
+ "title": "Sandbox Access Token",
+ "type": "object",
+ "properties": {
+ "auth_type": {
+ "title": "Auth Type",
+ "const": "sandbox_access_token",
+ "order": 0,
+ "type": "string"
+ },
+ "advertiser_id": {
+ "title": "Advertiser ID",
+ "description": "The Advertiser ID which generated for the developer's Sandbox application.",
+ "type": "string"
+ },
+ "access_token": {
+ "title": "Access Token",
+ "description": "The long-term authorized access token.",
+ "airbyte_secret": true,
+ "type": "string"
+ }
+ },
+ "required": ["advertiser_id", "access_token"]
+ }
+ ]
+ },
+ "start_date": {
+ "title": "Replication Start Date",
+ "description": "The Start Date in format: YYYY-MM-DD. Any data before this date will not be replicated. If this parameter is not set, all data will be replicated.",
+ "default": "2016-09-01",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 1,
+ "type": "string",
+ "format": "date"
+ },
+ "end_date": {
+ "title": "End Date",
+ "description": "The date until which you'd like to replicate data for all incremental streams, in the format YYYY-MM-DD. All data generated between start_date and this date will be replicated. Not setting this option will result in always syncing the data till the current date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "order": 2,
+ "type": "string",
+ "format": "date"
+ },
+ "attribution_window": {
+ "title": "Attribution Window",
+ "description": "The attribution window in days.",
+ "default": 0,
+ "order": 3,
+ "type": "integer"
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [
+ "overwrite",
+ "append",
+ "append_dedup"
+ ],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "auth_type"],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "title": "CompleteOauthOutputSpecification",
+ "type": "object",
+ "properties": {
+ "access_token": {
+ "title": "Access Token",
+ "path_in_connector_config": ["credentials", "access_token"],
+ "type": "string"
+ }
+ },
+ "required": ["access_token"]
+ },
+ "complete_oauth_server_input_specification": {
+ "title": "CompleteOauthServerInputSpecification",
+ "type": "object",
+ "properties": {
+ "app_id": {
+ "title": "App Id",
+ "type": "string"
+ },
+ "secret": {
+ "title": "Secret",
+ "type": "string"
+ }
+ },
+ "required": ["app_id", "secret"]
+ },
+ "complete_oauth_server_output_specification": {
+ "title": "CompleteOauthServerOutputSpecification",
+ "type": "object",
+ "properties": {
+ "app_id": {
+ "title": "App Id",
+ "path_in_connector_config": ["credentials", "app_id"],
+ "type": "string"
+ },
+ "secret": {
+ "title": "Secret",
+ "path_in_connector_config": ["credentials", "secret"],
+ "type": "string"
+ }
+ },
+ "required": ["app_id", "secret"]
+ }
+ }
+ },
+ "additionalProperties": true
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["sandbox-ads.tiktok.com", "business-api.tiktok.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "bc617b5f-1b9e-4a2d-bebe-782fd454a771",
+ "name": "Timely",
+ "dockerRepository": "airbyte/source-timely",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/timely",
+ "icon": "timely.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Timely Integration Spec",
+ "type": "object",
+ "required": ["account_id", "start_date", "bearer_token"],
+ "additionalProperties": false,
+ "properties": {
+ "account_id": {
+ "title": "account_id",
+ "type": "string",
+ "description": "Timely account id"
+ },
+ "start_date": {
+ "title": "startDate",
+ "type": "string",
+ "description": "start date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "example": "2022-05-06"
+ },
+ "bearer_token": {
+ "title": "Bearer token",
+ "type": "string",
+ "description": "Timely bearer token"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "6240848f-f795-45eb-8f5e-c7542822fc03",
+ "name": "TMDb",
+ "dockerRepository": "airbyte/source-tmdb",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tmdb",
+ "icon": "tmdb.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tmdb",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Tmdb Spec",
+ "type": "object",
+ "required": ["api_key", "movie_id", "query", "language"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "Unique key for establishing connection",
+ "type": "string",
+ "description": "API Key from tmdb account",
+ "airbyte_secret": true
+ },
+ "movie_id": {
+ "title": "Movie ID for targeting movies",
+ "type": "string",
+ "description": "Target movie ID, Mandate for movie streams (Example is 550)",
+ "examples": [550, 560]
+ },
+ "query": {
+ "title": "Query for search streams",
+ "type": "string",
+ "description": "Target movie ID, Mandate for search streams",
+ "examples": ["Marvel", "DC"]
+ },
+ "language": {
+ "title": "Language for filtering",
+ "type": "string",
+ "description": "Language expressed in ISO 639-1 scheme, Mandate for required streams (Example en-US)",
+ "examples": ["en-US", "en-UK"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "7d272065-c316-4c04-a433-cd4ee143f83e",
+ "name": "Todoist",
+ "dockerRepository": "airbyte/source-todoist",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/todoist",
+ "icon": "todoist.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/todoist",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Todoist Spec",
+ "type": "object",
+ "required": ["token"],
+ "properties": {
+ "token": {
+ "type": "string",
+ "description": "Your API Token. See here. The token is case sensitive.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "7e7c844f-2300-4342-b7d3-6dd7992593cd",
+ "name": "Toggl",
+ "dockerRepository": "airbyte/source-toggl",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/toggl",
+ "icon": "toggl.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/toggl",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Toggl Spec",
+ "type": "object",
+ "required": [
+ "api_token",
+ "organization_id",
+ "workspace_id",
+ "start_date",
+ "end_date"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "title": "API token",
+ "type": "string",
+ "description": "Your API Token. See here. The token is case sensitive.",
+ "airbyte_secret": true
+ },
+ "organization_id": {
+ "title": "Organization ID",
+ "type": "integer",
+ "description": "Your organization id. See here."
+ },
+ "workspace_id": {
+ "title": "Workspace ID",
+ "type": "integer",
+ "description": "Your workspace id. See here."
+ },
+ "start_date": {
+ "title": "Start date",
+ "type": "string",
+ "description": "To retrieve time entries created after the given date (inclusive).",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": ["YYYY-MM-DD"]
+ },
+ "end_date": {
+ "title": "End date",
+ "type": "string",
+ "description": "To retrieve time entries created before the given date (inclusive).",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": ["YYYY-MM-DD"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "d42bd69f-6bf0-4d0b-9209-16231af07a92",
+ "name": "The Guardian API",
+ "dockerRepository": "airbyte/source-the-guardian-api",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/the-guardian-api",
+ "icon": "theguardian.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/the-guardian-api",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "The Guardian Api Spec",
+ "type": "object",
+ "required": ["api_key", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Your API Key. See here. The key is case sensitive.",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "Use this to set the minimum date (YYYY-MM-DD) of the results. Results older than the start_date will not be shown.",
+ "pattern": "^([1-9][0-9]{3})\\-(0?[1-9]|1[012])\\-(0?[1-9]|[12][0-9]|3[01])$",
+ "examples": ["YYYY-MM-DD"]
+ },
+ "query": {
+ "title": "Query",
+ "type": "string",
+ "description": "(Optional) The query (q) parameter filters the results to only those that include that search term. The q parameter supports AND, OR and NOT operators.",
+ "examples": [
+ "environment AND NOT water",
+ "environment AND political",
+ "amusement park",
+ "political"
+ ]
+ },
+ "tag": {
+ "title": "Tag",
+ "type": "string",
+ "description": "(Optional) A tag is a piece of data that is used by The Guardian to categorise content. Use this parameter to filter results by showing only the ones matching the entered tag. See here for a list of all tags, and here for the tags endpoint documentation.",
+ "examples": [
+ "environment/recycling",
+ "environment/plasticbags",
+ "environment/energyefficiency"
+ ]
+ },
+ "section": {
+ "title": "Section",
+ "type": "string",
+ "description": "(Optional) Use this to filter the results by a particular section. See here for a list of all sections, and here for the sections endpoint documentation.",
+ "examples": ["media", "technology", "housing-network"]
+ },
+ "end_date": {
+ "title": "End Date",
+ "type": "string",
+ "description": "(Optional) Use this to set the maximum date (YYYY-MM-DD) of the results. Results newer than the end_date will not be shown. Default is set to the current date (today) for incremental syncs.",
+ "pattern": "^([1-9][0-9]{3})\\-(0?[1-9]|1[012])\\-(0?[1-9]|[12][0-9]|3[01])$",
+ "examples": ["YYYY-MM-DD"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "f9b6c538-ee12-42fe-8d4b-0c10f5955417",
+ "name": "TPLcentral",
+ "dockerRepository": "airbyte/source-tplcentral",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tplcentral",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tplcentral",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Tplcentral Spec",
+ "type": "object",
+ "required": ["url_base", "client_id", "client_secret"],
+ "additionalProperties": false,
+ "properties": {
+ "url_base": {
+ "title": "URL base",
+ "type": "string",
+ "format": "uri",
+ "default": "https://secure-wms.com/",
+ "pattern": "^https://"
+ },
+ "client_id": {
+ "title": "Client ID",
+ "type": "string"
+ },
+ "client_secret": {
+ "title": "Client secret",
+ "type": "string",
+ "airbyte_secret": true
+ },
+ "user_login_id": {
+ "title": "User login ID",
+ "description": "User login ID and/or name is required",
+ "type": "integer"
+ },
+ "user_login": {
+ "title": "User login name",
+ "description": "User login ID and/or name is required",
+ "type": "string"
+ },
+ "tpl_key": {
+ "title": "3PL GUID",
+ "type": "string"
+ },
+ "customer_id": {
+ "title": "Customer ID",
+ "type": "integer"
+ },
+ "facility_id": {
+ "title": "Facility ID",
+ "type": "integer"
+ },
+ "start_date": {
+ "title": "Start date",
+ "description": "Date and time together in RFC 3339 format, for example, 2018-11-13T20:20:39+00:00.",
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "8da67652-004c-11ec-9a03-0242ac130003",
+ "name": "Trello",
+ "dockerRepository": "airbyte/source-trello",
+ "dockerImageTag": "0.3.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/trello",
+ "icon": "trello.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/trello",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Trello Spec",
+ "type": "object",
+ "required": ["key", "token", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "key": {
+ "type": "string",
+ "title": "API key",
+ "description": "Trello API key. See the docs for instructions on how to generate it.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "token": {
+ "type": "string",
+ "title": "API token",
+ "description": "Trello API token. See the docs for instructions on how to generate it.",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.",
+ "examples": ["2021-03-01T00:00:00Z"],
+ "format": "date-time",
+ "order": 2
+ },
+ "board_ids": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "^[0-9a-fA-F]{24}$"
+ },
+ "title": "Trello Board IDs",
+ "description": "IDs of the boards to replicate data from. If left empty, data from all boards to which you have access will be replicated.",
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [],
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "token": {
+ "type": "string",
+ "path_in_connector_config": ["token"]
+ },
+ "key": {
+ "type": "string",
+ "path_in_connector_config": ["key"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["api.trello.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "d7e23ea6-d741-4314-9209-a33c91a2e945",
+ "name": "TrustPilot",
+ "dockerRepository": "airbyte/source-trustpilot",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/trustpilot",
+ "icon": "trustpilot.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Trustpilot Spec",
+ "type": "object",
+ "required": ["credentials", "business_units", "start_date"],
+ "properties": {
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "order": 0,
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "OAuth 2.0",
+ "required": [
+ "client_id",
+ "client_secret",
+ "refresh_token",
+ "access_token",
+ "token_expiry_date"
+ ],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "oauth2.0"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "API key",
+ "description": "The API key of the Trustpilot API application. (represents the OAuth Client ID)",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Secret",
+ "description": "The Secret of the Trustpilot API application. (represents the OAuth Client Secret)",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "title": "Token expiry date time",
+ "description": "The date-time when the access token should be refreshed.",
+ "format": "date-time"
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh token",
+ "description": "The key to refresh the expired access_token.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "API Key",
+ "description": "The API key authentication method gives you access to only the streams which are part of the Public API. When you want to get streams available via the Consumer API (e.g. the private reviews) you need to use authentication method OAuth 2.0.",
+ "required": ["client_id"],
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "apikey"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "API key",
+ "description": "The API key of the Trustpilot API application.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ },
+ "business_units": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "Business Unit names",
+ "description": "The names of business units which shall be synchronized. Some streams e.g. configured_business_units or private_reviews use this configuration.",
+ "examples": ["mydomain.com", "www.mydomain.com"]
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "For streams with sync. method incremental the start date time to be used",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["%Y-%m-%dT%H:%M:%S"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "bd14b08f-9f43-400f-b2b6-7248b5c72561",
+ "name": "TVMaze Schedule",
+ "dockerRepository": "airbyte/source-tvmaze-schedule",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tvmaze-schedule",
+ "icon": "tvmazeschedule.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tvmaze-schedule",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "TVMaze Schedule Spec",
+ "type": "object",
+ "required": ["start_date", "domestic_schedule_country_code"],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "description": "Start date for TV schedule retrieval. May be in the future.",
+ "order": 0,
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
+ },
+ "end_date": {
+ "type": "string",
+ "description": "End date for TV schedule retrieval. May be in the future. Optional.\n",
+ "order": 1,
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
+ },
+ "domestic_schedule_country_code": {
+ "type": "string",
+ "description": "Country code for domestic TV schedule retrieval.",
+ "examples": ["US", "GB"]
+ },
+ "web_schedule_country_code": {
+ "type": "string",
+ "description": "ISO 3166-1 country code for web TV schedule retrieval. Leave blank for\nall countries plus global web channels (e.g. Netflix). Alternatively,\nset to 'global' for just global web channels.\n",
+ "examples": ["US", "GB", "global"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "b9dc6155-672e-42ea-b10d-9f1f1fb95ab1",
+ "name": "Twilio",
+ "dockerRepository": "airbyte/source-twilio",
+ "dockerImageTag": "0.5.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/twilio",
+ "icon": "twilio.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/twilio",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Twilio Spec",
+ "type": "object",
+ "required": ["account_sid", "auth_token", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "account_sid": {
+ "title": "Account ID",
+ "description": "Twilio account SID",
+ "airbyte_secret": true,
+ "type": "string",
+ "order": 1
+ },
+ "auth_token": {
+ "title": "Auth Token",
+ "description": "Twilio Auth Token.",
+ "airbyte_secret": true,
+ "type": "string",
+ "order": 2
+ },
+ "start_date": {
+ "title": "Replication Start Date",
+ "description": "UTC date and time in the format 2020-10-01T00:00:00Z. Any data before this date will not be replicated.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2020-10-01T00:00:00Z"],
+ "type": "string",
+ "order": 3,
+ "format": "date-time"
+ },
+ "lookback_window": {
+ "title": "Lookback window",
+ "description": "How far into the past to look for records. (in minutes)",
+ "examples": [60],
+ "default": 0,
+ "minimum": 0,
+ "maximum": 576000,
+ "type": "integer",
+ "order": 4
+ }
+ }
+ },
+ "supportsIncremental": true,
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": ["append"]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["api.twilio.com", "monitor.twilio.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "2446953b-b794-429b-a9b3-c821ba992a48",
+ "name": "Twilio Taskrouter",
+ "dockerRepository": "airbyte/source-twilio-taskrouter",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/twilio-taskrouter",
+ "icon": "twilio.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/twilio-taskrouter",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Twilio Taskrouter Spec",
+ "type": "object",
+ "required": ["account_sid", "auth_token"],
+ "additionalProperties": true,
+ "properties": {
+ "account_sid": {
+ "title": "Account SID",
+ "type": "string",
+ "description": "Twilio Account ID",
+ "airbyte_secret": true
+ },
+ "auth_token": {
+ "type": "string",
+ "description": "Twilio Auth Token",
+ "airbyte_secret": true,
+ "title": "Auth Token"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "d7fd4f40-5e5a-4b8b-918f-a73077f8c131",
+ "name": "Twitter",
+ "dockerRepository": "airbyte/source-twitter",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/twitter",
+ "icon": "twitter.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/twitter",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Twitter Spec",
+ "type": "object",
+ "required": ["api_key", "query"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "App only Bearer Token. See the docs for more information on how to obtain this token.",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "query": {
+ "type": "string",
+ "title": "Search Query",
+ "description": "Query for matching Tweets. You can learn how to build this query by reading build a query guide .",
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The start date for retrieving tweets cannot be more than 7 days in the past.",
+ "format": "date-time",
+ "order": 2
+ },
+ "end_date": {
+ "type": "string",
+ "title": "End Date",
+ "description": "The end date for retrieving tweets must be a minimum of 10 seconds prior to the request time.",
+ "format": "date-time",
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["api.twitter.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "3c0c3cd1-b3e0-464a-9090-d3ceb5f92346",
+ "name": "Tyntec SMS",
+ "dockerRepository": "airbyte/source-tyntec-sms",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tyntec-sms",
+ "icon": "tyntec.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/tyntec-sms",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Tyntec Sms Spec",
+ "type": "object",
+ "required": ["api_key", "to", "from"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "Tyntec API Key",
+ "description": "Your Tyntec API Key. See here",
+ "order": 0,
+ "airbyte_secret": true
+ },
+ "to": {
+ "type": "string",
+ "title": "SMS Message Recipient Phone",
+ "description": "The phone number of the SMS message recipient (international).",
+ "order": 1
+ },
+ "from": {
+ "type": "string",
+ "title": "SMS Message Sender Phone",
+ "description": "The phone number of the SMS message sender (international).",
+ "order": 2
+ },
+ "message": {
+ "type": "string",
+ "title": "SMS Message Body",
+ "description": "The content of the SMS message to be sent.",
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "e7eff203-90bf-43e5-a240-19ea3056c474",
+ "name": "Typeform",
+ "dockerRepository": "airbyte/source-typeform",
+ "dockerImageTag": "0.1.12",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/typeform",
+ "icon": "typeform.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/typeform",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Typeform Spec",
+ "type": "object",
+ "required": ["token", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "token": {
+ "type": "string",
+ "description": "The API Token for a Typeform account.",
+ "title": "API Token",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "start_date": {
+ "type": "string",
+ "description": "UTC date and time in the format: YYYY-MM-DDTHH:mm:ss[Z]. Any data before this date will not be replicated.",
+ "title": "Start Date",
+ "examples": ["2020-01-01T00:00:00Z"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "order": 1,
+ "format": "date-time"
+ },
+ "form_ids": {
+ "title": "Form IDs to replicate",
+ "description": "When this parameter is set, the connector will replicate data only from the input forms. Otherwise, all forms in your Typeform account will be replicated. You can find form IDs in your form URLs. For example, in the URL \"https://mysite.typeform.com/to/u6nXL7\" the form_id is u6nXL7. You can find form URLs on Share panel",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "uniqueItems": true,
+ "order": 2
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["api.typeform.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "f77914a1-442b-4195-9355-8810a1f4ed3f",
+ "name": "Unleash",
+ "dockerRepository": "airbyte/source-unleash",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/unleash",
+ "icon": "unleash.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/unleash",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Unleash Source Spec",
+ "type": "object",
+ "required": ["api_token", "api_url"],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "title": "API Token Client",
+ "type": "string",
+ "description": "Your API Token (Server-Side SDK [Client]). See here. The token is case sensitive.",
+ "airbyte_secret": true,
+ "examples": [
+ "project:environment.be44368985f7fb3237c584ef86f3d6bdada42ddbd63a019d26955178",
+ "*:environment.be44368985f7fb3237c584ef86f3d6bdada42ddbd63a019d26955178",
+ "be44368985f7fb3237c584ef86f3d6bdada42ddbd63a019d26955178"
+ ]
+ },
+ "api_url": {
+ "title": "API URL",
+ "type": "string",
+ "description": "Your API URL. No trailing slash. ex: http://unleash.host.com/api"
+ },
+ "project_name": {
+ "title": "Project Name",
+ "type": "string",
+ "description": "Use this if you want to filter the API call for only one given project (can be used in addition to the \"Feature Name Prefix\" field). See here"
+ },
+ "nameprefix": {
+ "title": "Feature Name Prefix",
+ "type": "string",
+ "description": "Use this if you want to filter the API call for only one given project (can be used in addition to the \"Feature Name Prefix\" field). See here"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "c4cfaeda-c757-489a-8aba-859fb08b6970",
+ "name": "US Census",
+ "dockerRepository": "airbyte/source-us-census",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/us-census",
+ "icon": "uscensus.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/us-census",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "https://api.census.gov/ Source Spec",
+ "type": "object",
+ "required": ["api_key", "query_path"],
+ "additionalProperties": false,
+ "properties": {
+ "query_params": {
+ "type": "string",
+ "description": "The query parameters portion of the GET request, without the api key",
+ "pattern": "^\\w+=[\\w,:*]+(&(?!key)\\w+=[\\w,:*]+)*$",
+ "examples": [
+ "get=NAME,NAICS2017_LABEL,LFO_LABEL,EMPSZES_LABEL,ESTAB,PAYANN,PAYQTR1,EMP&for=us:*&NAICS2017=72&LFO=001&EMPSZES=001",
+ "get=MOVEDIN,GEOID1,GEOID2,MOVEDOUT,FULL1_NAME,FULL2_NAME,MOVEDNET&for=county:*"
+ ]
+ },
+ "query_path": {
+ "type": "string",
+ "description": "The path portion of the GET request",
+ "pattern": "^data(\\/[\\w\\d]+)+$",
+ "examples": [
+ "data/2019/cbp",
+ "data/2018/acs",
+ "data/timeseries/healthins/sahie"
+ ]
+ },
+ "api_key": {
+ "type": "string",
+ "description": "Your API Key. Get your key here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "afa734e4-3571-11ec-991a-1e0031268139",
+ "name": "YouTube Analytics",
+ "dockerRepository": "airbyte/source-youtube-analytics",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/youtube-analytics",
+ "icon": "youtube-analytics.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/youtube-analytics",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "YouTube Analytics Spec",
+ "type": "object",
+ "required": ["credentials"],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "title": "Authenticate via OAuth 2.0",
+ "type": "object",
+ "required": ["client_id", "client_secret", "refresh_token"],
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "title": "Client ID",
+ "type": "string",
+ "description": "The Client ID of your developer application",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "title": "Client Secret",
+ "type": "string",
+ "description": "The client secret of your developer application",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "title": "Refresh Token",
+ "type": "string",
+ "description": "A refresh token generated using the above client ID and secret",
+ "airbyte_secret": true
+ }
+ }
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "authSpecification": {
+ "auth_type": "oauth2.0",
+ "oauth2Specification": {
+ "rootObject": ["credentials"],
+ "oauthFlowInitParameters": [["client_id"], ["client_secret"]],
+ "oauthFlowOutputParameters": [["refresh_token"]]
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["*.googleapis.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "28ce1fbd-1e15-453f-aa9f-da6c4d928e92",
+ "name": "Vantage",
+ "dockerRepository": "airbyte/source-vantage",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/vantage",
+ "icon": "vantage.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/vantage",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Vantage Spec",
+ "type": "object",
+ "required": ["access_token"],
+ "additionalProperties": true,
+ "properties": {
+ "access_token": {
+ "title": "API Access Token",
+ "type": "string",
+ "description": "Your API Access token. See here.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "7e20ce3e-d820-4327-ad7a-88f3927fd97a",
+ "name": "VictorOps",
+ "dockerRepository": "farosai/airbyte-victorops-source",
+ "dockerImageTag": "0.1.23",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/victorops",
+ "icon": "victorops.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.faros.ai",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "VictorOps Spec",
+ "type": "object",
+ "required": ["apiId", "apiKey"],
+ "additionalProperties": true,
+ "properties": {
+ "apiId": {
+ "type": "string",
+ "title": "VictorOps API ID",
+ "airbyte_secret": true
+ },
+ "apiKey": {
+ "type": "string",
+ "title": "VictorOps API key",
+ "airbyte_secret": true
+ },
+ "maxContentLength": {
+ "type": "number",
+ "title": "VictorOps Content Length",
+ "description": "VictorOps API response content length limit, try increasing if 'RequestError' is encountered.",
+ "default": 500000
+ },
+ "pageLimit": {
+ "type": "number",
+ "title": "VictorOps Page Limit",
+ "default": 100
+ },
+ "currentPhase": {
+ "type": "string",
+ "title": "VictorOps Current Phase",
+ "default": "triggered,acknowledged,resolved"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "42495935-95de-4f5c-ae08-8fac00f6b308",
+ "name": "Visma E-conomic",
+ "dockerRepository": "airbyte/source-visma-economic",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/visma-economic",
+ "icon": "visma-e-conomic.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/visma-economic",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Visma E-conomic Spec",
+ "type": "object",
+ "required": ["app_secret_token", "agreement_grant_token"],
+ "properties": {
+ "app_secret_token": {
+ "title": "App Secret Token",
+ "type": "string",
+ "description": "Identification token for app accessing data",
+ "airbyte_secret": true
+ },
+ "agreement_grant_token": {
+ "title": "Agreement Grant Token",
+ "type": "string",
+ "description": "Identifier for the grant issued by an agreement",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "6c6d8b0c-db35-4cd1-a7de-0ca8b080f5ac",
+ "name": "Vitally",
+ "dockerRepository": "airbyte/source-vitally",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/vitally",
+ "icon": "vitally.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/vitally",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Vitally Spec",
+ "type": "object",
+ "required": ["api_key", "status"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Token",
+ "description": "The API Token for a Vitally account.",
+ "airbyte_secret": true
+ },
+ "status": {
+ "type": "string",
+ "title": "Status",
+ "description": "Status of the Vitally accounts. One of the following values; active, churned, activeOrChurned.",
+ "enum": ["active", "churned", "activeOrChurned"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "6fd1e833-dd6e-45ec-a727-ab917c5be892",
+ "name": "Xero",
+ "dockerRepository": "airbyte/source-xero",
+ "dockerImageTag": "0.2.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/xero",
+ "icon": "xero.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/xero",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Xero Spec",
+ "type": "object",
+ "required": ["authentication", "tenant_id", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "authentication": {
+ "type": "object",
+ "title": "Authenticate via Xero (OAuth)",
+ "required": [
+ "client_id",
+ "client_secret",
+ "refresh_token",
+ "access_token",
+ "token_expiry_date"
+ ],
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "Enter your Xero application's Client ID"
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "Enter your Xero application's Client Secret",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "Enter your Xero application's refresh token",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Enter your Xero application's access token",
+ "airbyte_secret": true
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "description": "The date-time when the access token should be refreshed"
+ }
+ },
+ "order": 0
+ },
+ "tenant_id": {
+ "title": "Tenant ID",
+ "type": "string",
+ "description": "Enter your Xero organization's Tenant ID",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format YYYY-MM-DDTHH:mm:ssZ. Any data with created_at before this data will not be synced.",
+ "examples": ["2022-03-01T00:00:00Z"],
+ "format": "date-time",
+ "order": 2
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": [],
+ "oauth_config_specification": {
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": [
+ "authentication",
+ "refresh_token"
+ ]
+ },
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": ["authentication", "access_token"]
+ },
+ "token_expiry_date": {
+ "type": "string",
+ "path_in_connector_config": [
+ "authentication",
+ "token_expiry_date"
+ ],
+ "format": "date-time"
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["authentication", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": [
+ "authentication",
+ "client_secret"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["api.xero.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "80fddd16-17bd-4c0c-bf4a-80df7863fc9d",
+ "name": "xkcd",
+ "dockerRepository": "airbyte/source-xkcd",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/xkcd",
+ "icon": "xkcd.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/xkcd",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Xkcd Spec",
+ "type": "object",
+ "properties": {}
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "5db8292c-5f5a-11ed-9b6a-0242ac120002",
+ "name": "Weatherstack",
+ "dockerRepository": "airbyte/source-weatherstack",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/weatherstack",
+ "icon": "weatherstack.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/weatherstack",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Weatherstack Spec",
+ "type": "object",
+ "required": ["access_key", "query", "historical_date"],
+ "properties": {
+ "is_paid_account": {
+ "order": 0,
+ "title": "Is Paid Account",
+ "description": "Toggle if you're using a Paid subscription",
+ "type": "boolean",
+ "default": false
+ },
+ "access_key": {
+ "order": 1,
+ "type": "string",
+ "description": "API access key used to retrieve data from the Weatherstack API.(https://weatherstack.com/product)",
+ "airbyte_secret": true
+ },
+ "query": {
+ "order": 2,
+ "type": "string",
+ "description": "A location to query such as city, IP, latitudeLongitude, or zipcode. Multiple locations with semicolon seperated if using a professional plan or higher. For more info- (https://weatherstack.com/documentation#query_parameter)",
+ "examples": ["New York", "London", "98101"]
+ },
+ "historical_date": {
+ "order": 3,
+ "type": "string",
+ "description": "This is required for enabling the Historical date API with format- (YYYY-MM-DD). * Note, only supported by paid accounts",
+ "examples": ["2015-01-21"],
+ "default\"": "2000-01-01",
+ "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "ef580275-d9a9-48bb-af5e-db0f5855be04",
+ "name": "Webflow",
+ "dockerRepository": "airbyte/source-webflow",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/webflow",
+ "icon": "webflow.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/webflow",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Webflow Spec",
+ "type": "object",
+ "required": ["api_key", "site_id"],
+ "additionalProperties": false,
+ "properties": {
+ "site_id": {
+ "title": "Site id",
+ "type": "string",
+ "description": "The id of the Webflow site you are requesting data from. See https://developers.webflow.com/#sites",
+ "example": "a relatively long hex sequence",
+ "order": 0
+ },
+ "api_key": {
+ "title": "API token",
+ "type": "string",
+ "description": "The API token for authenticating to Webflow. See https://university.webflow.com/lesson/intro-to-the-webflow-api",
+ "example": "a very long hex sequence",
+ "order": 1,
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "e65f84c0-7598-458a-bfac-f770c381ff5d",
+ "name": "Whisky Hunter",
+ "dockerRepository": "airbyte/source-whisky-hunter",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/whisky-hunter",
+ "icon": "whiskyhunter.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/whisky-hunter",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Whisky Hunter Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {}
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "2a2552ca-9f78-4c1c-9eb7-4d0dc66d72df",
+ "name": "WooCommerce",
+ "dockerRepository": "airbyte/source-woocommerce",
+ "dockerImageTag": "0.2.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/woocommerce",
+ "icon": "woocommerce.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/woocommerce",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Woocommerce Spec",
+ "type": "object",
+ "required": ["api_key", "api_secret", "shop", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "Customer Key",
+ "description": "Customer Key for API in WooCommerce shop",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "api_secret": {
+ "type": "string",
+ "title": "Customer Secret",
+ "description": "Customer Secret for API in WooCommerce shop",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "shop": {
+ "type": "string",
+ "title": "Shop Name",
+ "description": "The name of the store. For https://EXAMPLE.com, the shop name is 'EXAMPLE.com'.",
+ "order": 2
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date you would like to replicate data from. Format: YYYY-MM-DD",
+ "examples": ["2021-01-01"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "format": "date",
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["${domain}"]
+ }
+ },
+ {
+ "sourceDefinitionId": "ef3c99c6-9e90-43c8-9517-926cfd978517",
+ "name": "Workable",
+ "dockerRepository": "airbyte/source-workable",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/workable",
+ "icon": "workable.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/workable",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Workable API Spec",
+ "type": "object",
+ "required": ["api_key", "account_subdomain", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "title": "API Key",
+ "type": "string",
+ "description": "Your Workable API Key. See here.",
+ "airbyte_secret": true
+ },
+ "account_subdomain": {
+ "title": "Account Subdomain",
+ "type": "string",
+ "description": "Your Workable account subdomain, e.g. https://your_account_subdomain.workable.com."
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "Get data that was created since this date (format: YYYYMMDDTHHMMSSZ).",
+ "pattern": "^[0-9]{8}T[0-9]{6}Z$",
+ "examples": ["20150708T115616Z", "20221115T225616Z"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "9c13f986-a13b-4988-b808-4705badf71c2",
+ "name": "Wrike",
+ "dockerRepository": "airbyte/source-wrike",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/wrike",
+ "icon": "wrike.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Wrike Spec",
+ "type": "object",
+ "required": ["access_token", "wrike_instance"],
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "title": "Permanent Access Token",
+ "description": "Permanent access token. You can find documentation on how to acquire a permanent access token here",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "wrike_instance": {
+ "type": "string",
+ "title": "Wrike Instance (hostname)",
+ "description": "Wrike's instance such as `app-us2.wrike.com`",
+ "default": "app-us2.wrike.com",
+ "order": 1
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start date for comments",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "description": "UTC date and time in the format 2017-01-25T00:00:00Z. Only comments after this date will be replicated.",
+ "examples": ["2017-01-25T00:00:00Z"],
+ "order": 2
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "b8c917bc-7d1b-4828-995f-6726820266d0",
+ "name": "Zapier Supported Storage",
+ "dockerRepository": "airbyte/source-zapier-supported-storage",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-supported-storage",
+ "icon": "zapiersupportedstorage.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zapier-supported-storage",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Zapier Supported Storage Spec",
+ "type": "object",
+ "required": ["secret"],
+ "additionalProperties": true,
+ "properties": {
+ "secret": {
+ "title": "Secret Key",
+ "type": "string",
+ "description": "Secret key supplied by zapier",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "40d24d0f-b8f9-4fe0-9e6c-b06c0f3f45e4",
+ "name": "Zendesk Chat",
+ "dockerRepository": "airbyte/source-zendesk-chat",
+ "dockerImageTag": "0.1.14",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-chat",
+ "icon": "zendesk-chat.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-chat",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Zendesk Chat Spec",
+ "type": "object",
+ "required": ["start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for Zendesk Chat API, in the format YYYY-MM-DDT00:00:00Z.",
+ "examples": ["2021-02-01T00:00:00Z"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "format": "date-time"
+ },
+ "subdomain": {
+ "type": "string",
+ "title": "Subdomain",
+ "description": "Required if you access Zendesk Chat from a Zendesk Support subdomain.",
+ "default": ""
+ },
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": ["credentials"],
+ "properties": {
+ "credentials": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your OAuth application",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Access Token for making authenticated requests.",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "Refresh Token to obtain new Access Token, when it's expired.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "Access Token",
+ "required": ["credentials", "access_token"],
+ "properties": {
+ "credentials": {
+ "type": "string",
+ "const": "access_token",
+ "order": 0
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The Access Token to make authenticated requests.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "credentials"],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "properties": {
+ "subdomain": {
+ "type": "string",
+ "path_in_connector_config": ["subdomain"]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "access_token"]
+ },
+ "refresh_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "refresh_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["zopim.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "982eaa4c-bba1-4cce-a971-06a41f700b8c",
+ "name": "Zendesk Sell",
+ "dockerRepository": "airbyte/source-zendesk-sell",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-sell",
+ "icon": "zendesk.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-sell",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Zendesk Sell Spec",
+ "type": "object",
+ "required": ["api_token"],
+ "properties": {
+ "api_token": {
+ "title": "API token",
+ "type": "string",
+ "description": "The API token for authenticating to Zendesk Sell",
+ "examples": [
+ "f23yhd630otl94y85a8bf384958473pto95847fd006da49382716or937ruw059"
+ ],
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "325e0640-e7b3-4e24-b823-3361008f603f",
+ "name": "Zendesk Sunshine",
+ "dockerRepository": "airbyte/source-zendesk-sunshine",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-sunshine",
+ "icon": "zendesk-sunshine.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk_sunshine",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Zendesk Sunshine Spec",
+ "type": "object",
+ "required": ["start_date", "subdomain"],
+ "additionalProperties": true,
+ "properties": {
+ "subdomain": {
+ "title": "Subdomain",
+ "type": "string",
+ "description": "The subdomain for your Zendesk Account."
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "The date from which you'd like to replicate data for Zendesk Sunshine API, in the format YYYY-MM-DDT00:00:00Z.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2021-01-01T00:00:00Z"]
+ },
+ "credentials": {
+ "title": "Authorization Method",
+ "type": "object",
+ "oneOf": [
+ {
+ "type": "object",
+ "title": "OAuth2.0",
+ "required": [
+ "auth_method",
+ "client_id",
+ "client_secret",
+ "access_token"
+ ],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "oauth2.0",
+ "enum": ["oauth2.0"],
+ "default": "oauth2.0",
+ "order": 0
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "The Client ID of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "The Client Secret of your OAuth application.",
+ "airbyte_secret": true
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "Long-term access Token for making authenticated requests.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "type": "object",
+ "title": "API Token",
+ "required": ["auth_method", "api_token", "email"],
+ "properties": {
+ "auth_method": {
+ "type": "string",
+ "const": "api_token",
+ "enum": ["api_token"],
+ "default": "api_token",
+ "order": 1
+ },
+ "api_token": {
+ "type": "string",
+ "title": "API Token",
+ "description": "API Token. See the docs for information on how to generate this key.",
+ "airbyte_secret": true
+ },
+ "email": {
+ "type": "string",
+ "title": "Email",
+ "description": "The user email for your Zendesk account"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "auth_method"],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "subdomain": {
+ "type": "string",
+ "path_in_connector_config": ["subdomain"]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "access_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "79c1aa37-dae3-42ae-b333-d1c105477715",
+ "name": "Zendesk Support",
+ "dockerRepository": "airbyte/source-zendesk-support",
+ "dockerImageTag": "0.2.27",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-support",
+ "icon": "zendesk-support.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-support",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Zendesk Support Spec",
+ "type": "object",
+ "required": ["start_date", "subdomain"],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "The date from which you'd like to replicate data for Zendesk Support API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "examples": ["2020-10-15T00:00:00Z"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "format": "date-time"
+ },
+ "subdomain": {
+ "type": "string",
+ "title": "Subdomain",
+ "description": "This is your Zendesk subdomain that can be found in your account URL. For example, in https://{MY_SUBDOMAIN}.zendesk.com/, where MY_SUBDOMAIN is the value of your subdomain."
+ },
+ "credentials": {
+ "title": "Authentication",
+ "type": "object",
+ "description": "Zendesk service provides two authentication methods. Choose between: `OAuth2.0` or `API token`.",
+ "oneOf": [
+ {
+ "title": "OAuth2.0",
+ "type": "object",
+ "required": ["access_token"],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 0
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The value of the API token generated. See the docs for more information.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "API Token",
+ "type": "object",
+ "required": ["email", "api_token"],
+ "additionalProperties": true,
+ "properties": {
+ "credentials": {
+ "type": "string",
+ "const": "api_token",
+ "order": 0
+ },
+ "email": {
+ "title": "Email",
+ "type": "string",
+ "description": "The user email for your Zendesk account."
+ },
+ "api_token": {
+ "title": "API Token",
+ "type": "string",
+ "description": "The value of the API token generated. See the docs for more information.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ },
+ "ignore_pagination": {
+ "type": "boolean",
+ "default": false,
+ "description": "Makes each stream read a single page of data.",
+ "title": "Should the connector read the second and further pages of data.",
+ "airbyte_hidden": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "credentials"],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "subdomain": {
+ "type": "string",
+ "path_in_connector_config": ["subdomain"]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "access_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["${subdomain}.zendesk.com", "zendesk.com"]
+ },
+ "maxSecondsBetweenMessages": 10800
+ },
+ {
+ "sourceDefinitionId": "c8630570-086d-4a40-99ae-ea5b18673071",
+ "name": "Zendesk Talk",
+ "dockerRepository": "airbyte/source-zendesk-talk",
+ "dockerImageTag": "0.1.7",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-talk",
+ "icon": "zendesk-talk.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zendesk-talk",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Zendesk Talk Spec",
+ "type": "object",
+ "required": ["start_date", "subdomain"],
+ "properties": {
+ "subdomain": {
+ "type": "string",
+ "title": "Subdomain",
+ "order": 0,
+ "description": "This is your Zendesk subdomain that can be found in your account URL. For example, in https://{MY_SUBDOMAIN}.zendesk.com/, where MY_SUBDOMAIN is the value of your subdomain."
+ },
+ "credentials": {
+ "title": "Authentication",
+ "type": "object",
+ "order": 1,
+ "description": "Zendesk service provides two authentication methods. Choose between: `OAuth2.0` or `API token`.",
+ "oneOf": [
+ {
+ "title": "API Token",
+ "type": "object",
+ "required": ["email", "api_token"],
+ "additionalProperties": true,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "api_token"
+ },
+ "email": {
+ "title": "Email",
+ "type": "string",
+ "description": "The user email for your Zendesk account."
+ },
+ "api_token": {
+ "title": "API Token",
+ "type": "string",
+ "description": "The value of the API token generated. See the docs for more information.",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "OAuth2.0",
+ "type": "object",
+ "required": ["access_token"],
+ "additionalProperties": true,
+ "properties": {
+ "auth_type": {
+ "type": "string",
+ "const": "oauth2.0",
+ "order": 0
+ },
+ "access_token": {
+ "type": "string",
+ "title": "Access Token",
+ "description": "The value of the API token generated. See the docs for more information.",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "order": 2,
+ "description": "The date from which you'd like to replicate data for Zendesk Talk API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "examples": ["2020-10-15T00:00:00Z"],
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "format": "date-time"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [],
+ "advanced_auth": {
+ "auth_flow_type": "oauth2.0",
+ "predicate_key": ["credentials", "auth_type"],
+ "predicate_value": "oauth2.0",
+ "oauth_config_specification": {
+ "oauth_user_input_from_connector_config_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "subdomain": {
+ "type": "string",
+ "path_in_connector_config": ["subdomain"]
+ }
+ }
+ },
+ "complete_oauth_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "access_token"]
+ }
+ }
+ },
+ "complete_oauth_server_input_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "complete_oauth_server_output_specification": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_id"]
+ },
+ "client_secret": {
+ "type": "string",
+ "path_in_connector_config": ["credentials", "client_secret"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["${subdomain}.zendesk.com", "zendesk.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "8baba53d-2fe3-4e33-bc85-210d0eb62884",
+ "name": "Zenefits",
+ "dockerRepository": "airbyte/source-zenefits",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zenefits",
+ "icon": "zenefits.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Zenefits Integration Spec",
+ "type": "object",
+ "required": ["token"],
+ "additionalProperties": false,
+ "properties": {
+ "token": {
+ "title": "token",
+ "type": "string",
+ "description": "Use Sync with Zenefits button on the link given on the readme file, and get the token to access the api"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "f1e4c7f6-db5c-4035-981f-d35ab4998794",
+ "name": "Zenloop",
+ "dockerRepository": "airbyte/source-zenloop",
+ "dockerImageTag": "0.1.6",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zenloop",
+ "icon": "zenloop.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zenloop",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Zenloop Spec",
+ "type": "object",
+ "required": ["api_token"],
+ "properties": {
+ "api_token": {
+ "type": "string",
+ "description": "Zenloop API Token. You can get the API token in settings page here ",
+ "airbyte_secret": true
+ },
+ "date_from": {
+ "type": "string",
+ "description": "Zenloop date_from. Format: 2021-10-24T03:30:30Z or 2021-10-24. Leave empty if only data from current data should be synced",
+ "examples": ["2021-10-24T03:30:30Z"]
+ },
+ "survey_id": {
+ "type": "string",
+ "description": "Zenloop Survey ID. Can be found here. Leave empty to pull answers from all surveys",
+ "airbyte_secret": true
+ },
+ "survey_group_id": {
+ "type": "string",
+ "description": "Zenloop Survey Group ID. Can be found by pulling All Survey Groups via SurveyGroups stream. Leave empty to pull answers from all survey groups",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["api.zenloop.com"]
+ }
+ },
+ {
+ "sourceDefinitionId": "cdaf146a-9b75-49fd-9dd2-9d64a0bb4781",
+ "name": "Sentry",
+ "dockerRepository": "airbyte/source-sentry",
+ "dockerImageTag": "0.2.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sentry",
+ "icon": "sentry.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sentry",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Sentry Spec",
+ "type": "object",
+ "required": ["auth_token", "organization", "project"],
+ "additionalProperties": true,
+ "properties": {
+ "auth_token": {
+ "type": "string",
+ "title": "Authentication Tokens",
+ "description": "Log into Sentry and then create authentication tokens.For self-hosted, you can find or create authentication tokens by visiting \"{instance_url_prefix}/settings/account/api/auth-tokens/\"",
+ "airbyte_secret": true
+ },
+ "hostname": {
+ "type": "string",
+ "title": "Host Name",
+ "description": "Host name of Sentry API server.For self-hosted, specify your host name here. Otherwise, leave it empty.",
+ "default": "sentry.io"
+ },
+ "organization": {
+ "type": "string",
+ "title": "Organization",
+ "description": "The slug of the organization the groups belong to."
+ },
+ "project": {
+ "type": "string",
+ "title": "Project",
+ "description": "The name (slug) of the Project you want to sync."
+ },
+ "discover_fields": {
+ "type": "array",
+ "item": "string",
+ "title": "Discover Event Fields",
+ "description": "Fields to retrieve when fetching discover events"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "generally_available",
+ "allowedHosts": {
+ "hosts": ["*"]
+ },
+ "maxSecondsBetweenMessages": 64800
+ },
+ {
+ "sourceDefinitionId": "3dc3037c-5ce8-4661-adc2-f7a9e3c5ece5",
+ "name": "Zuora",
+ "dockerRepository": "airbyte/source-zuora",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zuora",
+ "icon": "zuora.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zuora",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Zuora Connector Configuration",
+ "type": "object",
+ "required": [
+ "start_date",
+ "tenant_endpoint",
+ "data_query",
+ "client_id",
+ "client_secret"
+ ],
+ "properties": {
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "description": "Start Date in format: YYYY-MM-DD",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
+ },
+ "window_in_days": {
+ "type": "string",
+ "title": "Query Window (in days)",
+ "description": "The amount of days for each data-chunk begining from start_date. Bigger the value - faster the fetch. (0.1 - as for couple of hours, 1 - as for a Day; 364 - as for a Year).",
+ "examples": ["0.5", "1", "30", "60", "90", "120", "200", "364"],
+ "pattern": "^(0|[1-9]\\d*)(\\.\\d+)?$",
+ "default": "90"
+ },
+ "tenant_endpoint": {
+ "title": "Tenant Endpoint Location",
+ "type": "string",
+ "description": "Please choose the right endpoint where your Tenant is located. More info by this Link",
+ "enum": [
+ "US Production",
+ "US Cloud Production",
+ "US API Sandbox",
+ "US Cloud API Sandbox",
+ "US Central Sandbox",
+ "US Performance Test",
+ "EU Production",
+ "EU API Sandbox",
+ "EU Central Sandbox"
+ ]
+ },
+ "data_query": {
+ "title": "Data Query Type",
+ "type": "string",
+ "description": "Choose between `Live`, or `Unlimited` - the optimized, replicated database at 12 hours freshness for high volume extraction Link",
+ "enum": ["Live", "Unlimited"],
+ "default": "Live"
+ },
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "Your OAuth user Client ID",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "Your OAuth user Client Secret",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "cd06e646-31bf-4dc8-af48-cbc6530fcad3",
+ "name": "Kustomer",
+ "dockerRepository": "airbyte/source-kustomer-singer",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/kustomer",
+ "icon": "kustomer.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/kustomer",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Source Kustomer Singer Spec",
+ "type": "object",
+ "required": ["api_token", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "api_token": {
+ "title": "API Token",
+ "type": "string",
+ "description": "Kustomer API Token. See the docs on how to obtain this",
+ "airbyte_secret": true
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "The date from which you'd like to replicate the data",
+ "examples": ["2019-01-01T00:00:00Z"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "4942d392-c7b5-4271-91f9-3b4f4e51eb3e",
+ "name": "ZohoCRM",
+ "dockerRepository": "airbyte/source-zoho-crm",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zoho-crm",
+ "icon": "zohocrm.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zoho-crm",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Zoho Crm Configuration",
+ "type": "object",
+ "required": [
+ "client_id",
+ "client_secret",
+ "refresh_token",
+ "environment",
+ "dc_region",
+ "edition"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "title": "Client ID",
+ "description": "OAuth2.0 Client ID",
+ "airbyte_secret": true
+ },
+ "client_secret": {
+ "type": "string",
+ "title": "Client Secret",
+ "description": "OAuth2.0 Client Secret",
+ "airbyte_secret": true
+ },
+ "refresh_token": {
+ "type": "string",
+ "title": "Refresh Token",
+ "description": "OAuth2.0 Refresh Token",
+ "airbyte_secret": true
+ },
+ "dc_region": {
+ "title": "Data Center Location",
+ "type": "string",
+ "description": "Please choose the region of your Data Center location. More info by this Link",
+ "enum": ["US", "AU", "EU", "IN", "CN", "JP"]
+ },
+ "environment": {
+ "title": "Environment",
+ "type": "string",
+ "description": "Please choose the environment",
+ "enum": ["Production", "Developer", "Sandbox"]
+ },
+ "start_datetime": {
+ "title": "Start Date",
+ "type": ["string", "null"],
+ "examples": [
+ "2000-01-01",
+ "2000-01-01 13:00",
+ "2000-01-01 13:00:00",
+ "2000-01-01T13:00+00:00",
+ "2000-01-01T13:00:00-07:00"
+ ],
+ "description": "ISO 8601, for instance: `YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS+HH:MM`",
+ "format": "date-time"
+ },
+ "edition": {
+ "title": "Zoho CRM Edition",
+ "type": "string",
+ "description": "Choose your Edition of Zoho CRM to determine API Concurrency Limits",
+ "enum": [
+ "Free",
+ "Standard",
+ "Professional",
+ "Enterprise",
+ "Ultimate"
+ ],
+ "default": "Free"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "a827c52e-791c-4135-a245-e233c5255199",
+ "name": "SFTP",
+ "dockerRepository": "airbyte/source-sftp",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sftp",
+ "icon": "sftp.svg",
+ "sourceType": "file",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/source/sftp",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "SFTP Source Spec",
+ "type": "object",
+ "required": ["user", "host", "port"],
+ "additionalProperties": true,
+ "properties": {
+ "user": {
+ "title": "User Name",
+ "description": "The server user",
+ "type": "string",
+ "order": 0
+ },
+ "host": {
+ "title": "Host Address",
+ "description": "The server host address",
+ "type": "string",
+ "examples": ["www.host.com", "192.0.2.1"],
+ "order": 1
+ },
+ "port": {
+ "title": "Port",
+ "description": "The server port",
+ "type": "integer",
+ "default": 22,
+ "examples": ["22"],
+ "order": 2
+ },
+ "credentials": {
+ "type": "object",
+ "title": "Authentication",
+ "description": "The server authentication method",
+ "order": 3,
+ "oneOf": [
+ {
+ "title": "Password Authentication",
+ "required": ["auth_method", "auth_user_password"],
+ "properties": {
+ "auth_method": {
+ "description": "Connect through password authentication",
+ "type": "string",
+ "const": "SSH_PASSWORD_AUTH",
+ "order": 0
+ },
+ "auth_user_password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 1
+ }
+ }
+ },
+ {
+ "title": "SSH Key Authentication",
+ "required": ["auth_method", "auth_ssh_key"],
+ "properties": {
+ "auth_method": {
+ "description": "Connect through ssh key",
+ "type": "string",
+ "const": "SSH_KEY_AUTH",
+ "order": 0
+ },
+ "auth_ssh_key": {
+ "title": "SSH Private Key",
+ "description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
+ "type": "string",
+ "airbyte_secret": true,
+ "multiline": true,
+ "order": 1
+ }
+ }
+ }
+ ]
+ },
+ "file_types": {
+ "title": "File types",
+ "description": "Coma separated file types. Currently only 'csv' and 'json' types are supported.",
+ "type": "string",
+ "default": "csv,json",
+ "order": 4,
+ "examples": ["csv,json", "csv"]
+ },
+ "folder_path": {
+ "title": "Folder Path",
+ "description": "The directory to search files for sync",
+ "type": "string",
+ "default": "",
+ "examples": ["/logs/2022"],
+ "order": 5
+ },
+ "file_pattern": {
+ "title": "File Pattern",
+ "description": "The regular expression to specify files for sync in a chosen Folder Path",
+ "type": "string",
+ "default": "",
+ "examples": [
+ "log-([0-9]{4})([0-9]{2})([0-9]{2}) - This will filter files which `log-yearmmdd`"
+ ],
+ "order": 6
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "31e3242f-dee7-4cdc-a4b8-8e06c5458517",
+ "name": "SFTP Bulk",
+ "dockerRepository": "airbyte/source-sftp-bulk",
+ "dockerImageTag": "0.1.2",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/sftp-bulk",
+ "icon": "sftp.svg",
+ "sourceType": "file",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.io/integrations/source/ftp",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "FTP Source Spec",
+ "type": "object",
+ "required": [
+ "username",
+ "host",
+ "port",
+ "stream_name",
+ "start_date",
+ "folder_path"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "username": {
+ "title": "User Name",
+ "description": "The server user",
+ "type": "string",
+ "order": 0
+ },
+ "password": {
+ "title": "Password",
+ "description": "OS-level password for logging into the jump server host",
+ "type": "string",
+ "airbyte_secret": true,
+ "order": 1
+ },
+ "private_key": {
+ "title": "Private key",
+ "description": "The private key",
+ "type": "string",
+ "multiline": true,
+ "order": 2
+ },
+ "host": {
+ "title": "Host Address",
+ "description": "The server host address",
+ "type": "string",
+ "examples": ["www.host.com", "192.0.2.1"],
+ "order": 3
+ },
+ "port": {
+ "title": "Port",
+ "description": "The server port",
+ "type": "integer",
+ "default": 22,
+ "examples": ["22"],
+ "order": 4
+ },
+ "stream_name": {
+ "title": "Stream name",
+ "description": "The name of the stream or table you want to create",
+ "type": "string",
+ "examples": ["ftp_contacts"],
+ "order": 5
+ },
+ "file_type": {
+ "title": "File type",
+ "description": "The file type you want to sync. Currently only 'csv' and 'json' files are supported.",
+ "type": "string",
+ "default": "csv",
+ "enum": ["csv", "json"],
+ "order": 6,
+ "examples": ["csv", "json"]
+ },
+ "separator": {
+ "title": "CSV Separator (Optional)",
+ "description": "The separator used in the CSV files. Define None if you want to use the Sniffer functionality",
+ "type": "string",
+ "default": ",",
+ "examples": [","],
+ "order": 7
+ },
+ "folder_path": {
+ "title": "Folder Path (Optional)",
+ "description": "The directory to search files for sync",
+ "type": "string",
+ "default": "",
+ "examples": ["/logs/2022"],
+ "order": 8
+ },
+ "file_pattern": {
+ "title": "File Pattern (Optional)",
+ "description": "The regular expression to specify files for sync in a chosen Folder Path",
+ "type": "string",
+ "default": "",
+ "examples": [
+ "log-([0-9]{4})([0-9]{2})([0-9]{2}) - This will filter files which `log-yearmmdd`"
+ ],
+ "order": 9
+ },
+ "file_most_recent": {
+ "title": "Most recent file (Optional)",
+ "description": "Sync only the most recent file for the configured folder path and file pattern",
+ "type": "boolean",
+ "default": false,
+ "order": 10
+ },
+ "start_date": {
+ "type": "string",
+ "title": "Start Date",
+ "format": "date-time",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
+ "examples": ["2017-01-25T00:00:00Z"],
+ "description": "The date from which you'd like to replicate data for all incremental streams, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
+ "order": 11
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "6f2ac653-8623-43c4-8950-19218c7caf3d",
+ "name": "Firebolt",
+ "dockerRepository": "airbyte/source-firebolt",
+ "dockerImageTag": "0.2.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/firebolt",
+ "icon": "firebolt.svg",
+ "sourceType": "database",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/firebolt",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Firebolt Spec",
+ "type": "object",
+ "required": ["username", "password", "database"],
+ "additionalProperties": true,
+ "properties": {
+ "username": {
+ "type": "string",
+ "title": "Username",
+ "description": "Firebolt email address you use to login.",
+ "examples": ["username@email.com"]
+ },
+ "password": {
+ "type": "string",
+ "title": "Password",
+ "description": "Firebolt password.",
+ "airbyte_secret": true
+ },
+ "account": {
+ "type": "string",
+ "title": "Account",
+ "description": "Firebolt account to login."
+ },
+ "host": {
+ "type": "string",
+ "title": "Host",
+ "description": "The host name of your Firebolt database.",
+ "examples": ["api.app.firebolt.io"]
+ },
+ "database": {
+ "type": "string",
+ "title": "Database",
+ "description": "The database to connect to."
+ },
+ "engine": {
+ "type": "string",
+ "title": "Engine",
+ "description": "Engine name or url to connect to."
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "7cf88806-25f5-4e1a-b422-b2fa9e1b0090",
+ "name": "Elasticsearch",
+ "dockerRepository": "airbyte/source-elasticsearch",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/elasticsearch",
+ "icon": "elasticsearch.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/source/elasticsearch",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Elasticsearch Connection Configuration",
+ "type": "object",
+ "required": ["endpoint"],
+ "additionalProperties": true,
+ "properties": {
+ "endpoint": {
+ "title": "Server Endpoint",
+ "type": "string",
+ "description": "The full url of the Elasticsearch server"
+ },
+ "authenticationMethod": {
+ "title": "Authentication Method",
+ "type": "object",
+ "description": "The type of authentication to be used",
+ "oneOf": [
+ {
+ "title": "None",
+ "additionalProperties": true,
+ "description": "No authentication will be used",
+ "required": ["method"],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "none"
+ }
+ }
+ },
+ {
+ "title": "Api Key/Secret",
+ "additionalProperties": true,
+ "description": "Use a api key and secret combination to authenticate",
+ "required": ["method", "apiKeyId", "apiKeySecret"],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "secret"
+ },
+ "apiKeyId": {
+ "title": "API Key ID",
+ "description": "The Key ID to used when accessing an enterprise Elasticsearch instance.",
+ "type": "string"
+ },
+ "apiKeySecret": {
+ "title": "API Key Secret",
+ "description": "The secret associated with the API Key ID.",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ },
+ {
+ "title": "Username/Password",
+ "additionalProperties": true,
+ "description": "Basic auth header with a username and password",
+ "required": ["method", "username", "password"],
+ "properties": {
+ "method": {
+ "type": "string",
+ "const": "basic"
+ },
+ "username": {
+ "title": "Username",
+ "description": "Basic auth username to access a secure Elasticsearch server",
+ "type": "string"
+ },
+ "password": {
+ "title": "Password",
+ "description": "Basic auth password to access a secure Elasticsearch server",
+ "type": "string",
+ "airbyte_secret": true
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "03a53b13-794a-4d6b-8544-3b36ed8f3ce4",
+ "name": "Waiteraid",
+ "dockerRepository": "airbyte/source-waiteraid",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/waiteraid",
+ "icon": "waiteraid.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Waiteraid Spec",
+ "type": "object",
+ "required": ["start_date", "auth_hash", "restid"],
+ "additionalProperties": true,
+ "properties": {
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "Start getting data from that date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "examples": ["YYYY-MM-DD"]
+ },
+ "auth_hash": {
+ "title": "Authentication Hash",
+ "type": "string",
+ "description": "Your WaiterAid API key, obtained from API request with Username and Password",
+ "airbyte_secret": true
+ },
+ "restid": {
+ "title": "Restaurant ID",
+ "type": "string",
+ "description": "Your WaiterAid restaurant id from API request to getRestaurants",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "87c58f70-6f7a-4f70-aba5-bab1a458f5ba",
+ "name": "Wikipedia Pageviews",
+ "dockerRepository": "airbyte/source-wikipedia-pageviews",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/wikipedia-pageviews",
+ "icon": "wikipediapageviews.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docsurl.com",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Wikipedia Pageviews Spec",
+ "type": "object",
+ "required": [
+ "project",
+ "access",
+ "agent",
+ "article",
+ "start",
+ "end",
+ "country"
+ ],
+ "additionalProperties": true,
+ "properties": {
+ "project": {
+ "type": "string",
+ "title": "Project",
+ "description": "If you want to filter by project, use the domain of any Wikimedia project.",
+ "examples": [
+ "en.wikipedia.org",
+ "www.mediawiki.org",
+ "commons.wikimedia.org"
+ ]
+ },
+ "access": {
+ "type": "string",
+ "title": "Access",
+ "description": "If you want to filter by access method, use one of desktop, mobile-app or mobile-web. If you are interested in pageviews regardless of access method, use all-access.",
+ "examples": ["all-access", "desktop", "mobile-app", "mobile-web"]
+ },
+ "agent": {
+ "type": "string",
+ "title": "Agent",
+ "description": "If you want to filter by agent type, use one of user, automated or spider. If you are interested in pageviews regardless of agent type, use all-agents.",
+ "examples": ["all-agents", "user", "spider", "automated"]
+ },
+ "article": {
+ "type": "string",
+ "title": "Article",
+ "description": "The title of any article in the specified project. Any spaces should be replaced with underscores. It also should be URI-encoded, so that non-URI-safe characters like %, / or ? are accepted.",
+ "examples": ["Are_You_the_One%3F"]
+ },
+ "start": {
+ "type": "string",
+ "title": "Start",
+ "description": "The date of the first day to include, in YYYYMMDD or YYYYMMDDHH format."
+ },
+ "end": {
+ "type": "string",
+ "title": "End",
+ "description": "The date of the last day to include, in YYYYMMDD or YYYYMMDDHH format."
+ },
+ "country": {
+ "type": "string",
+ "title": "Country",
+ "description": "The ISO 3166-1 alpha-2 code of a country for which to retrieve top articles.",
+ "examples": ["FR", "IN"]
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "05b0bce2-4ec4-4534-bb1a-5d0127bd91b7",
+ "name": "WorkRamp",
+ "dockerRepository": "airbyte/source-workramp",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/workramp",
+ "icon": "workramp.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/workramp",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Workramp Spec",
+ "type": "object",
+ "required": ["api_key", "academy_id"],
+ "additionalProperties": true,
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Token",
+ "description": "The API Token for Workramp",
+ "airbyte_secret": true
+ },
+ "academy_id": {
+ "type": "string",
+ "title": "Academy ID",
+ "description": "The id of the Academy"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "7865dce4-2211-4f6a-88e5-9d0fe161afe7",
+ "name": "Yandex Metrica",
+ "dockerRepository": "airbyte/source-yandex-metrica",
+ "dockerImageTag": "1.0.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/yandex-metrica",
+ "icon": "yandexmetrica.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/yandex-metrica",
+ "connectionSpecification": {
+ "$schema": "https://json-schema.org/draft-07/schema#",
+ "title": "Yandex Metrica Spec",
+ "type": "object",
+ "required": ["auth_token", "counter_id", "start_date"],
+ "additionalProperties": true,
+ "properties": {
+ "auth_token": {
+ "type": "string",
+ "title": "Authentication Token",
+ "description": "Your Yandex Metrica API access token",
+ "airbyte_secret": true,
+ "order": 0
+ },
+ "counter_id": {
+ "type": "string",
+ "title": "Counter ID",
+ "description": "Counter ID",
+ "pattern": "^[0-9]+$",
+ "order": 1
+ },
+ "start_date": {
+ "title": "Start Date",
+ "type": "string",
+ "description": "Starting point for your data replication, in format of \"YYYY-MM-DD\".",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "format": "date",
+ "examples": ["2022-01-01"],
+ "order": 2
+ },
+ "end_date": {
+ "title": "End Date",
+ "type": "string",
+ "description": "Starting point for your data replication, in format of \"YYYY-MM-DD\". If not provided will sync till most recent date.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
+ "format": "date",
+ "examples": ["2022-01-01"],
+ "order": 3
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "beta",
+ "allowedHosts": {
+ "hosts": ["api-metrica.yandex.net"]
+ }
+ },
+ {
+ "sourceDefinitionId": "9c74c2d7-531a-4ebf-b6d8-6181f805ecdc",
+ "name": "Younium",
+ "dockerRepository": "airbyte/source-younium",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/younium",
+ "icon": "younium.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/younium",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Younium Spec",
+ "type": "object",
+ "required": ["username", "password", "legal_entity"],
+ "properties": {
+ "username": {
+ "title": "Username",
+ "type": "string",
+ "description": "Username for Younium account"
+ },
+ "password": {
+ "title": "Password",
+ "type": "string",
+ "description": "Account password for younium account API key",
+ "airbyte_secret": true
+ },
+ "legal_entity": {
+ "title": "Legal Entity",
+ "type": "string",
+ "description": "Legal Entity that data should be pulled from"
+ },
+ "playground": {
+ "title": "Playground environment",
+ "type": "boolean",
+ "description": "Property defining if connector is used against playground or production environment",
+ "default": false
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "cbfd9856-1322-44fb-bcf1-0b39b7a8e92e",
+ "name": "Zoom",
+ "dockerRepository": "airbyte/source-zoom",
+ "dockerImageTag": "0.1.1",
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/zoom",
+ "icon": "zoom.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/zoom",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Zoom Spec",
+ "type": "object",
+ "required": ["jwt_token"],
+ "additionalProperties": true,
+ "properties": {
+ "jwt_token": {
+ "type": "string",
+ "description": "JWT Token",
+ "airbyte_secret": true
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ },
+ {
+ "sourceDefinitionId": "68b9c98e-0747-4c84-b05b-d30b47686725",
+ "name": "Braze",
+ "dockerRepository": "airbyte/source-braze",
+ "dockerImageTag": "0.1.3",
+ "documentationUrl": "https://docs.airbyte.io/integrations/sources/braze",
+ "icon": "braze.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/braze",
+ "connectionSpecification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Braze Spec",
+ "type": "object",
+ "additionalProperties": true,
+ "required": ["url", "api_key", "start_date"],
+ "properties": {
+ "url": {
+ "type": "string",
+ "title": "URL",
+ "description": "Braze REST API endpoint"
+ },
+ "api_key": {
+ "type": "string",
+ "title": "Rest API Key",
+ "airbyte_secret": true,
+ "description": "Braze REST API key"
+ },
+ "start_date": {
+ "type": "string",
+ "format": "date",
+ "title": "Start date",
+ "description": "Rows after this date will be synced"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": []
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha"
+ }, {
+ "sourceDefinitionId": "",
+ "name": "Yotpo",
+ "dockerRepository": "airbyte/source-yotpo",
+ "dockerImageTag": "0.1.0",
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/yotpo",
+ "icon": "yotpo.svg",
+ "sourceType": "api",
+ "spec": {
+ "documentationUrl": "https://docs.airbyte.com/integrations/sources/yotpo",
+ "connectionSpecification": {
+ "$schema": "https://json-schema.org/draft-07/schema#",
+ "title": "Yotpo Spec",
+ "type": "object",
+ "required": [ "access_token", "app_key", "start_date", "email" ],
+ "additionalProperties": true,
+ "properties": {
+ "access_token": {
+ "title": "Access Token",
+ "type": "string",
+ "description": "Access token recieved as a result of API call to https://api.yotpo.com/oauth/token (Ref- https://apidocs.yotpo.com/reference/yotpo-authentication)",
+ "airbyte_secret": true
+ },
+ "app_key": {
+ "title": "App Key",
+ "type": "string",
+ "description": "App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)"
+ },
+ "start_date": {
+ "title": "Date-From Filter",
+ "type": "string",
+ "description": "Date time filter for incremental filter, Specify which date to extract from.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
+ "examples": [
+ "2022-03-01T00:00:00.000Z"
+ ],
+ "format": "date-time"
+ },
+ "email": {
+ "title": "Registered email address",
+ "type": "string",
+ "description": "Email address registered with yotpo.",
+ "default": "example@gmail.com"
+ }
+ }
+ },
+ "supportsNormalization": false,
+ "supportsDBT": false,
+ "supported_destination_sync_modes": [ ]
+ },
+ "tombstone": false,
+ "public": true,
+ "custom": false,
+ "releaseStage": "alpha",
+ "allowedHosts": {
+ "hosts": [ "api.yotpo.com" ]
+ }
+ }
+ ]
+}
From f2bdcaa97a888376435760298f5ada62e66641fd Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Thu, 13 Apr 2023 11:40:57 +0530
Subject: [PATCH 026/187] Add stream top_reviews
---
.../integration_tests/configured_catalog.json | 9 +++++++
.../source-yotpo/source_yotpo/manifest.yaml | 27 ++++++++++++++++++-
.../source_yotpo/schemas/top_reviews.json | 26 ++++++++++++++++++
docs/integrations/sources/yotpo.md | 1 +
4 files changed, 62 insertions(+), 1 deletion(-)
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index ec576442f20d..423461ec8b2a 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -9,6 +9,15 @@
"sync_mode": "incremental",
"destination_sync_mode": "append"
},
+ {
+ "stream": {
+ "name": "top_reviews",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
{
"stream": {
"name": "webhooks",
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index d7cac7413daa..85845d0848d0 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -61,6 +61,30 @@ definitions:
$parameters:
path: "/apps/{{ config['app_key'] }}/reviews"
+ top_reviews_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["reviews"]
+ paginator:
+ type: NoPagination
+ requester:
+ type: HttpRequester
+ url_base: "https://api.yotpo.com/"
+ http_method: "GET"
+ request_parameters:
+ utoken: "{{ config['access_token'] }}"
+ authenticator:
+ type: BearerAuthenticator
+ api_token: "{{ config['access_token'] }}"
+ name: "top_reviews"
+ $parameters:
+ path: "/apps/{{ config['app_key'] }}/top_reviews"
+
webhooks_stream:
type: DeclarativeStream
retriever:
@@ -87,11 +111,12 @@ definitions:
streams:
- "#/definitions/reviews_stream"
+ - "#/definitions/top_reviews_stream"
- "#/definitions/webhooks_stream"
check:
type: CheckStream
stream_names:
- "reviews"
+ - "top_reviews"
- "webhooks"
-
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
new file mode 100644
index 000000000000..a5021d309b7a
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
@@ -0,0 +1,26 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Top Reviews Schema",
+ "type": "object",
+ "properties": {
+ "image_url": {
+ "type": ["null", "string"]
+ },
+ "score": {
+ "type": ["null", "number"]
+ },
+ "title": {
+ "type": ["null", "string"]
+ },
+ "content": {
+ "type": ["null", "string"]
+ },
+ "product_url": {
+ "type": ["null", "string"]
+ },
+ "created_at": {
+ "type": ["null", "string"],
+ "format": "date-time"
+ }
+ }
+}
diff --git a/docs/integrations/sources/yotpo.md b/docs/integrations/sources/yotpo.md
index fe305d6b75a9..9aadc32279f8 100644
--- a/docs/integrations/sources/yotpo.md
+++ b/docs/integrations/sources/yotpo.md
@@ -48,6 +48,7 @@ The Yotpo source connector supports the following [sync modes](https://docs.airb
## Supported Streams
- reviews
+- top_reviews
- webhooks
## API method example
From 5a5b80a6035927c95ee322829ef15cc8f78bd714 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Thu, 13 Apr 2023 13:28:36 +0530
Subject: [PATCH 027/187] Add new stream: privacy_data
---
.../integration_tests/configured_catalog.json | 9 +++++++
.../source-yotpo/source_yotpo/manifest.yaml | 27 +++++++++++++++++++
.../source_yotpo/schemas/privacy_data.json | 10 +++++++
.../source-yotpo/source_yotpo/spec.yaml | 8 +++++-
docs/integrations/sources/yotpo.md | 1 +
5 files changed, 54 insertions(+), 1 deletion(-)
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index 423461ec8b2a..72b72de37f63 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -1,5 +1,14 @@
{
"streams": [
+ {
+ "stream": {
+ "name": "privacy_data",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
{
"stream": {
"name": "reviews",
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index 85845d0848d0..ef21492e6054 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -23,6 +23,31 @@ definitions:
requester:
$ref: "#/definitions/requester"
+ privacy_data_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["response"]
+ paginator:
+ type: NoPagination
+ requester:
+ type: HttpRequester
+ url_base: "https://api.yotpo.com/privacy"
+ http_method: "GET"
+ request_parameters:
+ utoken: "{{ config['access_token'] }}"
+ email: "{{ config['email'] }}"
+ authenticator:
+ type: BearerAuthenticator
+ api_token: "{{ config['access_token'] }}"
+ name: "privacy_data"
+ $parameters:
+ path: "/data/exists"
+
reviews_stream:
type: DeclarativeStream
retriever:
@@ -110,6 +135,7 @@ definitions:
path: "/apps/{{ config['app_key'] }}/webhooks"
streams:
+ - "#/definitions/privacy_data_stream"
- "#/definitions/reviews_stream"
- "#/definitions/top_reviews_stream"
- "#/definitions/webhooks_stream"
@@ -117,6 +143,7 @@ streams:
check:
type: CheckStream
stream_names:
+ - "privacy_data"
- "reviews"
- "top_reviews"
- "webhooks"
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json
new file mode 100644
index 000000000000..552feb4e7ef6
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json
@@ -0,0 +1,10 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Privacy Data",
+ "type": "object",
+ "properties": {
+ "has_data": {
+ "type": ["null", "boolean"]
+ }
+ }
+}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
index 1d31374cde73..046e27710579 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
@@ -7,6 +7,7 @@ connectionSpecification:
- access_token
- app_key
- date_from
+ - email
additionalProperties: true
properties:
access_token:
@@ -21,4 +22,9 @@ connectionSpecification:
date_from:
title: Date From Filter
type: string
- description: Date time filter for incremental filter, Specify which date to extract from.
\ No newline at end of file
+ description: Date time filter for incremental filter, Specify which date to extract from.
+ email:
+ title: Registered email address
+ type: string
+ description: Email address registered with yotpo.
+ default: example@gmail.com
\ No newline at end of file
diff --git a/docs/integrations/sources/yotpo.md b/docs/integrations/sources/yotpo.md
index 9aadc32279f8..73fe4aa5f641 100644
--- a/docs/integrations/sources/yotpo.md
+++ b/docs/integrations/sources/yotpo.md
@@ -47,6 +47,7 @@ The Yotpo source connector supports the following [sync modes](https://docs.airb
## Supported Streams
+- privacy_data
- reviews
- top_reviews
- webhooks
From eab3d5ae833a15ff9c1998432e4a820f593e3819 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Thu, 13 Apr 2023 14:00:51 +0530
Subject: [PATCH 028/187] add new stream: privacy user, refactor
---
.../integration_tests/configured_catalog.json | 9 ++++
.../source-yotpo/source_yotpo/manifest.yaml | 44 ++++++++-----------
.../source_yotpo/schemas/privacy_user.json | 13 ++++++
3 files changed, 41 insertions(+), 25 deletions(-)
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index 72b72de37f63..a52846939dd6 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -9,6 +9,15 @@
"sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
},
+ {
+ "stream": {
+ "name": "privacy_user",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
{
"stream": {
"name": "reviews",
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index ef21492e6054..cbd11470f2b3 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -1,15 +1,15 @@
version: "0.29.0"
definitions:
- requester:
+ privacy_stream_requester:
type: HttpRequester
- url_base: "https://api.yotpo.com/v1"
+ url_base: "https://api.yotpo.com/privacy"
http_method: "GET"
- authenticator:
- type: BearerAuthenticator
- api_token: "{{ config['access_token'] }}"
+ request_parameters:
+ utoken: "{{ config['access_token'] }}"
+ email: "{{ config['email'] }}"
- base_stream:
+ privacy_data_stream:
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -17,13 +17,16 @@ definitions:
type: RecordSelector
extractor:
type: DpathExtractor
- field_path: []
+ field_path: ["response"]
paginator:
type: NoPagination
requester:
- $ref: "#/definitions/requester"
-
- privacy_data_stream:
+ $ref: "#/definitions/privacy_stream_requester"
+ name: "privacy_data"
+ $parameters:
+ path: "/data/exists"
+
+ privacy_user_stream:
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -31,22 +34,14 @@ definitions:
type: RecordSelector
extractor:
type: DpathExtractor
- field_path: ["response"]
+ field_path: ["status"]
paginator:
type: NoPagination
requester:
- type: HttpRequester
- url_base: "https://api.yotpo.com/privacy"
- http_method: "GET"
- request_parameters:
- utoken: "{{ config['access_token'] }}"
- email: "{{ config['email'] }}"
- authenticator:
- type: BearerAuthenticator
- api_token: "{{ config['access_token'] }}"
- name: "privacy_data"
+ $ref: "#/definitions/privacy_stream_requester"
+ name: "privacy_user"
$parameters:
- path: "/data/exists"
+ path: "/data"
reviews_stream:
type: DeclarativeStream
@@ -127,15 +122,13 @@ definitions:
http_method: "GET"
request_parameters:
utoken: "{{ config['access_token'] }}"
- authenticator:
- type: BearerAuthenticator
- api_token: "{{ config['access_token'] }}"
name: "webhooks"
$parameters:
path: "/apps/{{ config['app_key'] }}/webhooks"
streams:
- "#/definitions/privacy_data_stream"
+ - "#/definitions/privacy_user_stream"
- "#/definitions/reviews_stream"
- "#/definitions/top_reviews_stream"
- "#/definitions/webhooks_stream"
@@ -144,6 +137,7 @@ check:
type: CheckStream
stream_names:
- "privacy_data"
+ - "privacy_user"
- "reviews"
- "top_reviews"
- "webhooks"
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json
new file mode 100644
index 000000000000..7e2817c09be2
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json
@@ -0,0 +1,13 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Privacy User",
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": ["null", "number"]
+ },
+ "message": {
+ "type": ["null", "string"]
+ }
+ }
+}
From d40445c133d07c92ae59d4d63617af50ef1a61cd Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Thu, 13 Apr 2023 14:30:03 +0530
Subject: [PATCH 029/187] Add new streams, update docs, update definitions
---
.../src/main/resources/seed/oss_catalog.json | 32 +++++++++++++++----
.../src/main/resources/seed/source_specs.yaml | 12 ++++++-
.../integration_tests/configured_catalog.json | 9 ++++++
.../source-yotpo/source_yotpo/manifest.yaml | 27 ++++++++++++++++
.../schemas/reviews_bottomline.json | 18 +++++++++++
.../source-yotpo/source_yotpo/spec.yaml | 6 +++-
docs/integrations/sources/yotpo.md | 8 +++--
7 files changed, 102 insertions(+), 10 deletions(-)
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index c88672b1c49f..ff8a38a89362 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -28416,15 +28416,35 @@
"$schema": "https://json-schema.org/draft-07/schema#",
"title": "Yotpo Spec",
"type": "object",
- "required": [ "auth_token", "counter_id", "start_date" ],
+ "required": [ "access_token", "app_key", "date_from", "email" ],
"additionalProperties": true,
"properties": {
- "auth_token": {
+ "access_token": {
+ "title": "Access Token",
"type": "string",
- "title": "Authentication Token",
- "description": "Your Yandex Metrica API access token",
- "airbyte_secret": true,
- "order": 0
+ "description": "Access token recieved as a result of API call to https://api.yotpo.com/oauth/token (Ref- https://apidocs.yotpo.com/reference/yotpo-authentication)",
+ "airbyte_secret": true
+ },
+ "app_key": {
+ "title": "App Key",
+ "type": "string",
+ "description": "App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)"
+ },
+ "date_from": {
+ "title": "Date-From Filter",
+ "type": "string",
+ "description": "Date time filter for incremental filter, Specify which date to extract from.",
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
+ "examples": [
+ "2022-03-01T00:00:00.000Z"
+ ],
+ "format": "date-time"
+ },
+ "email": {
+ "title": "Registered email address",
+ "type": "string",
+ "description": "Email address registered with yotpo.",
+ "default": "example@gmail.com"
}
}
},
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
index 81893445a2bd..6ad04de392d8 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
@@ -18350,6 +18350,7 @@
- access_token
- app_key
- date_from
+ - email
additionalProperties: true
properties:
access_token:
@@ -18362,9 +18363,18 @@
type: string
description: App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)
date_from:
- title: Date From Filter
+ title: Date-From Filter
type: string
description: Date time filter for incremental filter, Specify which date to extract from.
+ pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$"
+ examples:
+ - "2022-03-01T00:00:00.000Z"
+ format: "date-time"
+ email:
+ title: Registered email address
+ type: string
+ description: Email address registered with yotpo.
+ default: example@gmail.com
supportsNormalization: false
supportsDBT: false
supported_destination_sync_modes: []
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index a52846939dd6..2d7be78bcee3 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -27,6 +27,15 @@
"sync_mode": "incremental",
"destination_sync_mode": "append"
},
+ {
+ "stream": {
+ "name": "reviews_bottomline",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
{
"stream": {
"name": "top_reviews",
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index cbd11470f2b3..251fef833a58 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -81,6 +81,31 @@ definitions:
$parameters:
path: "/apps/{{ config['app_key'] }}/reviews"
+ reviews_bottomline_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["response"]
+ paginator:
+ type: NoPagination
+ requester:
+ type: HttpRequester
+ url_base: "https://api.yotpo.com"
+ http_method: "GET"
+ request_parameters:
+ utoken: "{{ config['access_token'] }}"
+ authenticator:
+ type: BearerAuthenticator
+ api_token: "{{ config['access_token'] }}"
+ name: "reviews_bottomline"
+ $parameters:
+ path: "/products/{{ config['app_key'] }}/yotpo_site_reviews/bottomline"
+
+
top_reviews_stream:
type: DeclarativeStream
retriever:
@@ -130,6 +155,7 @@ streams:
- "#/definitions/privacy_data_stream"
- "#/definitions/privacy_user_stream"
- "#/definitions/reviews_stream"
+ - "#/definitions/reviews_bottomline_stream"
- "#/definitions/top_reviews_stream"
- "#/definitions/webhooks_stream"
@@ -139,5 +165,6 @@ check:
- "privacy_data"
- "privacy_user"
- "reviews"
+ - "reviews_bottomline"
- "top_reviews"
- "webhooks"
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
new file mode 100644
index 000000000000..8188f59bb5ae
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
@@ -0,0 +1,18 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Reviews Bottomline",
+ "type": "object",
+ "properties": {
+ "bottomline": {
+ "type": "object",
+ "properties": {
+ "average_score": {
+ "type": ["null", "number"]
+ },
+ "total_reviews": {
+ "type": ["null", "number"]
+ }
+ }
+ }
+ }
+}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
index 046e27710579..c17a1ef8afc2 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
@@ -20,9 +20,13 @@ connectionSpecification:
type: string
description: App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)
date_from:
- title: Date From Filter
+ title: Date-From Filter
type: string
description: Date time filter for incremental filter, Specify which date to extract from.
+ pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$"
+ examples:
+ - "2022-03-01T00:00:00.000Z"
+ format: "date-time"
email:
title: Registered email address
type: string
diff --git a/docs/integrations/sources/yotpo.md b/docs/integrations/sources/yotpo.md
index 73fe4aa5f641..63e6448c2f14 100644
--- a/docs/integrations/sources/yotpo.md
+++ b/docs/integrations/sources/yotpo.md
@@ -15,6 +15,8 @@ Access Token (which acts as bearer token) is mandate for this connector to work,
- Available params
- access_token: The generated access token
- app_key: Seen at the yotpo settings (ref - https://settings.yotpo.com/#/general_settings)
+ - date_from: Date filter for eligible streams, enter
+ - email
## Step 2: Set up the Yotpo connector in Airbyte
@@ -23,14 +25,14 @@ Access Token (which acts as bearer token) is mandate for this connector to work,
1. [Log into your Airbyte Cloud](https://cloud.airbyte.io/workspaces) account.
2. In the left navigation bar, click **Sources**. In the top-right corner, click **+new source**.
3. On the Set up the source page, enter the name for the Yotpo connector and select **Yotpo** from the Source type dropdown.
-4. Enter your `api_key`.
+4. Enter your `access_token`.
5. Click **Set up source**.
### For Airbyte OSS:
1. Navigate to the Airbyte Open Source dashboard.
2. Set the name for your source.
-3. Enter your `api_key`.
+3. Enter your `access_token`.
5. Click **Set up source**.
## Supported sync modes
@@ -48,7 +50,9 @@ The Yotpo source connector supports the following [sync modes](https://docs.airb
## Supported Streams
- privacy_data
+- privacy_user
- reviews
+- reviews_bottomline
- top_reviews
- webhooks
From 1cab6575a7f693914ab7cab00457193ff1a30783 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Thu, 13 Apr 2023 14:42:31 +0530
Subject: [PATCH 030/187] EOF
---
.../connectors/source-yotpo/source_yotpo/spec.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
index c17a1ef8afc2..8408215c011d 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
@@ -31,4 +31,4 @@ connectionSpecification:
title: Registered email address
type: string
description: Email address registered with yotpo.
- default: example@gmail.com
\ No newline at end of file
+ default: example@gmail.com
From dbf309a5d68b69db84a52dc299a5fc08fc0b3ae6 Mon Sep 17 00:00:00 2001
From: Visnu Pitiyanuvath
Date: Wed, 12 Apr 2023 08:26:02 -0700
Subject: [PATCH 031/187] Source Stripe: expand tiers when syncing plans
(#19906)
* Expand tiers when syncing plans
* Update Plans stream schema
* Re-bump
* Bump
* Remove string as a plan schema
* bump
* Update changelog
---------
Co-authored-by: Sherif A. Nada
Co-authored-by: sh4sh <6833405+sh4sh@users.noreply.github.com>
Co-authored-by: Marcos Marx
---
airbyte-integrations/connectors/source-stripe/Dockerfile | 2 +-
.../source-stripe/source_stripe/schemas/plans.json | 8 +++++++-
.../connectors/source-stripe/source_stripe/streams.py | 4 ++++
docs/integrations/sources/stripe.md | 3 ++-
4 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/airbyte-integrations/connectors/source-stripe/Dockerfile b/airbyte-integrations/connectors/source-stripe/Dockerfile
index 520d0dea76f4..e40ccfaa4ac4 100644
--- a/airbyte-integrations/connectors/source-stripe/Dockerfile
+++ b/airbyte-integrations/connectors/source-stripe/Dockerfile
@@ -13,5 +13,5 @@ ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
-LABEL io.airbyte.version=3.0.5
+LABEL io.airbyte.version=3.1.0
LABEL io.airbyte.name=airbyte/source-stripe
diff --git a/airbyte-integrations/connectors/source-stripe/source_stripe/schemas/plans.json b/airbyte-integrations/connectors/source-stripe/source_stripe/schemas/plans.json
index 099b518427bc..3af88a962ca0 100644
--- a/airbyte-integrations/connectors/source-stripe/source_stripe/schemas/plans.json
+++ b/airbyte-integrations/connectors/source-stripe/source_stripe/schemas/plans.json
@@ -1,5 +1,5 @@
{
- "type": ["null", "object", "string"],
+ "type": ["null", "object"],
"properties": {
"nickname": {
"type": ["null", "string"]
@@ -12,9 +12,15 @@
"flat_amount": {
"type": ["null", "integer"]
},
+ "flat_amount_decimal": {
+ "type": ["null", "string"]
+ },
"unit_amount": {
"type": ["null", "integer"]
},
+ "unit_amount_decimal": {
+ "type": ["null", "string"]
+ },
"up_to": {
"type": ["null", "integer"]
}
diff --git a/airbyte-integrations/connectors/source-stripe/source_stripe/streams.py b/airbyte-integrations/connectors/source-stripe/source_stripe/streams.py
index b39e4ad8a037..21209a0b15b4 100644
--- a/airbyte-integrations/connectors/source-stripe/source_stripe/streams.py
+++ b/airbyte-integrations/connectors/source-stripe/source_stripe/streams.py
@@ -422,6 +422,10 @@ class Plans(IncrementalStripeStream):
def path(self, **kwargs):
return "plans"
+ def request_params(self, stream_slice: Mapping[str, Any] = None, **kwargs):
+ params = super().request_params(stream_slice=stream_slice, **kwargs)
+ params["expand[]"] = ["data.tiers"]
+ return params
class Products(IncrementalStripeStream):
"""
diff --git a/docs/integrations/sources/stripe.md b/docs/integrations/sources/stripe.md
index 8f29c88dfadd..1c742210ac87 100644
--- a/docs/integrations/sources/stripe.md
+++ b/docs/integrations/sources/stripe.md
@@ -81,7 +81,8 @@ The Stripe connector should not run into Stripe API limitations under normal usa
## Changelog
| Version | Date | Pull Request | Subject |
-|:--------|:-----------|:---------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------|
+| :------ | :--------- | :------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- |
+| 3.1.0 | 2023-03-10 | [19906](https://github.com/airbytehq/airbyte/pull/19906) | Expand `tiers` when syncing `Plans` streams |
| 3.0.5 | 2023-03-25 | [22866](https://github.com/airbytehq/airbyte/pull/22866) | Specified date formatting in specification |
| 3.0.4 | 2023-03-24 | [24471](https://github.com/airbytehq/airbyte/pull/24471) | Fix stream slices for single sliced streams |
| 3.0.3 | 2023-03-17 | [24179](https://github.com/airbytehq/airbyte/pull/24179) | Get customer's attributes safely |
From 1ffe136993a3ceea60c9a28681d8cebc4a24d988 Mon Sep 17 00:00:00 2001
From: Augustin
Date: Wed, 12 Apr 2023 17:48:52 +0200
Subject: [PATCH 032/187] airbyte-ci: improve metadata validation perfs
(#25107)
---
.../pipelines/actions/environments.py | 36 +--------
.../pipelines/pipelines/metadata.py | 76 +++++++------------
2 files changed, 28 insertions(+), 84 deletions(-)
diff --git a/tools/ci_connector_ops/ci_connector_ops/pipelines/actions/environments.py b/tools/ci_connector_ops/ci_connector_ops/pipelines/actions/environments.py
index 4df55349b6a8..e0d83d353b0f 100644
--- a/tools/ci_connector_ops/ci_connector_ops/pipelines/actions/environments.py
+++ b/tools/ci_connector_ops/ci_connector_ops/pipelines/actions/environments.py
@@ -55,7 +55,7 @@ def with_python_base(context: PipelineContext, python_image_name: str = "python:
context.dagger_client.container()
.from_(python_image_name)
.with_mounted_cache("/root/.cache/pip", pip_cache, sharing=CacheSharingMode.LOCKED)
- .with_mounted_directory("/tools", context.get_repo_dir("tools", include=["ci_credentials", "ci_common_utils"], exclude=[".venv"]))
+ .with_mounted_directory("/tools", context.get_repo_dir("tools", include=["ci_credentials", "ci_common_utils"]))
.with_exec(["pip", "install", "--upgrade", "pip"])
)
@@ -452,25 +452,11 @@ def with_poetry(context: PipelineContext) -> Container:
python_with_poetry = with_pip_packages(python_with_git, ["poetry"])
poetry_cache: CacheVolume = context.dagger_client.cache_volume("poetry_cache")
- poetry_with_cache = python_with_poetry.with_mounted_cache("/root/.cache/pypoetry", poetry_cache, sharing=CacheSharingMode.PRIVATE)
+ poetry_with_cache = python_with_poetry.with_mounted_cache("/root/.cache/pypoetry", poetry_cache, sharing=CacheSharingMode.SHARED)
return poetry_with_cache
-def with_pipx(base_python_container: Container) -> Container:
- """Installs pipx in a python container.
-
- Args:
- base_python_container (Container): The container to install pipx on.
-
- Returns:
- Container: A python environment with pipx installed.
- """
- python_with_pipx = with_pip_packages(base_python_container, ["pipx"]).with_env_variable("PIPX_BIN_DIR", "/usr/local/bin")
-
- return python_with_pipx
-
-
def with_poetry_module(context: PipelineContext, parent_dir: Directory, module_path: str) -> Container:
"""Sets up a Poetry module.
@@ -489,24 +475,6 @@ def with_poetry_module(context: PipelineContext, parent_dir: Directory, module_p
)
-def with_pipx_module(context: PipelineContext, parent_dir_path: str, module_path: str, include: List[str]) -> Container:
- """Installs a pipx module
-
- Args:
- context (PipelineContext): The current pipeline context
- Returns:
- Container: A python environment with dependencies installed using pipx.
- """
- pipx_include = [module_path] + include
- pipx_install_dependencies_cmd = ["pipx", "install", module_path]
- src = context.get_repo_dir(parent_dir_path, exclude=DEFAULT_PYTHON_EXCLUDE, include=pipx_include)
-
- python_base_environment = with_python_base(context, "python:3.9")
- python_with_pipx = with_pipx(python_base_environment)
-
- return python_with_pipx.with_mounted_directory("/src", src).with_workdir("/src").with_exec(pipx_install_dependencies_cmd)
-
-
def with_integration_base(context: PipelineContext, jdk_version: str = "17.0.4") -> Container:
"""Create an integration base container.
diff --git a/tools/ci_connector_ops/ci_connector_ops/pipelines/pipelines/metadata.py b/tools/ci_connector_ops/ci_connector_ops/pipelines/pipelines/metadata.py
index ef93eaa192e2..e1caa509d8c7 100644
--- a/tools/ci_connector_ops/ci_connector_ops/pipelines/pipelines/metadata.py
+++ b/tools/ci_connector_ops/ci_connector_ops/pipelines/pipelines/metadata.py
@@ -1,54 +1,41 @@
-import dagger
-from typing import Optional, Set, List
+#
+# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
+#
from pathlib import Path
+from typing import Optional, Set
+import dagger
+from ci_connector_ops.pipelines.actions.environments import with_poetry_module
from ci_connector_ops.pipelines.bases import Step, StepStatus, TestReport
-from ci_connector_ops.pipelines.actions.environments import with_poetry_module, with_pipx_module, DEFAULT_PYTHON_EXCLUDE
from ci_connector_ops.pipelines.contexts import PipelineContext
-from ci_connector_ops.pipelines.utils import (
- DAGGER_CONFIG,
- execute_concurrently,
-)
+from ci_connector_ops.pipelines.utils import DAGGER_CONFIG, execute_concurrently
METADATA_DIR = "airbyte-ci/connectors/metadata_service"
METADATA_LIB_MODULE_PATH = "lib"
METADATA_ORCHESTRATOR_MODULE_PATH = "orchestrator"
-class TestPoetryModule(Step):
+class PoetryRun(Step):
def __init__(self, context: PipelineContext, title: str, parent_dir_path: str, module_path: str):
self.title = title
- self.parent_dir_path = parent_dir_path
- self.module_path = module_path
super().__init__(context)
+ self.parent_dir = self.context.get_repo_dir(parent_dir_path)
+ self.module_path = module_path
+ self.poetry_run_container = with_poetry_module(self.context, self.parent_dir, self.module_path).with_entrypoint(["poetry", "run"])
- async def _run(self) -> StepStatus:
- # TODO (ben): Use the GlobalExclusion when merged (https://github.com/airbytehq/airbyte/pull/24225/files#diff-c86417158894333350d986efd59ffada645270c1c65b4eec7645a0b63ac2d915R46)
- parent_dir = self.context.get_repo_dir(self.parent_dir_path, exclude=DEFAULT_PYTHON_EXCLUDE)
- metadata_lib_module = with_poetry_module(self.context, parent_dir, self.module_path)
- run_test = metadata_lib_module.with_exec(["poetry", "run", "pytest"])
- return await self.get_step_result(run_test)
+ async def _run(self, poetry_run_args: list) -> StepStatus:
+ poetry_run_exec = self.poetry_run_container.with_exec(poetry_run_args)
+ return await self.get_step_result(poetry_run_exec)
-class SimpleExecStep(Step):
- def __init__(self, context: PipelineContext, title: str, args: List[str], parent_container: dagger.Container):
- self.title = title
- self.args = args
- self.parent_container = parent_container
- super().__init__(context)
+class MetadataValidation(PoetryRun):
+ def __init__(self, context: PipelineContext, metadata_file_path: Path):
+ super().__init__(context, f"Validate {metadata_file_path}", METADATA_DIR, METADATA_LIB_MODULE_PATH)
+ self.metadata_file = self.context.get_repo_dir(str(metadata_file_path), include=["metadata.yaml"]).file("metadata.yaml")
+ self.poetry_run_container = self.poetry_run_container.with_mounted_file("metadata.yaml", self.metadata_file)
async def _run(self) -> StepStatus:
- run_command = self.parent_container.with_exec(self.args)
- return await self.get_step_result(run_command)
-
-
-def metadata_validation_step(metadata_pipeline_context: PipelineContext, metadata_path: Path, parent_container: dagger.Container) -> Step:
- return SimpleExecStep(
- context=metadata_pipeline_context,
- title=f"Validate Connector Metadata Manifest: {metadata_path}",
- args=["metadata_service", "validate", str(metadata_path)],
- parent_container=parent_container,
- )
+ return await super()._run(["metadata_service", "validate", "metadata.yaml"])
async def run_metadata_validation_pipeline(
@@ -72,21 +59,10 @@ async def run_metadata_validation_pipeline(
async with dagger.Connection(DAGGER_CONFIG) as dagger_client:
metadata_pipeline_context.dagger_client = dagger_client.pipeline(metadata_pipeline_context.pipeline_name)
-
async with metadata_pipeline_context:
- parent_container = with_pipx_module(
- metadata_pipeline_context,
- ".",
- f"{METADATA_DIR}/{METADATA_LIB_MODULE_PATH}",
- include=["airbyte-integrations/connectors/*"],
- )
-
- validation_steps = [
- metadata_validation_step(metadata_pipeline_context, metadata_path, parent_container).run
- for metadata_path in metadata_source_paths
- ]
+ validation_steps = [MetadataValidation(metadata_pipeline_context, metadata_path).run for metadata_path in metadata_source_paths]
- results = await execute_concurrently(validation_steps)
+ results = await execute_concurrently(validation_steps, concurrency=len(validation_steps))
metadata_pipeline_context.test_report = TestReport(pipeline_context=metadata_pipeline_context, steps_results=results)
return metadata_pipeline_context.test_report.success
@@ -113,13 +89,13 @@ async def run_metadata_lib_test_pipeline(
async with dagger.Connection(DAGGER_CONFIG) as dagger_client:
metadata_pipeline_context.dagger_client = dagger_client.pipeline(metadata_pipeline_context.pipeline_name)
async with metadata_pipeline_context:
- test_lib_step = TestPoetryModule(
+ test_lib_step = PoetryRun(
context=metadata_pipeline_context,
title="Test Metadata Service Lib",
parent_dir_path=METADATA_DIR,
module_path=METADATA_LIB_MODULE_PATH,
)
- result = await test_lib_step.run()
+ result = await test_lib_step.run(["pytest"])
metadata_pipeline_context.test_report = TestReport(pipeline_context=metadata_pipeline_context, steps_results=[result])
return metadata_pipeline_context.test_report.success
@@ -146,13 +122,13 @@ async def run_metadata_orchestrator_test_pipeline(
async with dagger.Connection(DAGGER_CONFIG) as dagger_client:
metadata_pipeline_context.dagger_client = dagger_client.pipeline(metadata_pipeline_context.pipeline_name)
async with metadata_pipeline_context:
- test_orch_step = TestPoetryModule(
+ test_orch_step = PoetryRun(
context=metadata_pipeline_context,
title="Test Metadata Service Orchestrator",
parent_dir_path=METADATA_DIR,
module_path=METADATA_ORCHESTRATOR_MODULE_PATH,
)
- result = await test_orch_step.run()
+ result = await test_orch_step.run(["pytest"])
metadata_pipeline_context.test_report = TestReport(pipeline_context=metadata_pipeline_context, steps_results=[result])
return metadata_pipeline_context.test_report.success
From 941b5d9312a744bb5a1fba04af6a3f2c227285ba Mon Sep 17 00:00:00 2001
From: Augustin
Date: Wed, 12 Apr 2023 18:37:46 +0200
Subject: [PATCH 033/187] metadata service: upload metadata files to gcs
(#25115)
---
.../lib/metadata_service/commands.py | 28 +-
.../lib/metadata_service/gcs_upload.py | 41 ++
.../metadata_service/lib/poetry.lock | 558 +++++++++++++++++-
.../metadata_service/lib/pyproject.toml | 3 +
.../lib/tests/test_commands.py | 73 +++
.../lib/tests/test_gcs_upload.py | 89 +++
.../lib/tests/test_metadata_validator.py | 28 -
7 files changed, 782 insertions(+), 38 deletions(-)
create mode 100644 airbyte-ci/connectors/metadata_service/lib/metadata_service/gcs_upload.py
create mode 100644 airbyte-ci/connectors/metadata_service/lib/tests/test_commands.py
create mode 100644 airbyte-ci/connectors/metadata_service/lib/tests/test_gcs_upload.py
delete mode 100644 airbyte-ci/connectors/metadata_service/lib/tests/test_metadata_validator.py
diff --git a/airbyte-ci/connectors/metadata_service/lib/metadata_service/commands.py b/airbyte-ci/connectors/metadata_service/lib/metadata_service/commands.py
index 79afa721d1df..7ecdfcad9928 100644
--- a/airbyte-ci/connectors/metadata_service/lib/metadata_service/commands.py
+++ b/airbyte-ci/connectors/metadata_service/lib/metadata_service/commands.py
@@ -1,7 +1,12 @@
-import click
+#
+# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
+#
import pathlib
+import click
+from metadata_service.gcs_upload import upload_metadata_to_gcs
from metadata_service.validators.metadata_validator import validate_metadata_file
+from pydantic import ValidationError
@click.group(help="Airbyte Metadata Service top-level command group.")
@@ -12,7 +17,7 @@ def metadata_service():
@metadata_service.command(help="Validate a given metadata YAML file.")
@click.argument("file_path", type=click.Path(exists=True, path_type=pathlib.Path))
def validate(file_path: pathlib.Path):
- file_path = file_path if not file_path.is_dir() else file_path / "metadata.yml"
+ file_path = file_path if not file_path.is_dir() else file_path / "metadata.yaml"
click.echo(f"Validating {file_path}...")
@@ -23,3 +28,22 @@ def validate(file_path: pathlib.Path):
click.echo(f"{file_path} is not a valid ConnectorMetadataDefinitionV1 YAML file.")
click.echo(str(error))
exit(1)
+
+
+@metadata_service.command(help="Upload a metadata YAML file to a GCS bucket.")
+@click.argument("metadata-file-path", type=click.Path(exists=True, path_type=pathlib.Path))
+@click.argument("bucket-name", type=click.STRING)
+@click.option(
+ "--service-account-file-path", "-sa", type=click.Path(exists=True, path_type=pathlib.Path), envvar="GOOGLE_APPLICATION_CREDENTIALS"
+)
+def upload(metadata_file_path: pathlib.Path, bucket_name: str, service_account_file_path: pathlib.Path):
+ metadata_file_path = metadata_file_path if not metadata_file_path.is_dir() else metadata_file_path / "metadata.yaml"
+ try:
+ uploaded, blob_id = upload_metadata_to_gcs(bucket_name, metadata_file_path, service_account_file_path)
+ except (ValidationError, FileNotFoundError) as e:
+ click.secho(f"The metadata file could not be uploaded: {str(e)}", color="red")
+ exit(1)
+ if uploaded:
+ click.secho(f"The metadata file {metadata_file_path} was uploaded to {blob_id}.", color="green")
+ else:
+ click.secho(f"The metadata file {metadata_file_path} was not uploaded.", color="yellow")
diff --git a/airbyte-ci/connectors/metadata_service/lib/metadata_service/gcs_upload.py b/airbyte-ci/connectors/metadata_service/lib/metadata_service/gcs_upload.py
new file mode 100644
index 000000000000..909ccd28f0cb
--- /dev/null
+++ b/airbyte-ci/connectors/metadata_service/lib/metadata_service/gcs_upload.py
@@ -0,0 +1,41 @@
+#
+# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
+#
+from pathlib import Path
+from typing import Tuple
+
+import yaml
+from google.cloud import storage
+from google.oauth2 import service_account
+from metadata_service.models.generated.ConnectorMetadataDefinitionV1 import ConnectorMetadataDefinitionV1
+
+
+def upload_metadata_to_gcs(bucket_name: str, metadata_file_path: Path, service_account_file_path: Path) -> Tuple[bool, str]:
+ """Upload a metadata file to a GCS bucket.
+
+ If the per 'version' key already exists it won't be overwritten.
+ Also updates the 'latest' key on each new version.
+
+ Args:
+ bucket_name (str): Name of the GCS bucket to which the metadata file will be uploade.
+ metadata_file_path (Path): Path to the metadata file.
+ service_account_file_path (Path): Path to the JSON file with the service account allowed to read and write on the bucket.
+ Returns:
+ Tuple[bool, str]: Whether the metadata file was uploaded and its blob id.
+ """
+ uploaded = False
+ raw_metadata = yaml.safe_load(metadata_file_path.read_text())
+ metadata = ConnectorMetadataDefinitionV1.parse_obj(raw_metadata)
+
+ credentials = service_account.Credentials.from_service_account_file(service_account_file_path)
+ storage_client = storage.Client(credentials=credentials)
+ bucket = storage_client.bucket(bucket_name)
+
+ version_blob = bucket.blob(f"metadata/{metadata.data.dockerRepository}/{metadata.data.dockerImageTag}/metadata.yaml")
+ latest_blob = bucket.blob(f"metadata/{metadata.data.dockerRepository}/latest/metadata.yaml")
+ if not version_blob.exists():
+ version_blob.upload_from_filename(str(metadata_file_path))
+ uploaded = True
+ if version_blob.etag != latest_blob.etag:
+ latest_blob.upload_from_filename(str(metadata_file_path))
+ return uploaded, version_blob.id
diff --git a/airbyte-ci/connectors/metadata_service/lib/poetry.lock b/airbyte-ci/connectors/metadata_service/lib/poetry.lock
index 47aadc95d5f5..a4530e55f5f2 100644
--- a/airbyte-ci/connectors/metadata_service/lib/poetry.lock
+++ b/airbyte-ci/connectors/metadata_service/lib/poetry.lock
@@ -1,4 +1,4 @@
-# This file is automatically @generated by Poetry and should not be changed by hand.
+# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand.
[[package]]
name = "argcomplete"
@@ -104,11 +104,23 @@ d = ["aiohttp (>=3.7.4)"]
jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
uvloop = ["uvloop (>=0.15.2)"]
+[[package]]
+name = "cachetools"
+version = "5.3.0"
+description = "Extensible memoizing collections and decorators"
+category = "main"
+optional = false
+python-versions = "~=3.7"
+files = [
+ {file = "cachetools-5.3.0-py3-none-any.whl", hash = "sha256:429e1a1e845c008ea6c85aa35d4b98b65d6a9763eeef3e37e92728a12d1de9d4"},
+ {file = "cachetools-5.3.0.tar.gz", hash = "sha256:13dfddc7b8df938c21a940dfa6557ce6e94a2f1cdfa58eb90c805721d58f2c14"},
+]
+
[[package]]
name = "certifi"
version = "2022.12.7"
description = "Python package for providing Mozilla's CA Bundle."
-category = "dev"
+category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -132,7 +144,7 @@ files = [
name = "charset-normalizer"
version = "3.1.0"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
-category = "dev"
+category = "main"
optional = false
python-versions = ">=3.7.0"
files = [
@@ -329,6 +341,78 @@ files = [
[package.extras]
test = ["pytest (>=6)"]
+[[package]]
+name = "future"
+version = "0.18.3"
+description = "Clean single-source support for Python 3 and 2"
+category = "main"
+optional = false
+python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+files = [
+ {file = "future-0.18.3.tar.gz", hash = "sha256:34a17436ed1e96697a86f9de3d15a3b0be01d8bc8de9c1dffd59fb8234ed5307"},
+]
+
+[[package]]
+name = "gax-google-logging-v2"
+version = "0.8.3"
+description = "GAX library for the Google Logging API"
+category = "main"
+optional = false
+python-versions = "*"
+files = [
+ {file = "gax-google-logging-v2-0.8.3.tar.gz", hash = "sha256:c36cbb93e070b3b535e9fffff6879efe447e525dff75b62eb4564def515e1a18"},
+]
+
+[package.dependencies]
+google-gax = ">=0.12.5,<0.13.0"
+googleapis-common-protos = ">=1.1.0"
+grpc-google-logging-v2 = ">=0.8.1,<0.9.0"
+oauth2client = ">=1.4.11"
+
+[[package]]
+name = "gax-google-pubsub-v1"
+version = "0.8.3"
+description = "DEPRECATED"
+category = "main"
+optional = false
+python-versions = "*"
+files = [
+ {file = "gax-google-pubsub-v1-0.8.3.tar.gz", hash = "sha256:943df4aa05cf0302fa1616197d05e29adb62be2c0f55f80d8345439d72471526"},
+]
+
+[package.dependencies]
+google-gax = ">=0.12.5,<0.13.0"
+googleapis-common-protos = ">=1.1.0"
+grpc-google-pubsub-v1 = ">=0.8.1,<0.9.0"
+oauth2client = ">=1.4.11"
+
+[[package]]
+name = "gcloud"
+version = "0.18.3"
+description = "API Client library for Google Cloud"
+category = "main"
+optional = false
+python-versions = "*"
+files = [
+ {file = "gcloud-0.18.3.tar.gz", hash = "sha256:0af2dec59fce20561752f86e42d981c6a255e306a6c5e5d1fa3d358a8857e4fb"},
+]
+
+[package.dependencies]
+gax-google-logging-v2 = ">=0.8.0,<0.9dev"
+gax-google-pubsub-v1 = ">=0.8.0,<0.9dev"
+google-gax = ">=0.12.3,<0.13dev"
+googleapis-common-protos = "*"
+grpc-google-logging-v2 = ">=0.8.0,<0.9dev"
+grpc-google-pubsub-v1 = ">=0.8.0,<0.9dev"
+grpcio = ">=1.0rc1"
+httplib2 = ">=0.9.1"
+oauth2client = ">=2.0.1"
+protobuf = ">=3.0.0b2,<3.0.0.b2.post1 || >3.0.0.b2.post1"
+six = "*"
+
+[package.extras]
+grpc = ["gax-google-logging-v2 (>=0.8.0,<0.9dev)", "gax-google-pubsub-v1 (>=0.8.0,<0.9dev)", "google-gax (>=0.12.3,<0.13dev)", "grpc-google-logging-v2 (>=0.8.0,<0.9dev)", "grpc-google-pubsub-v1 (>=0.8.0,<0.9dev)", "grpcio (>=1.0rc1)"]
+
[[package]]
name = "genson"
version = "1.2.2"
@@ -355,11 +439,341 @@ files = [
[package.dependencies]
beautifulsoup4 = "*"
+[[package]]
+name = "google-api-core"
+version = "2.11.0"
+description = "Google API client core library"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "google-api-core-2.11.0.tar.gz", hash = "sha256:4b9bb5d5a380a0befa0573b302651b8a9a89262c1730e37bf423cec511804c22"},
+ {file = "google_api_core-2.11.0-py3-none-any.whl", hash = "sha256:ce222e27b0de0d7bc63eb043b956996d6dccab14cc3b690aaea91c9cc99dc16e"},
+]
+
+[package.dependencies]
+google-auth = ">=2.14.1,<3.0dev"
+googleapis-common-protos = ">=1.56.2,<2.0dev"
+protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0dev"
+requests = ">=2.18.0,<3.0.0dev"
+
+[package.extras]
+grpc = ["grpcio (>=1.33.2,<2.0dev)", "grpcio (>=1.49.1,<2.0dev)", "grpcio-status (>=1.33.2,<2.0dev)", "grpcio-status (>=1.49.1,<2.0dev)"]
+grpcgcp = ["grpcio-gcp (>=0.2.2,<1.0dev)"]
+grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0dev)"]
+
+[[package]]
+name = "google-auth"
+version = "2.17.2"
+description = "Google Authentication Library"
+category = "main"
+optional = false
+python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*"
+files = [
+ {file = "google-auth-2.17.2.tar.gz", hash = "sha256:295c80ebb95eac74003c07a696cf3ef6b414e9230ae8894f3843f8215fd2aa56"},
+ {file = "google_auth-2.17.2-py2.py3-none-any.whl", hash = "sha256:544536a43d44dff0f64222e4d027d124989fcb9c10979687e589e1694fba9c94"},
+]
+
+[package.dependencies]
+cachetools = ">=2.0.0,<6.0"
+pyasn1-modules = ">=0.2.1"
+rsa = {version = ">=3.1.4,<5", markers = "python_version >= \"3.6\""}
+six = ">=1.9.0"
+
+[package.extras]
+aiohttp = ["aiohttp (>=3.6.2,<4.0.0dev)", "requests (>=2.20.0,<3.0.0dev)"]
+enterprise-cert = ["cryptography (==36.0.2)", "pyopenssl (==22.0.0)"]
+pyopenssl = ["cryptography (>=38.0.3)", "pyopenssl (>=20.0.0)"]
+reauth = ["pyu2f (>=0.1.5)"]
+requests = ["requests (>=2.20.0,<3.0.0dev)"]
+
+[[package]]
+name = "google-cloud-core"
+version = "2.3.2"
+description = "Google Cloud API client core library"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "google-cloud-core-2.3.2.tar.gz", hash = "sha256:b9529ee7047fd8d4bf4a2182de619154240df17fbe60ead399078c1ae152af9a"},
+ {file = "google_cloud_core-2.3.2-py2.py3-none-any.whl", hash = "sha256:8417acf6466be2fa85123441696c4badda48db314c607cf1e5d543fa8bdc22fe"},
+]
+
+[package.dependencies]
+google-api-core = ">=1.31.6,<2.0.0 || >2.3.0,<3.0.0dev"
+google-auth = ">=1.25.0,<3.0dev"
+
+[package.extras]
+grpc = ["grpcio (>=1.38.0,<2.0dev)"]
+
+[[package]]
+name = "google-cloud-storage"
+version = "2.8.0"
+description = "Google Cloud Storage API client library"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "google-cloud-storage-2.8.0.tar.gz", hash = "sha256:4388da1ff5bda6d729f26dbcaf1bfa020a2a52a7b91f0a8123edbda51660802c"},
+ {file = "google_cloud_storage-2.8.0-py2.py3-none-any.whl", hash = "sha256:248e210c13bc109909160248af546a91cb2dabaf3d7ebbf04def9dd49f02dbb6"},
+]
+
+[package.dependencies]
+google-api-core = ">=1.31.5,<2.0.0 || >2.3.0,<3.0.0dev"
+google-auth = ">=1.25.0,<3.0dev"
+google-cloud-core = ">=2.3.0,<3.0dev"
+google-resumable-media = ">=2.3.2"
+requests = ">=2.18.0,<3.0.0dev"
+
+[package.extras]
+protobuf = ["protobuf (<5.0.0dev)"]
+
+[[package]]
+name = "google-crc32c"
+version = "1.5.0"
+description = "A python wrapper of the C library 'Google CRC32C'"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "google-crc32c-1.5.0.tar.gz", hash = "sha256:89284716bc6a5a415d4eaa11b1726d2d60a0cd12aadf5439828353662ede9dd7"},
+ {file = "google_crc32c-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:596d1f98fc70232fcb6590c439f43b350cb762fb5d61ce7b0e9db4539654cc13"},
+ {file = "google_crc32c-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:be82c3c8cfb15b30f36768797a640e800513793d6ae1724aaaafe5bf86f8f346"},
+ {file = "google_crc32c-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:461665ff58895f508e2866824a47bdee72497b091c730071f2b7575d5762ab65"},
+ {file = "google_crc32c-1.5.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2096eddb4e7c7bdae4bd69ad364e55e07b8316653234a56552d9c988bd2d61b"},
+ {file = "google_crc32c-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:116a7c3c616dd14a3de8c64a965828b197e5f2d121fedd2f8c5585c547e87b02"},
+ {file = "google_crc32c-1.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5829b792bf5822fd0a6f6eb34c5f81dd074f01d570ed7f36aa101d6fc7a0a6e4"},
+ {file = "google_crc32c-1.5.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:64e52e2b3970bd891309c113b54cf0e4384762c934d5ae56e283f9a0afcd953e"},
+ {file = "google_crc32c-1.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:02ebb8bf46c13e36998aeaad1de9b48f4caf545e91d14041270d9dca767b780c"},
+ {file = "google_crc32c-1.5.0-cp310-cp310-win32.whl", hash = "sha256:2e920d506ec85eb4ba50cd4228c2bec05642894d4c73c59b3a2fe20346bd00ee"},
+ {file = "google_crc32c-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:07eb3c611ce363c51a933bf6bd7f8e3878a51d124acfc89452a75120bc436289"},
+ {file = "google_crc32c-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cae0274952c079886567f3f4f685bcaf5708f0a23a5f5216fdab71f81a6c0273"},
+ {file = "google_crc32c-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1034d91442ead5a95b5aaef90dbfaca8633b0247d1e41621d1e9f9db88c36298"},
+ {file = "google_crc32c-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7c42c70cd1d362284289c6273adda4c6af8039a8ae12dc451dcd61cdabb8ab57"},
+ {file = "google_crc32c-1.5.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8485b340a6a9e76c62a7dce3c98e5f102c9219f4cfbf896a00cf48caf078d438"},
+ {file = "google_crc32c-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77e2fd3057c9d78e225fa0a2160f96b64a824de17840351b26825b0848022906"},
+ {file = "google_crc32c-1.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f583edb943cf2e09c60441b910d6a20b4d9d626c75a36c8fcac01a6c96c01183"},
+ {file = "google_crc32c-1.5.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:a1fd716e7a01f8e717490fbe2e431d2905ab8aa598b9b12f8d10abebb36b04dd"},
+ {file = "google_crc32c-1.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:72218785ce41b9cfd2fc1d6a017dc1ff7acfc4c17d01053265c41a2c0cc39b8c"},
+ {file = "google_crc32c-1.5.0-cp311-cp311-win32.whl", hash = "sha256:66741ef4ee08ea0b2cc3c86916ab66b6aef03768525627fd6a1b34968b4e3709"},
+ {file = "google_crc32c-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:ba1eb1843304b1e5537e1fca632fa894d6f6deca8d6389636ee5b4797affb968"},
+ {file = "google_crc32c-1.5.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:98cb4d057f285bd80d8778ebc4fde6b4d509ac3f331758fb1528b733215443ae"},
+ {file = "google_crc32c-1.5.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd8536e902db7e365f49e7d9029283403974ccf29b13fc7028b97e2295b33556"},
+ {file = "google_crc32c-1.5.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19e0a019d2c4dcc5e598cd4a4bc7b008546b0358bd322537c74ad47a5386884f"},
+ {file = "google_crc32c-1.5.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02c65b9817512edc6a4ae7c7e987fea799d2e0ee40c53ec573a692bee24de876"},
+ {file = "google_crc32c-1.5.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6ac08d24c1f16bd2bf5eca8eaf8304812f44af5cfe5062006ec676e7e1d50afc"},
+ {file = "google_crc32c-1.5.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:3359fc442a743e870f4588fcf5dcbc1bf929df1fad8fb9905cd94e5edb02e84c"},
+ {file = "google_crc32c-1.5.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1e986b206dae4476f41bcec1faa057851f3889503a70e1bdb2378d406223994a"},
+ {file = "google_crc32c-1.5.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:de06adc872bcd8c2a4e0dc51250e9e65ef2ca91be023b9d13ebd67c2ba552e1e"},
+ {file = "google_crc32c-1.5.0-cp37-cp37m-win32.whl", hash = "sha256:d3515f198eaa2f0ed49f8819d5732d70698c3fa37384146079b3799b97667a94"},
+ {file = "google_crc32c-1.5.0-cp37-cp37m-win_amd64.whl", hash = "sha256:67b741654b851abafb7bc625b6d1cdd520a379074e64b6a128e3b688c3c04740"},
+ {file = "google_crc32c-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c02ec1c5856179f171e032a31d6f8bf84e5a75c45c33b2e20a3de353b266ebd8"},
+ {file = "google_crc32c-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:edfedb64740750e1a3b16152620220f51d58ff1b4abceb339ca92e934775c27a"},
+ {file = "google_crc32c-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:84e6e8cd997930fc66d5bb4fde61e2b62ba19d62b7abd7a69920406f9ecca946"},
+ {file = "google_crc32c-1.5.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:024894d9d3cfbc5943f8f230e23950cd4906b2fe004c72e29b209420a1e6b05a"},
+ {file = "google_crc32c-1.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:998679bf62b7fb599d2878aa3ed06b9ce688b8974893e7223c60db155f26bd8d"},
+ {file = "google_crc32c-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:83c681c526a3439b5cf94f7420471705bbf96262f49a6fe546a6db5f687a3d4a"},
+ {file = "google_crc32c-1.5.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4c6fdd4fccbec90cc8a01fc00773fcd5fa28db683c116ee3cb35cd5da9ef6c37"},
+ {file = "google_crc32c-1.5.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5ae44e10a8e3407dbe138984f21e536583f2bba1be9491239f942c2464ac0894"},
+ {file = "google_crc32c-1.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:37933ec6e693e51a5b07505bd05de57eee12f3e8c32b07da7e73669398e6630a"},
+ {file = "google_crc32c-1.5.0-cp38-cp38-win32.whl", hash = "sha256:fe70e325aa68fa4b5edf7d1a4b6f691eb04bbccac0ace68e34820d283b5f80d4"},
+ {file = "google_crc32c-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:74dea7751d98034887dbd821b7aae3e1d36eda111d6ca36c206c44478035709c"},
+ {file = "google_crc32c-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c6c777a480337ac14f38564ac88ae82d4cd238bf293f0a22295b66eb89ffced7"},
+ {file = "google_crc32c-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:759ce4851a4bb15ecabae28f4d2e18983c244eddd767f560165563bf9aefbc8d"},
+ {file = "google_crc32c-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f13cae8cc389a440def0c8c52057f37359014ccbc9dc1f0827936bcd367c6100"},
+ {file = "google_crc32c-1.5.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e560628513ed34759456a416bf86b54b2476c59144a9138165c9a1575801d0d9"},
+ {file = "google_crc32c-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1674e4307fa3024fc897ca774e9c7562c957af85df55efe2988ed9056dc4e57"},
+ {file = "google_crc32c-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:278d2ed7c16cfc075c91378c4f47924c0625f5fc84b2d50d921b18b7975bd210"},
+ {file = "google_crc32c-1.5.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d5280312b9af0976231f9e317c20e4a61cd2f9629b7bfea6a693d1878a264ebd"},
+ {file = "google_crc32c-1.5.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:8b87e1a59c38f275c0e3676fc2ab6d59eccecfd460be267ac360cc31f7bcde96"},
+ {file = "google_crc32c-1.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7c074fece789b5034b9b1404a1f8208fc2d4c6ce9decdd16e8220c5a793e6f61"},
+ {file = "google_crc32c-1.5.0-cp39-cp39-win32.whl", hash = "sha256:7f57f14606cd1dd0f0de396e1e53824c371e9544a822648cd76c034d209b559c"},
+ {file = "google_crc32c-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:a2355cba1f4ad8b6988a4ca3feed5bff33f6af2d7f134852cf279c2aebfde541"},
+ {file = "google_crc32c-1.5.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:f314013e7dcd5cf45ab1945d92e713eec788166262ae8deb2cfacd53def27325"},
+ {file = "google_crc32c-1.5.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b747a674c20a67343cb61d43fdd9207ce5da6a99f629c6e2541aa0e89215bcd"},
+ {file = "google_crc32c-1.5.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8f24ed114432de109aa9fd317278518a5af2d31ac2ea6b952b2f7782b43da091"},
+ {file = "google_crc32c-1.5.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8667b48e7a7ef66afba2c81e1094ef526388d35b873966d8a9a447974ed9178"},
+ {file = "google_crc32c-1.5.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:1c7abdac90433b09bad6c43a43af253e688c9cfc1c86d332aed13f9a7c7f65e2"},
+ {file = "google_crc32c-1.5.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6f998db4e71b645350b9ac28a2167e6632c239963ca9da411523bb439c5c514d"},
+ {file = "google_crc32c-1.5.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c99616c853bb585301df6de07ca2cadad344fd1ada6d62bb30aec05219c45d2"},
+ {file = "google_crc32c-1.5.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2ad40e31093a4af319dadf503b2467ccdc8f67c72e4bcba97f8c10cb078207b5"},
+ {file = "google_crc32c-1.5.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd67cf24a553339d5062eff51013780a00d6f97a39ca062781d06b3a73b15462"},
+ {file = "google_crc32c-1.5.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:398af5e3ba9cf768787eef45c803ff9614cc3e22a5b2f7d7ae116df8b11e3314"},
+ {file = "google_crc32c-1.5.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b1f8133c9a275df5613a451e73f36c2aea4fe13c5c8997e22cf355ebd7bd0728"},
+ {file = "google_crc32c-1.5.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ba053c5f50430a3fcfd36f75aff9caeba0440b2d076afdb79a318d6ca245f88"},
+ {file = "google_crc32c-1.5.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:272d3892a1e1a2dbc39cc5cde96834c236d5327e2122d3aaa19f6614531bb6eb"},
+ {file = "google_crc32c-1.5.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:635f5d4dd18758a1fbd1049a8e8d2fee4ffed124462d837d1a02a0e009c3ab31"},
+ {file = "google_crc32c-1.5.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c672d99a345849301784604bfeaeba4db0c7aae50b95be04dd651fd2a7310b93"},
+]
+
+[package.extras]
+testing = ["pytest"]
+
+[[package]]
+name = "google-gax"
+version = "0.12.5"
+description = "Google API Extensions"
+category = "main"
+optional = false
+python-versions = "*"
+files = [
+ {file = "google-gax-0.12.5.tar.gz", hash = "sha256:63312a04cb87ca50e857245f05c582b2171807a30e61cef85006b983bf659cb9"},
+]
+
+[package.dependencies]
+future = ">=0.15.2"
+grpcio = ">=1.0rc1"
+oauth2client = ">=1.5.2"
+ply = "3.8"
+protobuf = ">=3.0.0b3"
+
+[[package]]
+name = "google-resumable-media"
+version = "2.4.1"
+description = "Utilities for Google Media Downloads and Resumable Uploads"
+category = "main"
+optional = false
+python-versions = ">= 3.7"
+files = [
+ {file = "google-resumable-media-2.4.1.tar.gz", hash = "sha256:15b8a2e75df42dc6502d1306db0bce2647ba6013f9cd03b6e17368c0886ee90a"},
+ {file = "google_resumable_media-2.4.1-py2.py3-none-any.whl", hash = "sha256:831e86fd78d302c1a034730a0c6e5369dd11d37bad73fa69ca8998460d5bae8d"},
+]
+
+[package.dependencies]
+google-crc32c = ">=1.0,<2.0dev"
+
+[package.extras]
+aiohttp = ["aiohttp (>=3.6.2,<4.0.0dev)"]
+requests = ["requests (>=2.18.0,<3.0.0dev)"]
+
+[[package]]
+name = "googleapis-common-protos"
+version = "1.59.0"
+description = "Common protobufs used in Google APIs"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "googleapis-common-protos-1.59.0.tar.gz", hash = "sha256:4168fcb568a826a52f23510412da405abd93f4d23ba544bb68d943b14ba3cb44"},
+ {file = "googleapis_common_protos-1.59.0-py2.py3-none-any.whl", hash = "sha256:b287dc48449d1d41af0c69f4ea26242b5ae4c3d7249a38b0984c86a4caffff1f"},
+]
+
+[package.dependencies]
+protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0dev"
+
+[package.extras]
+grpc = ["grpcio (>=1.44.0,<2.0.0dev)"]
+
+[[package]]
+name = "grpc-google-logging-v2"
+version = "0.8.1"
+description = "GRPC library for the google-logging-v2 service"
+category = "main"
+optional = false
+python-versions = "*"
+files = [
+ {file = "grpc-google-logging-v2-0.8.1.tar.gz", hash = "sha256:4b6b4e603860b134b2cb8732bb4d1f2cec963d553497dcf70b3f5ecc99d7fb4f"},
+]
+
+[package.dependencies]
+googleapis-common-protos = ">=1.1.0"
+grpcio = ">=1.0rc1"
+oauth2client = ">=1.4.11"
+
+[[package]]
+name = "grpc-google-pubsub-v1"
+version = "0.8.1"
+description = "GRPC library for the google-pubsub-v1 service"
+category = "main"
+optional = false
+python-versions = "*"
+files = [
+ {file = "grpc-google-pubsub-v1-0.8.1.tar.gz", hash = "sha256:ab5a3a239a9678012cdc00a9b9a8fe8c75fca9a0035da41da3078145e9d967b9"},
+]
+
+[package.dependencies]
+googleapis-common-protos = ">=1.1.0"
+grpcio = ">=1.0rc1"
+oauth2client = ">=1.4.11"
+
+[[package]]
+name = "grpcio"
+version = "1.53.0"
+description = "HTTP/2-based RPC framework"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "grpcio-1.53.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:752d2949b40e12e6ad3ed8cc552a65b54d226504f6b1fb67cab2ccee502cc06f"},
+ {file = "grpcio-1.53.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:8a48fd3a7222be226bb86b7b413ad248f17f3101a524018cdc4562eeae1eb2a3"},
+ {file = "grpcio-1.53.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:f3e837d29f0e1b9d6e7b29d569e2e9b0da61889e41879832ea15569c251c303a"},
+ {file = "grpcio-1.53.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aef7d30242409c3aa5839b501e877e453a2c8d3759ca8230dd5a21cda029f046"},
+ {file = "grpcio-1.53.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e6f90698b5d1c5dd7b3236cd1fa959d7b80e17923f918d5be020b65f1c78b173"},
+ {file = "grpcio-1.53.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a96c3c7f564b263c5d7c0e49a337166c8611e89c4c919f66dba7b9a84abad137"},
+ {file = "grpcio-1.53.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ee81349411648d1abc94095c68cd25e3c2812e4e0367f9a9355be1e804a5135c"},
+ {file = "grpcio-1.53.0-cp310-cp310-win32.whl", hash = "sha256:fdc6191587de410a184550d4143e2b24a14df495c86ca15e59508710681690ac"},
+ {file = "grpcio-1.53.0-cp310-cp310-win_amd64.whl", hash = "sha256:658ffe1e39171be00490db5bd3b966f79634ac4215a1eb9a85c6cd6783bf7f6e"},
+ {file = "grpcio-1.53.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:1b172e6d497191940c4b8d75b53de82dc252e15b61de2951d577ec5b43316b29"},
+ {file = "grpcio-1.53.0-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:82434ba3a5935e47908bc861ce1ebc43c2edfc1001d235d6e31e5d3ed55815f7"},
+ {file = "grpcio-1.53.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:1c734a2d4843e4e14ececf5600c3c4750990ec319e1299db7e4f0d02c25c1467"},
+ {file = "grpcio-1.53.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6a2ead3de3b2d53119d473aa2f224030257ef33af1e4ddabd4afee1dea5f04c"},
+ {file = "grpcio-1.53.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a34d6e905f071f9b945cabbcc776e2055de1fdb59cd13683d9aa0a8f265b5bf9"},
+ {file = "grpcio-1.53.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eaf8e3b97caaf9415227a3c6ca5aa8d800fecadd526538d2bf8f11af783f1550"},
+ {file = "grpcio-1.53.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:da95778d37be8e4e9afca771a83424f892296f5dfb2a100eda2571a1d8bbc0dc"},
+ {file = "grpcio-1.53.0-cp311-cp311-win32.whl", hash = "sha256:e4f513d63df6336fd84b74b701f17d1bb3b64e9d78a6ed5b5e8a198bbbe8bbfa"},
+ {file = "grpcio-1.53.0-cp311-cp311-win_amd64.whl", hash = "sha256:ddb2511fbbb440ed9e5c9a4b9b870f2ed649b7715859fd6f2ebc585ee85c0364"},
+ {file = "grpcio-1.53.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:2a912397eb8d23c177d6d64e3c8bc46b8a1c7680b090d9f13a640b104aaec77c"},
+ {file = "grpcio-1.53.0-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:55930c56b8f5b347d6c8c609cc341949a97e176c90f5cbb01d148d778f3bbd23"},
+ {file = "grpcio-1.53.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:6601d812105583948ab9c6e403a7e2dba6e387cc678c010e74f2d6d589d1d1b3"},
+ {file = "grpcio-1.53.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c705e0c21acb0e8478a00e7e773ad0ecdb34bd0e4adc282d3d2f51ba3961aac7"},
+ {file = "grpcio-1.53.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba074af9ca268ad7b05d3fc2b920b5fb3c083da94ab63637aaf67f4f71ecb755"},
+ {file = "grpcio-1.53.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:14817de09317dd7d3fbc8272864288320739973ef0f4b56bf2c0032349da8cdf"},
+ {file = "grpcio-1.53.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c7ad9fbedb93f331c2e9054e202e95cf825b885811f1bcbbdfdc301e451442db"},
+ {file = "grpcio-1.53.0-cp37-cp37m-win_amd64.whl", hash = "sha256:dad5b302a4c21c604d88a5d441973f320134e6ff6a84ecef9c1139e5ffd466f6"},
+ {file = "grpcio-1.53.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:fa8eaac75d3107e3f5465f2c9e3bbd13db21790c6e45b7de1756eba16b050aca"},
+ {file = "grpcio-1.53.0-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:104a2210edd3776c38448b4f76c2f16e527adafbde171fc72a8a32976c20abc7"},
+ {file = "grpcio-1.53.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:dbc1ba968639c1d23476f75c356e549e7bbf2d8d6688717dcab5290e88e8482b"},
+ {file = "grpcio-1.53.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:95952d3fe795b06af29bb8ec7bbf3342cdd867fc17b77cc25e6733d23fa6c519"},
+ {file = "grpcio-1.53.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f144a790f14c51b8a8e591eb5af40507ffee45ea6b818c2482f0457fec2e1a2e"},
+ {file = "grpcio-1.53.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:0698c094688a2dd4c7c2f2c0e3e142cac439a64d1cef6904c97f6cde38ba422f"},
+ {file = "grpcio-1.53.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6b6d60b0958be711bab047e9f4df5dbbc40367955f8651232bfdcdd21450b9ab"},
+ {file = "grpcio-1.53.0-cp38-cp38-win32.whl", hash = "sha256:1948539ce78805d4e6256ab0e048ec793956d54787dc9d6777df71c1d19c7f81"},
+ {file = "grpcio-1.53.0-cp38-cp38-win_amd64.whl", hash = "sha256:df9ba1183b3f649210788cf80c239041dddcb375d6142d8bccafcfdf549522cd"},
+ {file = "grpcio-1.53.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:19caa5b7282a89b799e63776ff602bb39604f7ca98db6df27e2de06756ae86c3"},
+ {file = "grpcio-1.53.0-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:b5bd026ac928c96cc23149e6ef79183125542062eb6d1ccec34c0a37e02255e7"},
+ {file = "grpcio-1.53.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:7dc8584ca6c015ad82e186e82f4c0fe977394588f66b8ecfc4ec873285314619"},
+ {file = "grpcio-1.53.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2eddaae8af625e45b5c8500dcca1043264d751a6872cde2eda5022df8a336959"},
+ {file = "grpcio-1.53.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5fb6f3d7824696c1c9f2ad36ddb080ba5a86f2d929ef712d511b4d9972d3d27"},
+ {file = "grpcio-1.53.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:8270d1dc2c98ab57e6dbf36fa187db8df4c036f04a398e5d5e25b4e01a766d70"},
+ {file = "grpcio-1.53.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:976a7f24eb213e8429cab78d5e120500dfcdeb01041f1f5a77b17b9101902615"},
+ {file = "grpcio-1.53.0-cp39-cp39-win32.whl", hash = "sha256:9c84a481451e7174f3a764a44150f93b041ab51045aa33d7b5b68b6979114e48"},
+ {file = "grpcio-1.53.0-cp39-cp39-win_amd64.whl", hash = "sha256:6beb84f83360ff29a3654f43f251ec11b809dcb5524b698d711550243debd289"},
+ {file = "grpcio-1.53.0.tar.gz", hash = "sha256:a4952899b4931a6ba12951f9a141ef3e74ff8a6ec9aa2dc602afa40f63595e33"},
+]
+
+[package.extras]
+protobuf = ["grpcio-tools (>=1.53.0)"]
+
+[[package]]
+name = "httplib2"
+version = "0.22.0"
+description = "A comprehensive HTTP client library."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+files = [
+ {file = "httplib2-0.22.0-py3-none-any.whl", hash = "sha256:14ae0a53c1ba8f3d37e9e27cf37eabb0fb9980f435ba405d546948b009dd64dc"},
+ {file = "httplib2-0.22.0.tar.gz", hash = "sha256:d7a10bc5ef5ab08322488bde8c726eeee5c8618723fdb399597ec58f3d82df81"},
+]
+
+[package.dependencies]
+pyparsing = {version = ">=2.4.2,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<4", markers = "python_version > \"3.0\""}
+
[[package]]
name = "idna"
version = "3.4"
description = "Internationalized Domain Names in Applications (IDNA)"
-category = "dev"
+category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -606,6 +1020,25 @@ files = [
{file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"},
]
+[[package]]
+name = "oauth2client"
+version = "4.1.3"
+description = "OAuth 2.0 client library"
+category = "main"
+optional = false
+python-versions = "*"
+files = [
+ {file = "oauth2client-4.1.3-py2.py3-none-any.whl", hash = "sha256:b8a81cc5d60e2d364f0b1b98f958dbd472887acaf1a5b05e21c28c31a2d6d3ac"},
+ {file = "oauth2client-4.1.3.tar.gz", hash = "sha256:d486741e451287f69568a4d26d70d9acd73a2bbfa275746c535b4209891cccc6"},
+]
+
+[package.dependencies]
+httplib2 = ">=0.9.1"
+pyasn1 = ">=0.1.7"
+pyasn1-modules = ">=0.0.5"
+rsa = ">=3.1.4"
+six = ">=1.6.1"
+
[[package]]
name = "openapi-schema-validator"
version = "0.3.4"
@@ -718,6 +1151,17 @@ files = [
dev = ["pre-commit", "tox"]
testing = ["pytest", "pytest-benchmark"]
+[[package]]
+name = "ply"
+version = "3.8"
+description = "Python Lex & Yacc"
+category = "main"
+optional = false
+python-versions = "*"
+files = [
+ {file = "ply-3.8.tar.gz", hash = "sha256:e7d1bdff026beb159c9942f7a17e102c375638d9478a7ecd4cc0c76afd8de0b8"},
+]
+
[[package]]
name = "prance"
version = "0.22.2.22.0"
@@ -745,6 +1189,56 @@ icu = ["PyICU (>=2.4,<3.0)"]
osv = ["openapi-spec-validator (>=0.5.1,<0.6.0)"]
ssv = ["swagger-spec-validator (>=2.4,<3.0)"]
+[[package]]
+name = "protobuf"
+version = "4.22.1"
+description = ""
+category = "main"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "protobuf-4.22.1-cp310-abi3-win32.whl", hash = "sha256:85aa9acc5a777adc0c21b449dafbc40d9a0b6413ff3a4f77ef9df194be7f975b"},
+ {file = "protobuf-4.22.1-cp310-abi3-win_amd64.whl", hash = "sha256:8bc971d76c03f1dd49f18115b002254f2ddb2d4b143c583bb860b796bb0d399e"},
+ {file = "protobuf-4.22.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:5917412347e1da08ce2939eb5cd60650dfb1a9ab4606a415b9278a1041fb4d19"},
+ {file = "protobuf-4.22.1-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:9e12e2810e7d297dbce3c129ae5e912ffd94240b050d33f9ecf023f35563b14f"},
+ {file = "protobuf-4.22.1-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:953fc7904ef46900262a26374b28c2864610b60cdc8b272f864e22143f8373c4"},
+ {file = "protobuf-4.22.1-cp37-cp37m-win32.whl", hash = "sha256:6e100f7bc787cd0a0ae58dbf0ab8bbf1ee7953f862b89148b6cf5436d5e9eaa1"},
+ {file = "protobuf-4.22.1-cp37-cp37m-win_amd64.whl", hash = "sha256:87a6393fa634f294bf24d1cfe9fdd6bb605cbc247af81b9b10c4c0f12dfce4b3"},
+ {file = "protobuf-4.22.1-cp38-cp38-win32.whl", hash = "sha256:e3fb58076bdb550e75db06ace2a8b3879d4c4f7ec9dd86e4254656118f4a78d7"},
+ {file = "protobuf-4.22.1-cp38-cp38-win_amd64.whl", hash = "sha256:651113695bc2e5678b799ee5d906b5d3613f4ccfa61b12252cfceb6404558af0"},
+ {file = "protobuf-4.22.1-cp39-cp39-win32.whl", hash = "sha256:67b7d19da0fda2733702c2299fd1ef6cb4b3d99f09263eacaf1aa151d9d05f02"},
+ {file = "protobuf-4.22.1-cp39-cp39-win_amd64.whl", hash = "sha256:b8700792f88e59ccecfa246fa48f689d6eee6900eddd486cdae908ff706c482b"},
+ {file = "protobuf-4.22.1-py3-none-any.whl", hash = "sha256:3e19dcf4adbf608924d3486ece469dd4f4f2cf7d2649900f0efcd1a84e8fd3ba"},
+ {file = "protobuf-4.22.1.tar.gz", hash = "sha256:dce7a55d501c31ecf688adb2f6c3f763cf11bc0be815d1946a84d74772ab07a7"},
+]
+
+[[package]]
+name = "pyasn1"
+version = "0.4.8"
+description = "ASN.1 types and codecs"
+category = "main"
+optional = false
+python-versions = "*"
+files = [
+ {file = "pyasn1-0.4.8-py2.py3-none-any.whl", hash = "sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d"},
+ {file = "pyasn1-0.4.8.tar.gz", hash = "sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba"},
+]
+
+[[package]]
+name = "pyasn1-modules"
+version = "0.2.8"
+description = "A collection of ASN.1-based protocols modules."
+category = "main"
+optional = false
+python-versions = "*"
+files = [
+ {file = "pyasn1-modules-0.2.8.tar.gz", hash = "sha256:905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e"},
+ {file = "pyasn1_modules-0.2.8-py2.py3-none-any.whl", hash = "sha256:a50b808ffeb97cb3601dd25981f6b016cbb3d31fbf57a8b8a87428e6158d0c74"},
+]
+
+[package.dependencies]
+pyasn1 = ">=0.4.6,<0.5.0"
+
[[package]]
name = "pydantic"
version = "1.10.6"
@@ -799,6 +1293,21 @@ typing-extensions = ">=4.2.0"
dotenv = ["python-dotenv (>=0.10.4)"]
email = ["email-validator (>=1.0.3)"]
+[[package]]
+name = "pyparsing"
+version = "3.0.9"
+description = "pyparsing module - Classes and methods to define and execute parsing grammars"
+category = "main"
+optional = false
+python-versions = ">=3.6.8"
+files = [
+ {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"},
+ {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"},
+]
+
+[package.extras]
+diagrams = ["jinja2", "railroad-diagrams"]
+
[[package]]
name = "pyrsistent"
version = "0.19.3"
@@ -875,6 +1384,24 @@ tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""}
[package.extras]
testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"]
+[[package]]
+name = "pytest-mock"
+version = "3.10.0"
+description = "Thin-wrapper around the mock package for easier use with pytest"
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "pytest-mock-3.10.0.tar.gz", hash = "sha256:fbbdb085ef7c252a326fd8cdcac0aa3b1333d8811f131bdcc701002e1be7ed4f"},
+ {file = "pytest_mock-3.10.0-py3-none-any.whl", hash = "sha256:f4c973eeae0282963eb293eb173ce91b091a79c1334455acfac9ddee8a1c784b"},
+]
+
+[package.dependencies]
+pytest = ">=5.0"
+
+[package.extras]
+dev = ["pre-commit", "pytest-asyncio", "tox"]
+
[[package]]
name = "pyyaml"
version = "6.0"
@@ -929,7 +1456,7 @@ files = [
name = "requests"
version = "2.28.2"
description = "Python HTTP for Humans."
-category = "dev"
+category = "main"
optional = false
python-versions = ">=3.7, <4"
files = [
@@ -947,6 +1474,21 @@ urllib3 = ">=1.21.1,<1.27"
socks = ["PySocks (>=1.5.6,!=1.5.7)"]
use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
+[[package]]
+name = "rsa"
+version = "4.9"
+description = "Pure-Python RSA implementation"
+category = "main"
+optional = false
+python-versions = ">=3.6,<4"
+files = [
+ {file = "rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7"},
+ {file = "rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"},
+]
+
+[package.dependencies]
+pyasn1 = ">=0.1.3"
+
[[package]]
name = "ruamel-yaml"
version = "0.17.21"
@@ -1016,7 +1558,7 @@ files = [
name = "six"
version = "1.16.0"
description = "Python 2 and 3 compatibility utilities"
-category = "dev"
+category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
files = [
@@ -1110,7 +1652,7 @@ files = [
name = "urllib3"
version = "1.26.15"
description = "HTTP library with thread-safe connection pooling, file post, and more."
-category = "dev"
+category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
files = [
@@ -1142,4 +1684,4 @@ testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more
[metadata]
lock-version = "2.0"
python-versions = "^3.9"
-content-hash = "5dc476982554a3de710f06cb9ce2399764bf0398e85b6347563b1a79420d0bc8"
+content-hash = "f1bf172c1612339ff9c900073e1dc7d8b5cae2936b7ca9c2fa43b39c8ecb0eb0"
diff --git a/airbyte-ci/connectors/metadata_service/lib/pyproject.toml b/airbyte-ci/connectors/metadata_service/lib/pyproject.toml
index 0c325092c576..e3c433c2d241 100644
--- a/airbyte-ci/connectors/metadata_service/lib/pyproject.toml
+++ b/airbyte-ci/connectors/metadata_service/lib/pyproject.toml
@@ -12,6 +12,8 @@ pydantic = "^1.10.6"
click = "^8.1.3"
google = "^3.0.0"
pyyaml = "^6.0"
+gcloud = "^0.18.3"
+google-cloud-storage = "^2.8.0"
[tool.poetry.group.test.dependencies]
@@ -20,6 +22,7 @@ pytest = "^7.2.2"
[tool.poetry.group.dev.dependencies]
datamodel-code-generator = "^0.17.1"
+pytest-mock = "^3.10.0"
[tool.poetry.scripts]
metadata_service = "metadata_service.commands:metadata_service"
diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/test_commands.py b/airbyte-ci/connectors/metadata_service/lib/tests/test_commands.py
new file mode 100644
index 000000000000..ee6036ebafb9
--- /dev/null
+++ b/airbyte-ci/connectors/metadata_service/lib/tests/test_commands.py
@@ -0,0 +1,73 @@
+#
+# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
+#
+import pytest
+from click.testing import CliRunner
+from metadata_service import commands
+from pydantic import BaseModel, ValidationError, error_wrappers
+
+
+# TEST VALIDATE COMMAND
+def test_valid_metadata_yaml_files(valid_metadata_yaml_files):
+ runner = CliRunner()
+
+ assert len(valid_metadata_yaml_files) > 0, "No files found"
+
+ for file_path in valid_metadata_yaml_files:
+ result = runner.invoke(commands.validate, [file_path])
+ assert result.exit_code == 0, f"Validation failed for {file_path} with error: {result.output}"
+
+
+def test_invalid_metadata_yaml_files(invalid_metadata_yaml_files):
+ runner = CliRunner()
+
+ assert len(invalid_metadata_yaml_files) > 0, "No files found"
+
+ for file_path in invalid_metadata_yaml_files:
+ result = runner.invoke(commands.validate, [file_path])
+ assert result.exit_code != 0, f"Validation succeeded (when it shouldve failed) for {file_path}"
+
+
+def test_file_not_found_fails():
+ runner = CliRunner()
+ result = runner.invoke(commands.validate, ["non_existent_file.yaml"])
+ assert result.exit_code != 0, "Validation succeeded (when it shouldve failed) for non_existent_file.yaml"
+
+
+# TEST UPLOAD COMMAND
+@pytest.mark.parametrize("uploaded", [True, False])
+def test_upload(mocker, valid_metadata_yaml_files, uploaded):
+ runner = CliRunner()
+ mocker.patch.object(commands.click, "secho")
+ mocker.patch.object(commands, "upload_metadata_to_gcs")
+ commands.upload_metadata_to_gcs.return_value = uploaded, "blob_id"
+ metadata_file_path = valid_metadata_yaml_files[0]
+ result = runner.invoke(
+ commands.upload, [metadata_file_path, "my-bucket", "-sa", metadata_file_path]
+ ) # Using valid_metadata_yaml_files[0] as SA because it exists...
+ assert result.exit_code == 0
+ if uploaded:
+ commands.click.secho.assert_called_with(f"The metadata file {metadata_file_path} was uploaded to blob_id.", color="green")
+ else:
+ commands.click.secho.assert_called_with(f"The metadata file {metadata_file_path} was not uploaded.", color="yellow")
+
+
+@pytest.mark.parametrize(
+ "error, handled",
+ [
+ (ValidationError([error_wrappers.ErrorWrapper(Exception("Boom!"), "foo")], BaseModel), True),
+ (FileNotFoundError("Boom!"), True),
+ (ValueError("Boom!"), False),
+ ],
+)
+def test_upload_with_errors(mocker, valid_metadata_yaml_files, error, handled):
+ runner = CliRunner()
+ mocker.patch.object(commands.click, "secho")
+ mocker.patch.object(commands, "upload_metadata_to_gcs")
+ commands.upload_metadata_to_gcs.side_effect = error
+ result = runner.invoke(
+ commands.upload, [valid_metadata_yaml_files[0], "my-bucket", "-sa", valid_metadata_yaml_files[0]]
+ ) # Using valid_metadata_yaml_files[0] as SA because it exists...
+ assert result.exit_code == 1
+ if handled:
+ commands.click.secho.assert_called_with(f"The metadata file could not be uploaded: {str(error)}", color="red")
diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/test_gcs_upload.py b/airbyte-ci/connectors/metadata_service/lib/tests/test_gcs_upload.py
new file mode 100644
index 000000000000..4fca47178292
--- /dev/null
+++ b/airbyte-ci/connectors/metadata_service/lib/tests/test_gcs_upload.py
@@ -0,0 +1,89 @@
+#
+# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
+#
+import pathlib
+
+import pytest
+import yaml
+from metadata_service import gcs_upload
+from metadata_service.models.generated.ConnectorMetadataDefinitionV1 import ConnectorMetadataDefinitionV1
+from pydantic import ValidationError
+
+
+@pytest.mark.parametrize(
+ "version_blob_exists, version_blob_etag, latest_blob_etag",
+ [
+ pytest.param(False, "same_etag", "different_etag", id="Version blob does not exists: Version and latest blob should be uploaded."),
+ pytest.param(
+ False,
+ "same_etag",
+ "same_etag",
+ id="Version blob does not exists but etags are equal: Version blob should be uploaded but latest should not.",
+ ),
+ pytest.param(True, "same_etag", "same_etag", id="Version exists and etags are equal: no upload should happen."),
+ pytest.param(
+ True, "same_etag", "different_etag", id="Version exists but latest etag is different: latest blob should be uploaded."
+ ),
+ ],
+)
+def test_upload_metadata_to_gcs_valid_metadata(mocker, valid_metadata_yaml_files, version_blob_exists, version_blob_etag, latest_blob_etag):
+ metadata_file_path = pathlib.Path(valid_metadata_yaml_files[0])
+ metadata = ConnectorMetadataDefinitionV1.parse_obj(yaml.safe_load(metadata_file_path.read_text()))
+ expected_version_key = f"metadata/{metadata.data.dockerRepository}/{metadata.data.dockerImageTag}/metadata.yaml"
+ expected_latest_key = f"metadata/{metadata.data.dockerRepository}/latest/metadata.yaml"
+
+ mock_credentials = mocker.Mock()
+ mock_storage_client = mocker.Mock()
+
+ mock_version_blob = mocker.Mock(exists=mocker.Mock(return_value=version_blob_exists), etag=version_blob_etag)
+ mock_latest_blob = mocker.Mock(etag=latest_blob_etag)
+ mock_bucket = mock_storage_client.bucket.return_value
+ mock_bucket.blob.side_effect = [mock_version_blob, mock_latest_blob]
+
+ mocker.patch.object(gcs_upload.service_account.Credentials, "from_service_account_file", mocker.Mock(return_value=mock_credentials))
+ mocker.patch.object(gcs_upload.storage, "Client", mocker.Mock(return_value=mock_storage_client))
+
+ # Call function under tests
+
+ uploaded, blob_id = gcs_upload.upload_metadata_to_gcs(
+ "my_bucket",
+ metadata_file_path,
+ "my_service_account_path",
+ )
+
+ # Assertions
+
+ gcs_upload.service_account.Credentials.from_service_account_file.assert_called_with("my_service_account_path")
+ mock_storage_client.bucket.assert_called_with("my_bucket")
+ mock_bucket.blob.assert_has_calls([mocker.call(expected_version_key), mocker.call(expected_latest_key)])
+ assert blob_id == mock_version_blob.id
+
+ if not version_blob_exists:
+ mock_version_blob.upload_from_filename.assert_called_with(str(metadata_file_path))
+ assert uploaded
+ else:
+ mock_version_blob.upload_from_filename.assert_not_called()
+ assert not uploaded
+
+ if version_blob_etag != latest_blob_etag:
+ mock_latest_blob.upload_from_filename.assert_called_with(str(metadata_file_path))
+
+
+def test_upload_metadata_to_gcs_invalid_metadata(invalid_metadata_yaml_files):
+ metadata_file_path = pathlib.Path(invalid_metadata_yaml_files[0])
+ with pytest.raises(ValidationError):
+ gcs_upload.upload_metadata_to_gcs(
+ "my_bucket",
+ metadata_file_path,
+ "my_service_account_path",
+ )
+
+
+def test_upload_metadata_to_gcs_non_existent_metadata_file():
+ metadata_file_path = pathlib.Path("./i_dont_exist.yaml")
+ with pytest.raises(FileNotFoundError):
+ gcs_upload.upload_metadata_to_gcs(
+ "my_bucket",
+ metadata_file_path,
+ "my_service_account_path",
+ )
diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/test_metadata_validator.py b/airbyte-ci/connectors/metadata_service/lib/tests/test_metadata_validator.py
deleted file mode 100644
index 654317b15e20..000000000000
--- a/airbyte-ci/connectors/metadata_service/lib/tests/test_metadata_validator.py
+++ /dev/null
@@ -1,28 +0,0 @@
-from click.testing import CliRunner
-from metadata_service.commands import validate
-
-
-def test_valid_metadata_yaml_files(valid_metadata_yaml_files):
- runner = CliRunner()
-
- assert len(valid_metadata_yaml_files) > 0, "No files found"
-
- for file_path in valid_metadata_yaml_files:
- result = runner.invoke(validate, [file_path])
- assert result.exit_code == 0, f"Validation failed for {file_path} with error: {result.output}"
-
-
-def test_invalid_metadata_yaml_files(invalid_metadata_yaml_files):
- runner = CliRunner()
-
- assert len(invalid_metadata_yaml_files) > 0, "No files found"
-
- for file_path in invalid_metadata_yaml_files:
- result = runner.invoke(validate, [file_path])
- assert result.exit_code != 0, f"Validation succeeded (when it shouldve failed) for {file_path}"
-
-
-def test_file_not_found_fails():
- runner = CliRunner()
- result = runner.invoke(validate, ["non_existent_file.yaml"])
- assert result.exit_code != 0, "Validation succeeded (when it shouldve failed) for non_existent_file.yaml"
From f8cdd57ab0f090425f8934ba0bc59cb7663297ed Mon Sep 17 00:00:00 2001
From: Augustin
Date: Wed, 12 Apr 2023 18:38:51 +0200
Subject: [PATCH 034/187] metadata: cleanup workflows (#25105)
---
.../metadata_orchestrator_tests_dagger.yml | 23 -------------------
.../metadata_service_tests_dagger.yml | 21 ++++++++++-------
.../metadata_validate_manifest_dagger.yml | 14 +++++------
3 files changed, 20 insertions(+), 38 deletions(-)
delete mode 100644 .github/workflows/metadata_orchestrator_tests_dagger.yml
diff --git a/.github/workflows/metadata_orchestrator_tests_dagger.yml b/.github/workflows/metadata_orchestrator_tests_dagger.yml
deleted file mode 100644
index 936fb0578672..000000000000
--- a/.github/workflows/metadata_orchestrator_tests_dagger.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-name: Metadata Service CI
-
-on:
- workflow_dispatch:
- pull_request:
- paths:
- - "airbyte-ci/connectors/metadata_service/**"
-jobs:
- metadata_service_ci:
- name: Metadata Orchestrator CI
- timeout-minutes: 240 # 4 hours
- runs-on: medium-runner
- steps:
- - name: Checkout Airbyte
- uses: actions/checkout@v2
- - name: Run Metadata unit test pipeline
- id: metadata-orchestrator-unit-test-pipeline
- uses: ./.github/actions/run-dagger-pipeline
- with:
- subcommand: "metadata test orchestrator"
- context: "pull_request"
- env:
- CI_GITHUB_ACCESS_TOKEN: ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }}
diff --git a/.github/workflows/metadata_service_tests_dagger.yml b/.github/workflows/metadata_service_tests_dagger.yml
index 7009e9e56e9b..dd296e5dd7db 100644
--- a/.github/workflows/metadata_service_tests_dagger.yml
+++ b/.github/workflows/metadata_service_tests_dagger.yml
@@ -1,4 +1,4 @@
-name: Metadata Service CI
+name: Connector metadata service CI
on:
workflow_dispatch:
@@ -6,18 +6,23 @@ on:
paths:
- "airbyte-ci/connectors/metadata_service/**"
jobs:
- metadata_service_ci:
- name: Metadata Service CI
- timeout-minutes: 240 # 4 hours
+ connector_metadata_service_ci:
+ name: Connector metadata service CI
runs-on: medium-runner
+ env:
+ CI_GITHUB_ACCESS_TOKEN: ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }}
steps:
- name: Checkout Airbyte
uses: actions/checkout@v2
- - name: Run Metadata unit test pipeline
- id: metadata-lib-unit-test-pipeline
+ - name: Run test pipeline for the metadata lib
+ id: metadata-lib-test-pipeline
uses: ./.github/actions/run-dagger-pipeline
with:
subcommand: "metadata test lib"
context: "pull_request"
- env:
- CI_GITHUB_ACCESS_TOKEN: ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }}
+ - name: Run test for the metadata orchestrator
+ id: metadata-orchestrator-test-pipeline
+ uses: ./.github/actions/run-dagger-pipeline
+ with:
+ subcommand: "metadata test orchestrator"
+ context: "pull_request"
diff --git a/.github/workflows/metadata_validate_manifest_dagger.yml b/.github/workflows/metadata_validate_manifest_dagger.yml
index dace42a098d5..bc09f93fbb59 100644
--- a/.github/workflows/metadata_validate_manifest_dagger.yml
+++ b/.github/workflows/metadata_validate_manifest_dagger.yml
@@ -1,4 +1,4 @@
-name: Metadata Service CI
+name: Connectors' metadata.yaml files validation
on:
workflow_dispatch:
@@ -7,18 +7,18 @@ on:
paths:
- "airbyte-integrations/connectors/**/metadata.yaml"
jobs:
- metadata_service_ci:
- name: Validate Metadata Manifest for Connectors
+ connectors_metadata_validation:
+ name: Connectors' metadata.yaml files validation
timeout-minutes: 10 # 10 minutes
runs-on: medium-runner
+ env:
+ CI_GITHUB_ACCESS_TOKEN: ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }}
steps:
- name: Checkout Airbyte
uses: actions/checkout@v2
- - name: Run Metadata unit test pipeline
- id: metadata-lib-unit-test-pipeline
+ - name: Connectors' metadata.yaml files validation
+ id: metadata-validate-pipeline
uses: ./.github/actions/run-dagger-pipeline
with:
subcommand: "metadata validate"
context: "pull_request"
- env:
- CI_GITHUB_ACCESS_TOKEN: ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }}
From b7a1b72c8f186497c45157ede347244192ae44f7 Mon Sep 17 00:00:00 2001
From: Marcos Marx
Date: Wed, 12 Apr 2023 13:55:04 -0300
Subject: [PATCH 035/187] Source Stripe: generate seed source file (#25113)
* Expand tiers when syncing plans
* Update Plans stream schema
* Re-bump
* Bump
* Remove string as a plan schema
* bump
* Update changelog
* update source spec
* Automated Change
---------
Co-authored-by: Visnu Pitiyanuvath
Co-authored-by: Sherif A. Nada
Co-authored-by: sh4sh <6833405+sh4sh@users.noreply.github.com>
---
.../init-oss/src/main/resources/seed/oss_catalog.json | 2 +-
.../init-oss/src/main/resources/seed/source_definitions.yaml | 2 +-
.../init-oss/src/main/resources/seed/source_specs.yaml | 2 +-
connectors.md | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index ff8a38a89362..66dc718b5496 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -24452,7 +24452,7 @@
"sourceDefinitionId": "e094cb9a-26de-4645-8761-65c0c425d1de",
"name": "Stripe",
"dockerRepository": "airbyte/source-stripe",
- "dockerImageTag": "3.0.5",
+ "dockerImageTag": "3.1.0",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/stripe",
"icon": "stripe.svg",
"sourceType": "api",
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
index bb0a0d63ee5e..8df1da73307a 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
@@ -2006,7 +2006,7 @@
- name: Stripe
sourceDefinitionId: e094cb9a-26de-4645-8761-65c0c425d1de
dockerRepository: airbyte/source-stripe
- dockerImageTag: 3.0.5
+ dockerImageTag: 3.1.0
documentationUrl: https://docs.airbyte.com/integrations/sources/stripe
icon: stripe.svg
sourceType: api
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
index 6ad04de392d8..7581bb85df00 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
@@ -15086,7 +15086,7 @@
supportsNormalization: false
supportsDBT: false
supported_destination_sync_modes: []
-- dockerImage: "airbyte/source-stripe:3.0.5"
+- dockerImage: "airbyte/source-stripe:3.1.0"
spec:
documentationUrl: "https://docs.airbyte.com/integrations/sources/stripe"
connectionSpecification:
diff --git a/connectors.md b/connectors.md
index 06e982113561..1e8c35ffd589 100644
--- a/connectors.md
+++ b/connectors.md
@@ -229,7 +229,7 @@
| **Square** | | Source | airbyte/source-square:0.2.2 | beta | [link](https://docs.airbyte.com/integrations/sources/square) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-square) | `77225a51-cd15-4a13-af02-65816bd0ecf4` |
| **Statuspage** | | Source | airbyte/source-statuspage:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/statuspage) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-statuspage) | `74cbd708-46c3-4512-9c93-abd5c3e9a94d` |
| **Strava** | | Source | airbyte/source-strava:0.1.4 | beta | [link](https://docs.airbyte.com/integrations/sources/strava) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-strava) | `7a4327c4-315a-11ec-8d3d-0242ac130003` |
-| **Stripe** | | Source | airbyte/source-stripe:3.0.5 | generally_available | [link](https://docs.airbyte.com/integrations/sources/stripe) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-stripe) | `e094cb9a-26de-4645-8761-65c0c425d1de` |
+| **Stripe** | | Source | airbyte/source-stripe:3.1.0 | generally_available | [link](https://docs.airbyte.com/integrations/sources/stripe) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-stripe) | `e094cb9a-26de-4645-8761-65c0c425d1de` |
| **SurveyCTO** | | Source | airbyte/source-surveycto:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/surveycto) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-surveycto) | `dd4632f4-15e0-4649-9b71-41719fb1fdee` |
| **SurveyMonkey** | | Source | airbyte/source-surveymonkey:0.1.15 | generally_available | [link](https://docs.airbyte.com/integrations/sources/surveymonkey) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-surveymonkey) | `badc5925-0485-42be-8caa-b34096cb71b5` |
| **SurveySparrow** | | Source | airbyte/source-survey-sparrow:0.2.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/survey-sparrow) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-survey-sparrow) | `4a4d887b-0f2d-4b33-ab7f-9b01b9072804` |
From c5ff52a4961b999640f3a53fd1633df8cdb4825c Mon Sep 17 00:00:00 2001
From: Alexandre Girard
Date: Wed, 12 Apr 2023 14:46:43 -0700
Subject: [PATCH 036/187] Connector builder: set pages and slices limits
(#25121)
* Set limits
* refactor and add unit tests
* Update as per comments
---
.../connector_builder_handler.py | 42 ++++++++++++---
.../airbyte_cdk/connector_builder/main.py | 26 ++++-----
.../test_connector_builder_handler.py | 53 +++++++++++++++++--
3 files changed, 95 insertions(+), 26 deletions(-)
diff --git a/airbyte-cdk/python/airbyte_cdk/connector_builder/connector_builder_handler.py b/airbyte-cdk/python/airbyte_cdk/connector_builder/connector_builder_handler.py
index dc7740fac9a8..76909c8ca6d4 100644
--- a/airbyte-cdk/python/airbyte_cdk/connector_builder/connector_builder_handler.py
+++ b/airbyte-cdk/python/airbyte_cdk/connector_builder/connector_builder_handler.py
@@ -14,23 +14,49 @@
from airbyte_cdk.sources.declarative.declarative_source import DeclarativeSource
from airbyte_cdk.sources.declarative.declarative_stream import DeclarativeStream
from airbyte_cdk.sources.declarative.manifest_declarative_source import ManifestDeclarativeSource
+from airbyte_cdk.sources.declarative.parsers.model_to_component_factory import ModelToComponentFactory
from airbyte_cdk.sources.streams.http import HttpStream
from airbyte_cdk.utils.traced_exception import AirbyteTracedException
DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE = 5
DEFAULT_MAXIMUM_NUMBER_OF_SLICES = 5
-DEFAULT_MAX_RECORDS = 100
+DEFAULT_MAXIMUM_RECORDS = 100
+MAX_PAGES_PER_SLICE_KEY = "max_pages_per_slice"
+MAX_SLICES_KEY = "max_slices"
+MAX_RECORDS_KEY = "max_records"
-def read_stream(source: DeclarativeSource, config: Mapping[str, Any], configured_catalog: ConfiguredAirbyteCatalog) -> AirbyteMessage:
+
+@dataclasses.dataclass
+class TestReadLimits:
+ max_records: int = dataclasses.field(default=DEFAULT_MAXIMUM_RECORDS)
+ max_pages_per_slice: int = dataclasses.field(default=DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE)
+ max_slices: int = dataclasses.field(default=DEFAULT_MAXIMUM_NUMBER_OF_SLICES)
+
+
+def get_limits(config: Mapping[str, Any]) -> TestReadLimits:
+ command_config = config.get("__test_read_config", {})
+ max_pages_per_slice = command_config.get(MAX_PAGES_PER_SLICE_KEY) or DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE
+ max_slices = command_config.get(MAX_SLICES_KEY) or DEFAULT_MAXIMUM_NUMBER_OF_SLICES
+ max_records = command_config.get(MAX_RECORDS_KEY) or DEFAULT_MAXIMUM_RECORDS
+ return TestReadLimits(max_records, max_pages_per_slice, max_slices)
+
+
+def create_source(config: Mapping[str, Any], limits: TestReadLimits) -> ManifestDeclarativeSource:
+ manifest = config["__injected_declarative_manifest"]
+ return ManifestDeclarativeSource(
+ source_config=manifest, component_factory=ModelToComponentFactory(
+ emit_connector_builder_messages=True,
+ limit_pages_fetched_per_slice=limits.max_pages_per_slice,
+ limit_slices_fetched=limits.max_slices)
+ )
+
+
+def read_stream(source: DeclarativeSource, config: Mapping[str, Any], configured_catalog: ConfiguredAirbyteCatalog, limits: TestReadLimits) -> AirbyteMessage:
try:
- command_config = config.get("__test_read_config", {})
- max_pages_per_slice = command_config.get("max_pages_per_slice", DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE)
- max_slices = command_config.get("max_slices", DEFAULT_MAXIMUM_NUMBER_OF_SLICES)
- max_records = command_config.get("max_records", DEFAULT_MAX_RECORDS)
- handler = MessageGrouper(max_pages_per_slice, max_slices)
+ handler = MessageGrouper(limits.max_pages_per_slice, limits.max_slices)
stream_name = configured_catalog.streams[0].stream.name # The connector builder only supports a single stream
- stream_read = handler.get_message_groups(source, config, configured_catalog, max_records)
+ stream_read = handler.get_message_groups(source, config, configured_catalog, limits.max_records)
return AirbyteMessage(
type=MessageType.RECORD,
record=AirbyteRecordMessage(data=dataclasses.asdict(stream_read), stream=stream_name, emitted_at=_emitted_at()),
diff --git a/airbyte-cdk/python/airbyte_cdk/connector_builder/main.py b/airbyte-cdk/python/airbyte_cdk/connector_builder/main.py
index 3f15ca2ca434..07ffb8f58e21 100644
--- a/airbyte-cdk/python/airbyte_cdk/connector_builder/main.py
+++ b/airbyte-cdk/python/airbyte_cdk/connector_builder/main.py
@@ -7,21 +7,20 @@
from typing import Any, List, Mapping, Optional, Tuple
from airbyte_cdk.connector import BaseConnector
-from airbyte_cdk.connector_builder.connector_builder_handler import list_streams, read_stream, resolve_manifest
+from airbyte_cdk.connector_builder.connector_builder_handler import (
+ TestReadLimits,
+ create_source,
+ get_limits,
+ list_streams,
+ read_stream,
+ resolve_manifest,
+)
from airbyte_cdk.entrypoint import AirbyteEntrypoint
from airbyte_cdk.models import ConfiguredAirbyteCatalog
from airbyte_cdk.sources.declarative.manifest_declarative_source import ManifestDeclarativeSource
-from airbyte_cdk.sources.declarative.parsers.model_to_component_factory import ModelToComponentFactory
from airbyte_cdk.utils.traced_exception import AirbyteTracedException
-def create_source(config: Mapping[str, Any]) -> ManifestDeclarativeSource:
- manifest = config.get("__injected_declarative_manifest")
- return ManifestDeclarativeSource(
- source_config=manifest, component_factory=ModelToComponentFactory(emit_connector_builder_messages=True)
- )
-
-
def get_config_and_catalog_from_args(args: List[str]) -> Tuple[str, Mapping[str, Any], Optional[ConfiguredAirbyteCatalog]]:
parsed_args = AirbyteEntrypoint.parse_args(args)
config_path, catalog_path = parsed_args.config, parsed_args.catalog
@@ -50,13 +49,13 @@ def get_config_and_catalog_from_args(args: List[str]) -> Tuple[str, Mapping[str,
def handle_connector_builder_request(
- source: ManifestDeclarativeSource, command: str, config: Mapping[str, Any], catalog: Optional[ConfiguredAirbyteCatalog]
+ source: ManifestDeclarativeSource, command: str, config: Mapping[str, Any], catalog: Optional[ConfiguredAirbyteCatalog], limits: TestReadLimits
):
if command == "resolve_manifest":
return resolve_manifest(source)
elif command == "test_read":
assert catalog is not None, "`test_read` requires a valid `ConfiguredAirbyteCatalog`, got None."
- return read_stream(source, config, catalog)
+ return read_stream(source, config, catalog, limits)
elif command == "list_streams":
return list_streams(source, config)
else:
@@ -65,8 +64,9 @@ def handle_connector_builder_request(
def handle_request(args: List[str]):
command, config, catalog = get_config_and_catalog_from_args(args)
- source = create_source(config)
- return handle_connector_builder_request(source, command, config, catalog).json(exclude_unset=True)
+ limits = get_limits(config)
+ source = create_source(config, limits)
+ return handle_connector_builder_request(source, command, config, catalog, limits).json(exclude_unset=True)
if __name__ == "__main__":
diff --git a/airbyte-cdk/python/unit_tests/connector_builder/test_connector_builder_handler.py b/airbyte-cdk/python/unit_tests/connector_builder/test_connector_builder_handler.py
index fb0f8f7e325b..0ebadda79485 100644
--- a/airbyte-cdk/python/unit_tests/connector_builder/test_connector_builder_handler.py
+++ b/airbyte-cdk/python/unit_tests/connector_builder/test_connector_builder_handler.py
@@ -10,7 +10,16 @@
import pytest
from airbyte_cdk import connector_builder
-from airbyte_cdk.connector_builder.connector_builder_handler import list_streams, resolve_manifest
+from airbyte_cdk.connector_builder.connector_builder_handler import (
+ DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE,
+ DEFAULT_MAXIMUM_NUMBER_OF_SLICES,
+ DEFAULT_MAXIMUM_RECORDS,
+ TestReadLimits,
+ create_source,
+ get_limits,
+ list_streams,
+ resolve_manifest,
+)
from airbyte_cdk.connector_builder.main import handle_connector_builder_request, handle_request, read_stream
from airbyte_cdk.connector_builder.models import LogMessage, StreamRead, StreamReadSlicesInner, StreamReadSlicesInnerPagesInner
from airbyte_cdk.models import AirbyteMessage, AirbyteRecordMessage, ConfiguredAirbyteCatalog
@@ -153,7 +162,8 @@ def test_resolve_manifest(valid_resolve_manifest_config_file):
command = "resolve_manifest"
config["__command"] = command
source = ManifestDeclarativeSource(MANIFEST)
- resolved_manifest = handle_connector_builder_request(source, command, config, create_configured_catalog("dummy_stream"))
+ limits = TestReadLimits()
+ resolved_manifest = handle_connector_builder_request(source, command, config, create_configured_catalog("dummy_stream"), limits)
expected_resolved_manifest = {
"type": "DeclarativeSource",
@@ -316,9 +326,10 @@ def test_read():
emitted_at=1,
),
)
+ limits = TestReadLimits()
with patch("airbyte_cdk.connector_builder.message_grouper.MessageGrouper.get_message_groups", return_value=stream_read):
output_record = handle_connector_builder_request(
- source, "test_read", config, ConfiguredAirbyteCatalog.parse_obj(CONFIGURED_CATALOG)
+ source, "test_read", config, ConfiguredAirbyteCatalog.parse_obj(CONFIGURED_CATALOG), limits
)
output_record.record.emitted_at = 1
assert output_record == expected_airbyte_message
@@ -334,7 +345,8 @@ def read(self, logger, config, catalog, state):
mock_from_exception.return_value = stack_trace
source = MockManifestDeclarativeSource()
- response = read_stream(source, TEST_READ_CONFIG, ConfiguredAirbyteCatalog.parse_obj(CONFIGURED_CATALOG))
+ limits = TestReadLimits()
+ response = read_stream(source, TEST_READ_CONFIG, ConfiguredAirbyteCatalog.parse_obj(CONFIGURED_CATALOG), limits)
expected_stream_read = StreamRead(logs=[LogMessage("error_message - a stack trace", "ERROR")],
slices=[StreamReadSlicesInner(
@@ -449,8 +461,9 @@ def test_list_streams_integration_test():
command = "list_streams"
config["__command"] = command
source = ManifestDeclarativeSource(MANIFEST)
+ limits = TestReadLimits()
- list_streams = handle_connector_builder_request(source, command, config, None)
+ list_streams = handle_connector_builder_request(source, command, config, None, limits)
assert list_streams.record.data == {
"streams": [{"name": "stream_with_custom_requester", "url": "https://api.sendgrid.com/v3/marketing/lists"}]
@@ -469,3 +482,33 @@ def create_mock_declarative_stream(http_stream):
declarative_stream = mock.Mock(spec=DeclarativeStream, autospec=True)
declarative_stream.retriever = http_stream
return declarative_stream
+
+
+@pytest.mark.parametrize(
+ "test_name, config, expected_max_records, expected_max_slices, expected_max_pages_per_slice",
+ [
+ ("test_no_test_read_config", {}, DEFAULT_MAXIMUM_RECORDS, DEFAULT_MAXIMUM_NUMBER_OF_SLICES, DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE),
+ ("test_no_values_set", {"__test_read_config": {}}, DEFAULT_MAXIMUM_RECORDS, DEFAULT_MAXIMUM_NUMBER_OF_SLICES, DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE),
+ ("test_values_are_set", {"__test_read_config": {"max_slices": 1, "max_pages_per_slice": 2, "max_records": 3}}, 3, 1, 2),
+ ],
+)
+def test_get_limits(test_name, config, expected_max_records, expected_max_slices, expected_max_pages_per_slice):
+ limits = get_limits(config)
+ assert limits.max_records == expected_max_records
+ assert limits.max_pages_per_slice == expected_max_pages_per_slice
+ assert limits.max_slices == expected_max_slices
+
+
+def test_create_source():
+ max_records = 3
+ max_pages_per_slice = 2
+ max_slices = 1
+ limits = TestReadLimits(max_records, max_pages_per_slice, max_slices)
+
+ config = {"__injected_declarative_manifest": MANIFEST}
+
+ source = create_source(config, limits)
+
+ assert isinstance(source, ManifestDeclarativeSource)
+ assert source._constructor._limit_pages_fetched_per_slice == limits.max_pages_per_slice
+ assert source._constructor._limit_slices_fetched == limits.max_slices
From b9a3c7cbefacbac13482192c6208d1a7b27f0c26 Mon Sep 17 00:00:00 2001
From: girarda
Date: Wed, 12 Apr 2023 21:54:31 +0000
Subject: [PATCH 037/187] =?UTF-8?q?=F0=9F=A4=96=20Bump=20patch=20version?=
=?UTF-8?q?=20of=20Airbyte=20CDK?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
airbyte-cdk/python/.bumpversion.cfg | 2 +-
airbyte-cdk/python/CHANGELOG.md | 3 +++
airbyte-cdk/python/Dockerfile | 4 ++--
airbyte-cdk/python/setup.py | 2 +-
4 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/airbyte-cdk/python/.bumpversion.cfg b/airbyte-cdk/python/.bumpversion.cfg
index ab2824532d5a..087205a91cf3 100644
--- a/airbyte-cdk/python/.bumpversion.cfg
+++ b/airbyte-cdk/python/.bumpversion.cfg
@@ -1,5 +1,5 @@
[bumpversion]
-current_version = 0.34.0
+current_version = 0.34.1
commit = False
[bumpversion:file:setup.py]
diff --git a/airbyte-cdk/python/CHANGELOG.md b/airbyte-cdk/python/CHANGELOG.md
index 73113f477483..f6d8b13e547d 100644
--- a/airbyte-cdk/python/CHANGELOG.md
+++ b/airbyte-cdk/python/CHANGELOG.md
@@ -1,5 +1,8 @@
# Changelog
+## 0.34.1
+set slice and pages limit when reading from the connector builder module
+
## 0.34.0
Low-Code CDK: Enable use of SingleUseRefreshTokenAuthenticator
diff --git a/airbyte-cdk/python/Dockerfile b/airbyte-cdk/python/Dockerfile
index 4eb9c36cfdd0..cd5d7989b6e1 100644
--- a/airbyte-cdk/python/Dockerfile
+++ b/airbyte-cdk/python/Dockerfile
@@ -10,7 +10,7 @@ RUN apk --no-cache upgrade \
&& apk --no-cache add tzdata build-base
# install airbyte-cdk
-RUN pip install --prefix=/install airbyte-cdk==0.34.0
+RUN pip install --prefix=/install airbyte-cdk==0.34.1
# build a clean environment
FROM base
@@ -32,5 +32,5 @@ ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
# needs to be the same as CDK
-LABEL io.airbyte.version=0.34.0
+LABEL io.airbyte.version=0.34.1
LABEL io.airbyte.name=airbyte/source-declarative-manifest
diff --git a/airbyte-cdk/python/setup.py b/airbyte-cdk/python/setup.py
index e023fb57a959..40a36d00a372 100644
--- a/airbyte-cdk/python/setup.py
+++ b/airbyte-cdk/python/setup.py
@@ -17,7 +17,7 @@
name="airbyte-cdk",
# The version of the airbyte-cdk package is used at runtime to validate manifests. That validation must be
# updated if our semver format changes such as using release candidate versions.
- version="0.34.0",
+ version="0.34.1",
description="A framework for writing Airbyte Connectors.",
long_description=README,
long_description_content_type="text/markdown",
From 5c42200379f97d21818e389a4391e10ceffd9750 Mon Sep 17 00:00:00 2001
From: girarda
Date: Thu, 13 Apr 2023 02:01:57 +0000
Subject: [PATCH 038/187] Bump Airbyte version from 0.43.1 to 0.43.2
---
.bumpversion.cfg | 2 +-
.env | 2 +-
docker-compose.yaml | 2 +-
docs/operator-guides/upgrading-airbyte.md | 2 +-
flags.yml | 2 ++
gradle.properties | 2 +-
octavia-cli/Dockerfile | 2 +-
octavia-cli/README.md | 2 +-
octavia-cli/install.sh | 2 +-
octavia-cli/setup.py | 2 +-
10 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/.bumpversion.cfg b/.bumpversion.cfg
index efb2724047b8..b1c362312671 100644
--- a/.bumpversion.cfg
+++ b/.bumpversion.cfg
@@ -1,5 +1,5 @@
[bumpversion]
-current_version = 0.43.1
+current_version = 0.43.2
commit = False
tag = False
parse = (?P\d+)\.(?P\d+)\.(?P\d+)(\-[a-z]+)?
diff --git a/.env b/.env
index fab81a948b1e..6e0399555de1 100644
--- a/.env
+++ b/.env
@@ -10,7 +10,7 @@
### SHARED ###
-VERSION=0.43.1
+VERSION=0.43.2
# When using the airbyte-db via default docker image
CONFIG_ROOT=/data
diff --git a/docker-compose.yaml b/docker-compose.yaml
index d1c132a75fcf..fd0590ffd847 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -84,7 +84,7 @@ services:
- MAX_SPEC_WORKERS=${MAX_SPEC_WORKERS}
- MAX_SYNC_WORKERS=${MAX_SYNC_WORKERS}
- MAX_NOTIFY_WORKERS=${MAX_NOTIFY_WORKERS}
- - SHOULD_RUN_NOTIFY_WORKFLOW=${SHOULD_RUN_NOTIFY_WORKFLOW}
+ - SHOULD_RUN_NOTIFY_WORKFLOWS=${SHOULD_RUN_NOTIFY_WORKFLOWS}
- NORMALIZATION_JOB_MAIN_CONTAINER_MEMORY_LIMIT=${NORMALIZATION_JOB_MAIN_CONTAINER_MEMORY_LIMIT}
- NORMALIZATION_JOB_MAIN_CONTAINER_MEMORY_REQUEST=${NORMALIZATION_JOB_MAIN_CONTAINER_MEMORY_REQUEST}
- NORMALIZATION_JOB_MAIN_CONTAINER_CPU_LIMIT=${NORMALIZATION_JOB_MAIN_CONTAINER_CPU_LIMIT}
diff --git a/docs/operator-guides/upgrading-airbyte.md b/docs/operator-guides/upgrading-airbyte.md
index 4de51337eb94..446e42a0f3c5 100644
--- a/docs/operator-guides/upgrading-airbyte.md
+++ b/docs/operator-guides/upgrading-airbyte.md
@@ -109,7 +109,7 @@ If you are upgrading from (i.e. your current version of Airbyte is) Airbyte vers
Here's an example of what it might look like with the values filled in. It assumes that the downloaded `airbyte_archive.tar.gz` is in `/tmp`.
```bash
- docker run --rm -v /tmp:/config airbyte/migration:0.43.1 --\
+ docker run --rm -v /tmp:/config airbyte/migration:0.43.2 --\
--input /config/airbyte_archive.tar.gz\
--output /config/airbyte_archive_migrated.tar.gz
```
diff --git a/flags.yml b/flags.yml
index d12aa22c5e52..032f2836bf03 100644
--- a/flags.yml
+++ b/flags.yml
@@ -7,5 +7,7 @@ flags:
serve: true
- name: connectors.versionOverridesEnabled
serve: true
+ - name: billing.newTrialPolicy
+ serve: false
- name: heartbeat-max-seconds-between-messages
serve: "10800"
diff --git a/gradle.properties b/gradle.properties
index a5246f694d46..fab9b9655592 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,4 +1,4 @@
-VERSION=0.43.1
+VERSION=0.43.2
# NOTE: some of these values are overwritten in CI!
# NOTE: if you want to override this for your local machine, set overrides in ~/.gradle/gradle.properties
diff --git a/octavia-cli/Dockerfile b/octavia-cli/Dockerfile
index b2c6cb24cf62..5639fab96511 100644
--- a/octavia-cli/Dockerfile
+++ b/octavia-cli/Dockerfile
@@ -14,5 +14,5 @@ USER octavia-cli
WORKDIR /home/octavia-project
ENTRYPOINT ["octavia"]
-LABEL io.airbyte.version=0.43.1
+LABEL io.airbyte.version=0.43.2
LABEL io.airbyte.name=airbyte/octavia-cli
diff --git a/octavia-cli/README.md b/octavia-cli/README.md
index 75e131629c3d..36160940be9f 100644
--- a/octavia-cli/README.md
+++ b/octavia-cli/README.md
@@ -104,7 +104,7 @@ This script:
```bash
touch ~/.octavia # Create a file to store env variables that will be mapped the octavia-cli container
mkdir my_octavia_project_directory # Create your octavia project directory where YAML configurations will be stored.
-docker run --name octavia-cli -i --rm -v my_octavia_project_directory:/home/octavia-project --network host --user $(id -u):$(id -g) --env-file ~/.octavia airbyte/octavia-cli:0.43.1
+docker run --name octavia-cli -i --rm -v my_octavia_project_directory:/home/octavia-project --network host --user $(id -u):$(id -g) --env-file ~/.octavia airbyte/octavia-cli:0.43.2
```
### Using `docker-compose`
diff --git a/octavia-cli/install.sh b/octavia-cli/install.sh
index 6353ed39d40b..02d99e6d390d 100755
--- a/octavia-cli/install.sh
+++ b/octavia-cli/install.sh
@@ -3,7 +3,7 @@
# This install scripts currently only works for ZSH and Bash profiles.
# It creates an octavia alias in your profile bound to a docker run command and your current user.
-VERSION=0.43.1
+VERSION=0.43.2
OCTAVIA_ENV_FILE=${HOME}/.octavia
detect_profile() {
diff --git a/octavia-cli/setup.py b/octavia-cli/setup.py
index 5656d2f063e8..960dcc259191 100644
--- a/octavia-cli/setup.py
+++ b/octavia-cli/setup.py
@@ -15,7 +15,7 @@
setup(
name="octavia-cli",
- version="0.43.1",
+ version="0.43.2",
description="A command line interface to manage Airbyte configurations",
long_description=README,
author="Airbyte",
From 5d5efd0d417b79fabe4384118544b6b4967e8baa Mon Sep 17 00:00:00 2001
From: Evan Tahler
Date: Wed, 12 Apr 2023 19:35:36 -0700
Subject: [PATCH 039/187] source-postgres works with bigger datasets (#25138)
---
docs/integrations/sources/postgres.md | 4 ----
1 file changed, 4 deletions(-)
diff --git a/docs/integrations/sources/postgres.md b/docs/integrations/sources/postgres.md
index e44c9463b97f..47c206ba3fae 100644
--- a/docs/integrations/sources/postgres.md
+++ b/docs/integrations/sources/postgres.md
@@ -2,10 +2,6 @@
This page contains the setup guide and reference information for the Postgres source connector for CDC and non-CDC workflows.
-:::note
-The Postgres source performs best on small databases (under 100GB).
-:::
-
## When to use Postgres with CDC
Configure Postgres with CDC if:
From 03572a30293cb1b9361265e0e81b060dc6e4a348 Mon Sep 17 00:00:00 2001
From: Augustin
Date: Thu, 13 Apr 2023 07:45:04 +0200
Subject: [PATCH 040/187] create metadata files for all connectors (#24964)
---
.../lib/metadata_service/commands.py | 1 +
.../ConnectorMetadataDefinitionV1.py | 53 ++++++++++++-------
.../src/ConnectorMetadataDefinitionV1.yaml | 1 +
.../destination-amazon-sqs/metadata.yaml | 18 +++++++
.../destination-aws-datalake/metadata.yaml | 18 +++++++
.../metadata.yaml | 24 +++++++++
.../metadata.yaml | 24 +++++++++
.../destination-bigquery/metadata.yaml | 29 ++++++++++
.../destination-cassandra/metadata.yaml | 18 +++++++
.../metadata.yaml | 23 ++++++++
.../destination-clickhouse/metadata.yaml | 25 +++++++++
.../destination-convex/metadata.yaml | 18 +++++++
.../connectors/destination-csv/metadata.yaml | 18 +++++++
.../destination-databend/metadata.yaml | 18 +++++++
.../destination-databricks/metadata.yaml | 18 +++++++
.../destination-dev-null/metadata.yaml | 17 ++++++
.../destination-doris/metadata.yaml | 18 +++++++
.../destination-duckdb/metadata.yaml | 18 +++++++
.../destination-dynamodb/metadata.yaml | 18 +++++++
.../destination-e2e-test/metadata.yaml | 18 +++++++
.../metadata.yaml | 18 +++++++
.../destination-elasticsearch/metadata.yaml | 19 +++++++
.../destination-exasol/metadata.yaml | 17 ++++++
.../destination-firebolt/metadata.yaml | 19 +++++++
.../destination-firestore/metadata.yaml | 18 +++++++
.../connectors/destination-gcs/metadata.yaml | 24 +++++++++
.../destination-google-sheets/metadata.yaml | 18 +++++++
.../destination-iceberg/metadata.yaml | 17 ++++++
.../destination-kafka/metadata.yaml | 18 +++++++
.../connectors/destination-keen/metadata.yaml | 18 +++++++
.../destination-kinesis/metadata.yaml | 18 +++++++
.../destination-local-json/metadata.yaml | 18 +++++++
.../metadata.yaml | 18 +++++++
.../destination-meilisearch/metadata.yaml | 18 +++++++
.../metadata.yaml | 18 +++++++
.../destination-mongodb/metadata.yaml | 19 +++++++
.../connectors/destination-mqtt/metadata.yaml | 18 +++++++
.../metadata.yaml | 23 ++++++++
.../destination-mssql/metadata.yaml | 25 +++++++++
.../metadata.yaml | 23 ++++++++
.../destination-mysql/metadata.yaml | 24 +++++++++
.../metadata.yaml | 23 ++++++++
.../destination-oracle/metadata.yaml | 24 +++++++++
.../metadata.yaml | 23 ++++++++
.../destination-postgres/metadata.yaml | 25 +++++++++
.../destination-pubsub/metadata.yaml | 18 +++++++
.../destination-pulsar/metadata.yaml | 18 +++++++
.../connectors/destination-r2/metadata.yaml | 18 +++++++
.../destination-rabbitmq/metadata.yaml | 18 +++++++
.../destination-redis/metadata.yaml | 18 +++++++
.../destination-redpanda/metadata.yaml | 18 +++++++
.../destination-redshift/metadata.yaml | 29 ++++++++++
.../destination-rockset/metadata.yaml | 17 ++++++
.../destination-s3-glue/metadata.yaml | 18 +++++++
.../connectors/destination-s3/metadata.yaml | 24 +++++++++
.../destination-scylla/metadata.yaml | 18 +++++++
.../destination-selectdb/metadata.yaml | 18 +++++++
.../destination-sftp-json/metadata.yaml | 18 +++++++
.../destination-snowflake/metadata.yaml | 29 ++++++++++
.../destination-sqlite/metadata.yaml | 18 +++++++
.../destination-teradata/metadata.yaml | 18 +++++++
.../connectors/destination-tidb/metadata.yaml | 23 ++++++++
.../destination-typesense/metadata.yaml | 18 +++++++
.../destination-weaviate/metadata.yaml | 18 +++++++
.../destination-yugabytedb/metadata.yaml | 18 +++++++
.../source-activecampaign/metadata.yaml | 18 +++++++
.../connectors/source-adjust/metadata.yaml | 18 +++++++
.../connectors/source-aha/metadata.yaml | 18 +++++++
.../connectors/source-airtable/metadata.yaml | 22 ++++++++
.../metadata.yaml | 22 ++++++++
.../connectors/source-alloydb/metadata.yaml | 24 +++++++++
.../source-alpha-vantage/metadata.yaml | 18 +++++++
.../source-amazon-ads/metadata.yaml | 24 +++++++++
.../metadata.yaml | 18 +++++++
.../source-amazon-sqs/metadata.yaml | 18 +++++++
.../connectors/source-amplitude/metadata.yaml | 21 ++++++++
.../source-apify-dataset/metadata.yaml | 18 +++++++
.../connectors/source-appfollow/metadata.yaml | 18 +++++++
.../connectors/source-appsflyer/metadata.yaml | 18 +++++++
.../source-appstore-singer/metadata.yaml | 18 +++++++
.../connectors/source-asana/metadata.yaml | 18 +++++++
.../connectors/source-ashby/metadata.yaml | 18 +++++++
.../connectors/source-auth0/metadata.yaml | 18 +++++++
.../source-aws-cloudtrail/metadata.yaml | 18 +++++++
.../source-azure-blob-storage/metadata.yaml | 18 +++++++
.../source-azure-table/metadata.yaml | 18 +++++++
.../source-babelforce/metadata.yaml | 18 +++++++
.../connectors/source-bamboo-hr/metadata.yaml | 18 +++++++
.../source-bigcommerce/metadata.yaml | 18 +++++++
.../connectors/source-bigquery/metadata.yaml | 18 +++++++
.../connectors/source-bing-ads/metadata.yaml | 26 +++++++++
.../connectors/source-braintree/metadata.yaml | 18 +++++++
.../connectors/source-braze/metadata.yaml | 17 ++++++
.../source-breezometer/metadata.yaml | 18 +++++++
.../connectors/source-callrail/metadata.yaml | 18 +++++++
.../connectors/source-cart/metadata.yaml | 18 +++++++
.../connectors/source-chargebee/metadata.yaml | 21 ++++++++
.../connectors/source-chargify/metadata.yaml | 18 +++++++
.../source-chartmogul/metadata.yaml | 21 ++++++++
.../metadata.yaml | 22 ++++++++
.../source-clickhouse/metadata.yaml | 24 +++++++++
.../source-clickup-api/metadata.yaml | 18 +++++++
.../connectors/source-clockify/metadata.yaml | 18 +++++++
.../connectors/source-close-com/metadata.yaml | 21 ++++++++
.../metadata.yaml | 21 ++++++++
.../source-cockroachdb/metadata.yaml | 21 ++++++++
.../connectors/source-coda/metadata.yaml | 18 +++++++
.../connectors/source-coin-api/metadata.yaml | 18 +++++++
.../source-coingecko-coins/metadata.yaml | 18 +++++++
.../source-coinmarketcap/metadata.yaml | 18 +++++++
.../connectors/source-commcare/metadata.yaml | 17 ++++++
.../source-commercetools/metadata.yaml | 18 +++++++
.../connectors/source-configcat/metadata.yaml | 18 +++++++
.../source-confluence/metadata.yaml | 21 ++++++++
.../source-convertkit/metadata.yaml | 18 +++++++
.../connectors/source-convex/metadata.yaml | 18 +++++++
.../connectors/source-copper/metadata.yaml | 18 +++++++
.../connectors/source-courier/metadata.yaml | 18 +++++++
.../connectors/source-datadog/metadata.yaml | 18 +++++++
.../connectors/source-datascope/metadata.yaml | 18 +++++++
.../connectors/source-db2/metadata.yaml | 21 ++++++++
.../connectors/source-delighted/metadata.yaml | 21 ++++++++
.../connectors/source-dixa/metadata.yaml | 18 +++++++
.../connectors/source-dockerhub/metadata.yaml | 18 +++++++
.../connectors/source-dremio/metadata.yaml | 18 +++++++
.../connectors/source-drift/metadata.yaml | 21 ++++++++
.../connectors/source-dv-360/metadata.yaml | 18 +++++++
.../connectors/source-dynamodb/metadata.yaml | 18 +++++++
.../source-e2e-test-cloud/metadata.yaml | 18 +++++++
.../connectors/source-e2e-test/metadata.yaml | 18 +++++++
.../source-elasticsearch/metadata.yaml | 18 +++++++
.../source-emailoctopus/metadata.yaml | 18 +++++++
.../connectors/source-everhour/metadata.yaml | 21 ++++++++
.../source-exchange-rates/metadata.yaml | 22 ++++++++
.../source-facebook-marketing/metadata.yaml | 21 ++++++++
.../source-facebook-pages/metadata.yaml | 21 ++++++++
.../connectors/source-faker/metadata.yaml | 31 +++++++++++
.../connectors/source-fastbill/metadata.yaml | 18 +++++++
.../connectors/source-fauna/metadata.yaml | 18 +++++++
.../connectors/source-file/metadata.yaml | 22 ++++++++
.../metadata.yaml | 20 +++++++
.../connectors/source-firebolt/metadata.yaml | 18 +++++++
.../connectors/source-flexport/metadata.yaml | 17 ++++++
.../source-freshcaller/metadata.yaml | 18 +++++++
.../connectors/source-freshdesk/metadata.yaml | 21 ++++++++
.../source-freshsales/metadata.yaml | 21 ++++++++
.../source-freshservice/metadata.yaml | 18 +++++++
.../connectors/source-gcs/metadata.yaml | 18 +++++++
.../connectors/source-genesys/metadata.yaml | 18 +++++++
.../connectors/source-getlago/metadata.yaml | 18 +++++++
.../connectors/source-github/metadata.yaml | 33 ++++++++++++
.../connectors/source-gitlab/metadata.yaml | 21 ++++++++
.../connectors/source-glassfrog/metadata.yaml | 18 +++++++
.../connectors/source-gnews/metadata.yaml | 18 +++++++
.../source-gocardless/metadata.yaml | 18 +++++++
.../connectors/source-gong/metadata.yaml | 18 +++++++
.../source-google-ads/metadata.yaml | 22 ++++++++
.../metadata.yaml | 23 ++++++++
.../source-google-analytics-v4/metadata.yaml | 24 +++++++++
.../source-google-directory/metadata.yaml | 19 +++++++
.../metadata.yaml | 18 +++++++
.../metadata.yaml | 21 ++++++++
.../source-google-sheets/metadata.yaml | 22 ++++++++
.../source-google-webfonts/metadata.yaml | 18 +++++++
.../metadata.yaml | 19 +++++++
.../source-greenhouse/metadata.yaml | 21 ++++++++
.../connectors/source-gridly/metadata.yaml | 18 +++++++
.../connectors/source-gutendex/metadata.yaml | 17 ++++++
.../connectors/source-harvest/metadata.yaml | 22 ++++++++
.../source-hellobaton/metadata.yaml | 18 +++++++
.../source-hubplanner/metadata.yaml | 18 +++++++
.../connectors/source-hubspot/metadata.yaml | 21 ++++++++
.../connectors/source-insightly/metadata.yaml | 18 +++++++
.../connectors/source-instagram/metadata.yaml | 21 ++++++++
.../connectors/source-instatus/metadata.yaml | 18 +++++++
.../connectors/source-intercom/metadata.yaml | 21 ++++++++
.../connectors/source-intruder/metadata.yaml | 18 +++++++
.../connectors/source-ip2whois/metadata.yaml | 18 +++++++
.../connectors/source-iterable/metadata.yaml | 21 ++++++++
.../connectors/source-jira/metadata.yaml | 21 ++++++++
.../connectors/source-k6-cloud/metadata.yaml | 18 +++++++
.../connectors/source-kafka/metadata.yaml | 18 +++++++
.../connectors/source-klarna/metadata.yaml | 18 +++++++
.../connectors/source-klaviyo/metadata.yaml | 22 ++++++++
.../source-kustomer-singer/metadata.yaml | 18 +++++++
.../connectors/source-kyriba/metadata.yaml | 18 +++++++
.../source-launchdarkly/metadata.yaml | 18 +++++++
.../connectors/source-lemlist/metadata.yaml | 17 ++++++
.../source-lever-hiring/metadata.yaml | 18 +++++++
.../source-linkedin-ads/metadata.yaml | 21 ++++++++
.../source-linkedin-pages/metadata.yaml | 18 +++++++
.../connectors/source-linnworks/metadata.yaml | 18 +++++++
.../connectors/source-lokalise/metadata.yaml | 18 +++++++
.../connectors/source-looker/metadata.yaml | 18 +++++++
.../connectors/source-mailchimp/metadata.yaml | 21 ++++++++
.../source-mailerlite/metadata.yaml | 18 +++++++
.../source-mailersend/metadata.yaml | 18 +++++++
.../connectors/source-mailgun/metadata.yaml | 18 +++++++
.../source-mailjet-mail/metadata.yaml | 18 +++++++
.../source-mailjet-sms/metadata.yaml | 18 +++++++
.../connectors/source-marketo/metadata.yaml | 21 ++++++++
.../connectors/source-metabase/metadata.yaml | 18 +++++++
.../source-microsoft-dataverse/metadata.yaml | 18 +++++++
.../source-microsoft-teams/metadata.yaml | 18 +++++++
.../connectors/source-mixpanel/metadata.yaml | 23 ++++++++
.../connectors/source-monday/metadata.yaml | 21 ++++++++
.../metadata.yaml | 18 +++++++
.../source-mongodb-v2/metadata.yaml | 20 +++++++
.../source-mssql-strict-encrypt/metadata.yaml | 22 ++++++++
.../connectors/source-mssql/metadata.yaml | 23 ++++++++
.../connectors/source-my-hours/metadata.yaml | 18 +++++++
.../source-mysql-strict-encrypt/metadata.yaml | 22 ++++++++
.../connectors/source-mysql/metadata.yaml | 23 ++++++++
.../connectors/source-n8n/metadata.yaml | 18 +++++++
.../connectors/source-nasa/metadata.yaml | 21 ++++++++
.../connectors/source-netsuite/metadata.yaml | 18 +++++++
.../connectors/source-news-api/metadata.yaml | 18 +++++++
.../connectors/source-newsdata/metadata.yaml | 17 ++++++
.../connectors/source-notion/metadata.yaml | 21 ++++++++
.../connectors/source-nytimes/metadata.yaml | 18 +++++++
.../connectors/source-okta/metadata.yaml | 18 +++++++
.../connectors/source-omnisend/metadata.yaml | 18 +++++++
.../connectors/source-onesignal/metadata.yaml | 18 +++++++
.../source-open-exchange-rates/metadata.yaml | 18 +++++++
.../source-openweather/metadata.yaml | 18 +++++++
.../connectors/source-opsgenie/metadata.yaml | 17 ++++++
.../metadata.yaml | 22 ++++++++
.../connectors/source-oracle/metadata.yaml | 24 +++++++++
.../connectors/source-orb/metadata.yaml | 18 +++++++
.../connectors/source-orbit/metadata.yaml | 18 +++++++
.../connectors/source-oura/metadata.yaml | 18 +++++++
.../connectors/source-outreach/metadata.yaml | 18 +++++++
.../connectors/source-pardot/metadata.yaml | 18 +++++++
.../source-partnerstack/metadata.yaml | 18 +++++++
.../source-paypal-transaction/metadata.yaml | 22 ++++++++
.../connectors/source-paystack/metadata.yaml | 21 ++++++++
.../connectors/source-pendo/metadata.yaml | 18 +++++++
.../connectors/source-persistiq/metadata.yaml | 18 +++++++
.../source-pexels-api/metadata.yaml | 18 +++++++
.../connectors/source-pinterest/metadata.yaml | 21 ++++++++
.../connectors/source-pipedrive/metadata.yaml | 21 ++++++++
.../source-pivotal-tracker/metadata.yaml | 18 +++++++
.../connectors/source-plaid/metadata.yaml | 18 +++++++
.../connectors/source-plausible/metadata.yaml | 18 +++++++
.../connectors/source-pocket/metadata.yaml | 18 +++++++
.../connectors/source-pokeapi/metadata.yaml | 18 +++++++
.../source-polygon-stock-api/metadata.yaml | 21 ++++++++
.../metadata.yaml | 22 ++++++++
.../connectors/source-postgres/metadata.yaml | 24 +++++++++
.../connectors/source-posthog/metadata.yaml | 22 ++++++++
.../source-postmarkapp/metadata.yaml | 18 +++++++
.../source-prestashop/metadata.yaml | 21 ++++++++
.../connectors/source-primetric/metadata.yaml | 18 +++++++
.../source-public-apis/metadata.yaml | 18 +++++++
.../connectors/source-punk-api/metadata.yaml | 18 +++++++
.../connectors/source-pypi/metadata.yaml | 18 +++++++
.../connectors/source-qonto/metadata.yaml | 18 +++++++
.../connectors/source-qualaroo/metadata.yaml | 18 +++++++
.../source-quickbooks-singer/metadata.yaml | 18 +++++++
.../connectors/source-railz/metadata.yaml | 18 +++++++
.../source-rd-station-marketing/metadata.yaml | 18 +++++++
.../connectors/source-recharge/metadata.yaml | 21 ++++++++
.../source-recreation/metadata.yaml | 18 +++++++
.../connectors/source-recruitee/metadata.yaml | 18 +++++++
.../connectors/source-recurly/metadata.yaml | 18 +++++++
.../connectors/source-redshift/metadata.yaml | 18 +++++++
.../connectors/source-reply-io/metadata.yaml | 18 +++++++
.../connectors/source-retently/metadata.yaml | 18 +++++++
.../connectors/source-rki-covid/metadata.yaml | 18 +++++++
.../source-rocket-chat/metadata.yaml | 18 +++++++
.../connectors/source-rss/metadata.yaml | 18 +++++++
.../connectors/source-s3/metadata.yaml | 21 ++++++++
.../source-salesforce-singer/metadata.yaml | 17 ++++++
.../source-salesforce/metadata.yaml | 21 ++++++++
.../connectors/source-salesloft/metadata.yaml | 21 ++++++++
.../source-sap-fieldglass/metadata.yaml | 18 +++++++
.../source-search-metrics/metadata.yaml | 18 +++++++
.../connectors/source-secoda/metadata.yaml | 18 +++++++
.../connectors/source-sendgrid/metadata.yaml | 21 ++++++++
.../source-sendinblue/metadata.yaml | 18 +++++++
.../source-senseforce/metadata.yaml | 22 ++++++++
.../connectors/source-sentry/metadata.yaml | 21 ++++++++
.../connectors/source-sftp-bulk/metadata.yaml | 18 +++++++
.../connectors/source-sftp/metadata.yaml | 18 +++++++
.../connectors/source-shopify/metadata.yaml | 18 +++++++
.../connectors/source-shortio/metadata.yaml | 18 +++++++
.../connectors/source-slack/metadata.yaml | 21 ++++++++
.../connectors/source-smaily/metadata.yaml | 18 +++++++
.../source-smartengage/metadata.yaml | 18 +++++++
.../source-smartsheets/metadata.yaml | 22 ++++++++
.../source-snapchat-marketing/metadata.yaml | 22 ++++++++
.../connectors/source-snowflake/metadata.yaml | 21 ++++++++
.../source-sonar-cloud/metadata.yaml | 21 ++++++++
.../source-spacex-api/metadata.yaml | 18 +++++++
.../connectors/source-square/metadata.yaml | 22 ++++++++
.../source-statuspage/metadata.yaml | 18 +++++++
.../connectors/source-strava/metadata.yaml | 21 ++++++++
.../connectors/source-stripe/metadata.yaml | 21 ++++++++
.../source-survey-sparrow/metadata.yaml | 18 +++++++
.../connectors/source-surveycto/metadata.yaml | 18 +++++++
.../source-surveymonkey/metadata.yaml | 21 ++++++++
.../source-talkdesk-explore/metadata.yaml | 18 +++++++
.../connectors/source-tempo/metadata.yaml | 21 ++++++++
.../source-the-guardian-api/metadata.yaml | 18 +++++++
.../connectors/source-tidb/metadata.yaml | 22 ++++++++
.../source-tiktok-marketing/metadata.yaml | 22 ++++++++
.../connectors/source-timely/metadata.yaml | 18 +++++++
.../connectors/source-tmdb/metadata.yaml | 18 +++++++
.../connectors/source-todoist/metadata.yaml | 18 +++++++
.../connectors/source-toggl/metadata.yaml | 18 +++++++
.../source-tplcentral/metadata.yaml | 17 ++++++
.../connectors/source-trello/metadata.yaml | 21 ++++++++
.../source-trustpilot/metadata.yaml | 18 +++++++
.../source-tvmaze-schedule/metadata.yaml | 18 +++++++
.../source-twilio-taskrouter/metadata.yaml | 18 +++++++
.../connectors/source-twilio/metadata.yaml | 22 ++++++++
.../connectors/source-twitter/metadata.yaml | 21 ++++++++
.../source-tyntec-sms/metadata.yaml | 18 +++++++
.../connectors/source-typeform/metadata.yaml | 21 ++++++++
.../connectors/source-unleash/metadata.yaml | 18 +++++++
.../connectors/source-us-census/metadata.yaml | 18 +++++++
.../connectors/source-vantage/metadata.yaml | 18 +++++++
.../source-visma-economic/metadata.yaml | 18 +++++++
.../connectors/source-vitally/metadata.yaml | 18 +++++++
.../connectors/source-waiteraid/metadata.yaml | 18 +++++++
.../source-weatherstack/metadata.yaml | 18 +++++++
.../connectors/source-webflow/metadata.yaml | 18 +++++++
.../source-whisky-hunter/metadata.yaml | 18 +++++++
.../source-wikipedia-pageviews/metadata.yaml | 18 +++++++
.../source-woocommerce/metadata.yaml | 21 ++++++++
.../connectors/source-workable/metadata.yaml | 18 +++++++
.../connectors/source-workramp/metadata.yaml | 18 +++++++
.../connectors/source-wrike/metadata.yaml | 18 +++++++
.../connectors/source-xero/metadata.yaml | 21 ++++++++
.../connectors/source-xkcd/metadata.yaml | 18 +++++++
.../source-yandex-metrica/metadata.yaml | 21 ++++++++
.../connectors/source-younium/metadata.yaml | 18 +++++++
.../source-youtube-analytics/metadata.yaml | 21 ++++++++
.../metadata.yaml | 18 +++++++
.../source-zendesk-chat/metadata.yaml | 21 ++++++++
.../source-zendesk-sell/metadata.yaml | 18 +++++++
.../source-zendesk-sunshine/metadata.yaml | 18 +++++++
.../source-zendesk-support/metadata.yaml | 22 ++++++++
.../source-zendesk-talk/metadata.yaml | 22 ++++++++
.../connectors/source-zenefits/metadata.yaml | 18 +++++++
.../connectors/source-zenloop/metadata.yaml | 21 ++++++++
.../connectors/source-zoho-crm/metadata.yaml | 18 +++++++
.../connectors/source-zoom/metadata.yaml | 18 +++++++
.../connectors/source-zuora/metadata.yaml | 19 +++++++
.../airbyte-customer-io-source/metadata.yaml | 18 +++++++
.../airbyte-harness-source/metadata.yaml | 18 +++++++
.../airbyte-jenkins-source/metadata.yaml | 18 +++++++
.../airbyte-pagerduty-source/metadata.yaml | 18 +++++++
.../airbyte-victorops-source/metadata.yaml | 18 +++++++
.../streamr-airbyte-connector/metadata.yaml | 18 +++++++
355 files changed, 6844 insertions(+), 20 deletions(-)
create mode 100644 airbyte-integrations/connectors/destination-amazon-sqs/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-aws-datalake/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-azure-blob-storage/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-bigquery-denormalized/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-bigquery/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-cassandra/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-clickhouse-strict-encrypt/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-clickhouse/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-convex/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-csv/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-databend/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-databricks/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-dev-null/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-doris/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-duckdb/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-dynamodb/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-e2e-test/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-elasticsearch-strict-encrypt/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-elasticsearch/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-exasol/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-firebolt/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-firestore/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-gcs/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-google-sheets/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-iceberg/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-kafka/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-keen/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-kinesis/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-local-json/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-mariadb-columnstore/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-meilisearch/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-mongodb-strict-encrypt/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-mongodb/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-mqtt/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-mssql-strict-encrypt/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-mssql/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-mysql-strict-encrypt/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-mysql/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-oracle-strict-encrypt/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-oracle/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-postgres-strict-encrypt/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-postgres/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-pubsub/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-pulsar/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-r2/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-rabbitmq/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-redis/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-redpanda/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-redshift/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-rockset/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-s3-glue/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-s3/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-scylla/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-selectdb/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-sftp-json/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-snowflake/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-sqlite/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-teradata/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-tidb/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-typesense/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-weaviate/metadata.yaml
create mode 100644 airbyte-integrations/connectors/destination-yugabytedb/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-activecampaign/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-adjust/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-aha/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-airtable/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-alloydb-strict-encrypt/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-alloydb/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-alpha-vantage/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-amazon-ads/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-amazon-seller-partner/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-amazon-sqs/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-amplitude/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-apify-dataset/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-appfollow/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-appsflyer/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-appstore-singer/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-asana/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-ashby/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-auth0/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-aws-cloudtrail/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-azure-blob-storage/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-azure-table/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-babelforce/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-bamboo-hr/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-bigcommerce/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-bigquery/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-bing-ads/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-braintree/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-braze/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-breezometer/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-callrail/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-cart/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-chargebee/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-chargify/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-chartmogul/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-clickhouse-strict-encrypt/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-clickhouse/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-clickup-api/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-clockify/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-close-com/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-cockroachdb-strict-encrypt/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-cockroachdb/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-coda/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-coin-api/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-coingecko-coins/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-coinmarketcap/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-commcare/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-commercetools/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-configcat/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-confluence/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-convertkit/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-convex/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-copper/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-courier/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-datadog/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-datascope/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-db2/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-delighted/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-dixa/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-dockerhub/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-dremio/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-drift/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-dv-360/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-dynamodb/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-e2e-test-cloud/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-e2e-test/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-elasticsearch/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-emailoctopus/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-everhour/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-exchange-rates/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-facebook-marketing/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-facebook-pages/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-faker/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-fastbill/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-fauna/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-file/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-firebase-realtime-database/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-firebolt/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-flexport/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-freshcaller/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-freshdesk/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-freshsales/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-freshservice/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-gcs/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-genesys/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-getlago/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-github/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-gitlab/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-glassfrog/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-gnews/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-gocardless/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-gong/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-google-ads/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-google-analytics-data-api/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-google-analytics-v4/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-google-directory/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-google-pagespeed-insights/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-google-search-console/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-google-sheets/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-google-webfonts/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-google-workspace-admin-reports/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-greenhouse/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-gridly/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-gutendex/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-harvest/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-hellobaton/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-hubplanner/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-hubspot/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-insightly/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-instagram/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-instatus/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-intercom/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-intruder/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-ip2whois/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-iterable/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-jira/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-k6-cloud/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-kafka/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-klarna/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-klaviyo/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-kustomer-singer/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-kyriba/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-launchdarkly/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-lemlist/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-lever-hiring/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-linkedin-ads/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-linkedin-pages/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-linnworks/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-lokalise/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-looker/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-mailchimp/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-mailerlite/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-mailersend/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-mailgun/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-mailjet-mail/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-mailjet-sms/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-marketo/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-metabase/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-microsoft-dataverse/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-microsoft-teams/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-mixpanel/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-monday/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-mongodb-strict-encrypt/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-mongodb-v2/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-mssql-strict-encrypt/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-mssql/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-my-hours/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-mysql-strict-encrypt/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-mysql/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-n8n/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-nasa/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-netsuite/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-news-api/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-newsdata/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-notion/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-nytimes/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-okta/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-omnisend/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-onesignal/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-open-exchange-rates/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-openweather/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-opsgenie/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-oracle-strict-encrypt/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-oracle/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-orb/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-orbit/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-oura/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-outreach/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-pardot/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-partnerstack/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-paypal-transaction/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-paystack/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-pendo/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-persistiq/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-pexels-api/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-pinterest/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-pipedrive/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-pivotal-tracker/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-plaid/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-plausible/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-pocket/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-pokeapi/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-polygon-stock-api/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-postgres-strict-encrypt/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-postgres/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-posthog/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-postmarkapp/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-prestashop/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-primetric/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-public-apis/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-punk-api/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-pypi/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-qonto/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-qualaroo/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-quickbooks-singer/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-railz/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-rd-station-marketing/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-recharge/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-recreation/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-recruitee/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-recurly/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-redshift/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-reply-io/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-retently/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-rki-covid/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-rocket-chat/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-rss/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-s3/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-salesforce-singer/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-salesforce/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-salesloft/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-sap-fieldglass/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-search-metrics/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-secoda/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-sendgrid/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-sendinblue/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-senseforce/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-sentry/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-sftp-bulk/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-sftp/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-shopify/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-shortio/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-slack/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-smaily/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-smartengage/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-smartsheets/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-snapchat-marketing/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-snowflake/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-sonar-cloud/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-spacex-api/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-square/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-statuspage/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-strava/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-stripe/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-survey-sparrow/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-surveycto/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-surveymonkey/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-talkdesk-explore/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-tempo/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-the-guardian-api/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-tidb/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-tiktok-marketing/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-timely/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-tmdb/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-todoist/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-toggl/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-tplcentral/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-trello/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-trustpilot/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-tvmaze-schedule/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-twilio-taskrouter/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-twilio/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-twitter/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-tyntec-sms/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-typeform/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-unleash/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-us-census/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-vantage/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-visma-economic/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-vitally/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-waiteraid/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-weatherstack/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-webflow/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-whisky-hunter/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-wikipedia-pageviews/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-woocommerce/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-workable/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-workramp/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-wrike/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-xero/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-xkcd/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-yandex-metrica/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-younium/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-youtube-analytics/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-zapier-supported-storage/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-zendesk-chat/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-zendesk-sell/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-zendesk-sunshine/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-zendesk-support/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-zendesk-talk/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-zenefits/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-zenloop/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-zoho-crm/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-zoom/metadata.yaml
create mode 100644 airbyte-integrations/connectors/source-zuora/metadata.yaml
create mode 100644 airbyte-integrations/connectors/third-party/farosai/airbyte-customer-io-source/metadata.yaml
create mode 100644 airbyte-integrations/connectors/third-party/farosai/airbyte-harness-source/metadata.yaml
create mode 100644 airbyte-integrations/connectors/third-party/farosai/airbyte-jenkins-source/metadata.yaml
create mode 100644 airbyte-integrations/connectors/third-party/farosai/airbyte-pagerduty-source/metadata.yaml
create mode 100644 airbyte-integrations/connectors/third-party/farosai/airbyte-victorops-source/metadata.yaml
create mode 100644 airbyte-integrations/connectors/third-party/ghcr/streamr-airbyte-connector/metadata.yaml
diff --git a/airbyte-ci/connectors/metadata_service/lib/metadata_service/commands.py b/airbyte-ci/connectors/metadata_service/lib/metadata_service/commands.py
index 7ecdfcad9928..32668cfc58b5 100644
--- a/airbyte-ci/connectors/metadata_service/lib/metadata_service/commands.py
+++ b/airbyte-ci/connectors/metadata_service/lib/metadata_service/commands.py
@@ -4,6 +4,7 @@
import pathlib
import click
+
from metadata_service.gcs_upload import upload_metadata_to_gcs
from metadata_service.validators.metadata_validator import validate_metadata_file
from pydantic import ValidationError
diff --git a/airbyte-ci/connectors/metadata_service/lib/metadata_service/models/generated/ConnectorMetadataDefinitionV1.py b/airbyte-ci/connectors/metadata_service/lib/metadata_service/models/generated/ConnectorMetadataDefinitionV1.py
index b2a2b61ca475..984814d5b4d3 100644
--- a/airbyte-ci/connectors/metadata_service/lib/metadata_service/models/generated/ConnectorMetadataDefinitionV1.py
+++ b/airbyte-ci/connectors/metadata_service/lib/metadata_service/models/generated/ConnectorMetadataDefinitionV1.py
@@ -1,3 +1,7 @@
+#
+# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
+#
+
# generated by datamodel-codegen:
# filename: ConnectorMetadataDefinitionV1.yaml
@@ -11,15 +15,24 @@
class ConnectorType(Enum):
- destination = 'destination'
- source = 'source'
+ destination = "destination"
+ source = "source"
+
+
+class ConnectorSubtype(Enum):
+ api = "api"
+ database = "database"
+ file = "file"
+ custom = "custom"
+ message_queue = "message_queue"
+ unknown = "unknown"
class ReleaseStage(Enum):
- alpha = 'alpha'
- beta = 'beta'
- generally_available = 'generally_available'
- source = 'source'
+ alpha = "alpha"
+ beta = "beta"
+ generally_available = "generally_available"
+ source = "source"
class AllowedHosts(BaseModel):
@@ -28,7 +41,7 @@ class Config:
hosts: Optional[List[str]] = Field(
None,
- description='An array of hosts that this connector can connect to. AllowedHosts not being present for the source or destination means that access to all hosts is allowed. An empty list here means that no network access is granted.',
+ description="An array of hosts that this connector can connect to. AllowedHosts not being present for the source or destination means that access to all hosts is allowed. An empty list here means that no network access is granted.",
)
@@ -38,15 +51,15 @@ class Config:
normalizationRepository: str = Field(
...,
- description='a field indicating the name of the repository to be used for normalization. If the value of the flag is NULL - normalization is not used.',
+ description="a field indicating the name of the repository to be used for normalization. If the value of the flag is NULL - normalization is not used.",
)
normalizationTag: str = Field(
...,
- description='a field indicating the tag of the docker repository to be used for normalization.',
+ description="a field indicating the tag of the docker repository to be used for normalization.",
)
normalizationIntegrationType: str = Field(
...,
- description='a field indicating the type of integration dialect to use for normalization.',
+ description="a field indicating the type of integration dialect to use for normalization.",
)
@@ -56,7 +69,7 @@ class Config:
streams: Optional[List[str]] = Field(
None,
- description='An array of streams that this connector suggests the average user will want. SuggestedStreams not being present for the source means that all streams are suggested. An empty list here means that no streams are suggested.',
+ description="An array of streams that this connector suggests the average user will want. SuggestedStreams not being present for the source means that all streams are suggested. An empty list here means that no streams are suggested.",
)
@@ -71,13 +84,13 @@ class Config:
class JobType(Enum):
- get_spec = 'get_spec'
- check_connection = 'check_connection'
- discover_schema = 'discover_schema'
- sync = 'sync'
- reset_connection = 'reset_connection'
- connection_updater = 'connection_updater'
- replicate = 'replicate'
+ get_spec = "get_spec"
+ check_connection = "check_connection"
+ discover_schema = "discover_schema"
+ sync = "sync"
+ reset_connection = "reset_connection"
+ connection_updater = "connection_updater"
+ replicate = "replicate"
class JobTypeResourceLimit(BaseModel):
@@ -94,7 +107,7 @@ class Config:
default: Optional[ResourceRequirements] = Field(
None,
- description='if set, these are the requirements that should be set for ALL jobs run for this actor definition.',
+ description="if set, these are the requirements that should be set for ALL jobs run for this actor definition.",
)
jobSpecific: Optional[List[JobTypeResourceLimit]] = None
@@ -137,7 +150,7 @@ class Data(BaseModel):
license: str
supportUrl: AnyUrl
githubIssueLabel: str
- connectorSubtype: str
+ connectorSubtype: ConnectorSubtype
releaseStage: ReleaseStage
catalogs: Optional[Catalog] = None
allowedHosts: Optional[AllowedHosts] = None
diff --git a/airbyte-ci/connectors/metadata_service/lib/metadata_service/models/src/ConnectorMetadataDefinitionV1.yaml b/airbyte-ci/connectors/metadata_service/lib/metadata_service/models/src/ConnectorMetadataDefinitionV1.yaml
index bdded736a0be..d7f27a91a895 100644
--- a/airbyte-ci/connectors/metadata_service/lib/metadata_service/models/src/ConnectorMetadataDefinitionV1.yaml
+++ b/airbyte-ci/connectors/metadata_service/lib/metadata_service/models/src/ConnectorMetadataDefinitionV1.yaml
@@ -59,6 +59,7 @@ properties:
- database
- file
- custom
+ - message_queue
- unknown
releaseStage:
type: string
diff --git a/airbyte-integrations/connectors/destination-amazon-sqs/metadata.yaml b/airbyte-integrations/connectors/destination-amazon-sqs/metadata.yaml
new file mode 100644
index 000000000000..1ad1f92b24b0
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-amazon-sqs/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: destination
+ definitionId: 0eeee7fb-518f-4045-bacc-9619e31c43ea
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/destination-amazon-sqs
+ githubIssueLabel: destination-amazon-sqs
+ icon: awssqs.svg
+ license: MIT
+ name: Amazon SQS
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/amazon-sqs
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-aws-datalake/metadata.yaml b/airbyte-integrations/connectors/destination-aws-datalake/metadata.yaml
new file mode 100644
index 000000000000..ba55976c37bb
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-aws-datalake/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 99878c90-0fbd-46d3-9d98-ffde879d17fc
+ dockerImageTag: 0.1.2
+ dockerRepository: airbyte/destination-aws-datalake
+ githubIssueLabel: destination-aws-datalake
+ icon: awsdatalake.svg
+ license: MIT
+ name: AWS Datalake
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/aws-datalake
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-azure-blob-storage/metadata.yaml b/airbyte-integrations/connectors/destination-azure-blob-storage/metadata.yaml
new file mode 100644
index 000000000000..8f0d8064c786
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-azure-blob-storage/metadata.yaml
@@ -0,0 +1,24 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: file
+ connectorType: destination
+ definitionId: b4c5d105-31fd-4817-96b6-cb923bfc04cb
+ dockerImageTag: 0.2.0
+ dockerRepository: airbyte/destination-azure-blob-storage
+ githubIssueLabel: destination-azure-blob-storage
+ icon: azureblobstorage.svg
+ license: MIT
+ name: Azure Blob Storage
+ releaseStage: alpha
+ resourceRequirements:
+ jobSpecific:
+ - jobType: sync
+ resourceRequirements:
+ memory_limit: 1Gi
+ memory_request: 1Gi
+ supportUrl: https://docs.airbyte.com/integrations/destinations/azureblobstorage
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-bigquery-denormalized/metadata.yaml b/airbyte-integrations/connectors/destination-bigquery-denormalized/metadata.yaml
new file mode 100644
index 000000000000..0c2a921e3440
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-bigquery-denormalized/metadata.yaml
@@ -0,0 +1,24 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 079d5540-f236-4294-ba7c-ade8fd918496
+ dockerImageTag: 1.2.19
+ dockerRepository: airbyte/destination-bigquery-denormalized
+ githubIssueLabel: destination-bigquery-denormalized
+ icon: bigquery.svg
+ license: MIT
+ name: BigQuery (denormalized typed struct)
+ releaseStage: beta
+ resourceRequirements:
+ jobSpecific:
+ - jobType: sync
+ resourceRequirements:
+ memory_limit: 1Gi
+ memory_request: 1Gi
+ supportUrl: https://docs.airbyte.com/integrations/destinations/bigquery
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-bigquery/metadata.yaml b/airbyte-integrations/connectors/destination-bigquery/metadata.yaml
new file mode 100644
index 000000000000..3fb9f9a9b81c
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-bigquery/metadata.yaml
@@ -0,0 +1,29 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 22f6c74f-5699-40ff-833c-4a879ea40133
+ dockerImageTag: 1.2.19
+ dockerRepository: airbyte/destination-bigquery
+ githubIssueLabel: destination-bigquery
+ icon: bigquery.svg
+ license: MIT
+ name: BigQuery
+ normalizationConfig:
+ normalizationIntegrationType: bigquery
+ normalizationRepository: airbyte/normalization
+ normalizationTag: 0.4.0
+ releaseStage: generally_available
+ resourceRequirements:
+ jobSpecific:
+ - jobType: sync
+ resourceRequirements:
+ memory_limit: 1Gi
+ memory_request: 1Gi
+ supportUrl: https://docs.airbyte.com/integrations/destinations/bigquery
+ supportsDbt: true
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-cassandra/metadata.yaml b/airbyte-integrations/connectors/destination-cassandra/metadata.yaml
new file mode 100644
index 000000000000..465935b67f6d
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-cassandra/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 707456df-6f4f-4ced-b5c6-03f73bcad1c5
+ dockerImageTag: 0.1.4
+ dockerRepository: airbyte/destination-cassandra
+ githubIssueLabel: destination-cassandra
+ icon: cassandra.svg
+ license: MIT
+ name: Cassandra
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/cassandra
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-clickhouse-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/destination-clickhouse-strict-encrypt/metadata.yaml
new file mode 100644
index 000000000000..14d527150d6c
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-clickhouse-strict-encrypt/metadata.yaml
@@ -0,0 +1,23 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false # strict encrypt connectors are deployed to Cloud by their non strict encrypt sibling.
+ oss:
+ enabled: false # strict encrypt connectors are not used on OSS.
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: ce0d828e-1dc4-496c-b122-2da42e637e48
+ dockerImageTag: 0.2.3
+ dockerRepository: airbyte/destination-clickhouse
+ githubIssueLabel: destination-clickhouse
+ icon: clickhouse.svg
+ license: MIT
+ name: Clickhouse
+ normalizationConfig:
+ normalizationIntegrationType: clickhouse
+ normalizationRepository: airbyte/normalization-clickhouse
+ normalizationTag: 0.4.0
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/clickhouse
+ supportsDbt: false
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-clickhouse/metadata.yaml b/airbyte-integrations/connectors/destination-clickhouse/metadata.yaml
new file mode 100644
index 000000000000..fd305e5800e9
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-clickhouse/metadata.yaml
@@ -0,0 +1,25 @@
+data:
+ catalogs:
+ cloud:
+ dockerImageTag: 0.2.2
+ dockerRepository: airbyte/destination-clickhouse-strict-encrypt
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: ce0d828e-1dc4-496c-b122-2da42e637e48
+ dockerImageTag: 0.2.3
+ dockerRepository: airbyte/destination-clickhouse
+ githubIssueLabel: destination-clickhouse
+ icon: clickhouse.svg
+ license: MIT
+ name: Clickhouse
+ normalizationConfig:
+ normalizationIntegrationType: clickhouse
+ normalizationRepository: airbyte/normalization-clickhouse
+ normalizationTag: 0.4.0
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/clickhouse
+ supportsDbt: false
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-convex/metadata.yaml b/airbyte-integrations/connectors/destination-convex/metadata.yaml
new file mode 100644
index 000000000000..7eb02e375fbf
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-convex/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorType: destination
+ definitionId: 3eb4d99c-11fa-4561-a259-fc88e0c2f8f4
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/destination-convex
+ githubIssueLabel: destination-convex
+ icon: convex.svg
+ license: MIT
+ name: Convex
+ releaseStage: alpha
+ connectorSubtype: api
+ supportUrl: https://docs.airbyte.io/integrations/destinations/convex
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-csv/metadata.yaml b/airbyte-integrations/connectors/destination-csv/metadata.yaml
new file mode 100644
index 000000000000..185773871c0e
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-csv/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: file
+ connectorType: destination
+ definitionId: 8be1cf83-fde1-477f-a4ad-318d23c9f3c6
+ dockerImageTag: 1.0.0
+ dockerRepository: airbyte/destination-csv
+ githubIssueLabel: destination-csv
+ icon: file-csv.svg
+ license: MIT
+ name: Local CSV
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/local-csv
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-databend/metadata.yaml b/airbyte-integrations/connectors/destination-databend/metadata.yaml
new file mode 100644
index 000000000000..509af549bc18
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-databend/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 302e4d8e-08d3-4098-acd4-ac67ca365b88
+ dockerImageTag: 0.1.2
+ dockerRepository: airbyte/destination-databend
+ githubIssueLabel: destination-databend
+ icon: databend.svg
+ license: MIT
+ name: Databend
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/databend
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-databricks/metadata.yaml b/airbyte-integrations/connectors/destination-databricks/metadata.yaml
new file mode 100644
index 000000000000..ba0e7b5047c3
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-databricks/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 072d5540-f236-4294-ba7c-ade8fd918496
+ dockerImageTag: 1.0.0
+ dockerRepository: airbyte/destination-databricks
+ githubIssueLabel: destination-databricks
+ icon: databricks.svg
+ license: MIT
+ name: Databricks Lakehouse
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/databricks
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-dev-null/metadata.yaml b/airbyte-integrations/connectors/destination-dev-null/metadata.yaml
new file mode 100644
index 000000000000..dc1e72e4ea08
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-dev-null/metadata.yaml
@@ -0,0 +1,17 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: false
+ connectorSubtype: file
+ connectorType: destination
+ definitionId: a7bcc9d8-13b3-4e49-b80d-d020b90045e3
+ dockerImageTag: 0.2.7
+ dockerRepository: airbyte/destination-dev-null
+ githubIssueLabel: destination-dev-null
+ license: MIT
+ name: End-to-End Testing (/dev/null)
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.io/integrations/destinations/e2e-test
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-doris/metadata.yaml b/airbyte-integrations/connectors/destination-doris/metadata.yaml
new file mode 100644
index 000000000000..d581c7e2da1c
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-doris/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 05c161bf-ca73-4d48-b524-d392be417002
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/destination-doris
+ githubIssueLabel: destination-doris
+ icon: apachedoris.svg
+ license: MIT
+ name: Apache Doris
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/doris
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-duckdb/metadata.yaml b/airbyte-integrations/connectors/destination-duckdb/metadata.yaml
new file mode 100644
index 000000000000..2289b976da18
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-duckdb/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 94bd199c-2ff0-4aa2-b98e-17f0acb72610
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/destination-duckdb
+ githubIssueLabel: destination-duckdb
+ icon: duckdb.svg
+ license: MIT
+ name: DuckDB
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.io/integrations/destinations/duckdb
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-dynamodb/metadata.yaml b/airbyte-integrations/connectors/destination-dynamodb/metadata.yaml
new file mode 100644
index 000000000000..baaa5c5d5082
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-dynamodb/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 8ccd8909-4e99-4141-b48d-4984b70b2d89
+ dockerImageTag: 0.1.7
+ dockerRepository: airbyte/destination-dynamodb
+ githubIssueLabel: destination-dynamodb
+ icon: dynamodb.svg
+ license: MIT
+ name: DynamoDB
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/dynamodb
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-e2e-test/metadata.yaml b/airbyte-integrations/connectors/destination-e2e-test/metadata.yaml
new file mode 100644
index 000000000000..3d3f225096b6
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-e2e-test/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: unknown
+ connectorType: destination
+ definitionId: 2eb65e87-983a-4fd7-b3e3-9d9dc6eb8537
+ dockerImageTag: 0.2.4
+ dockerRepository: airbyte/destination-e2e-test
+ githubIssueLabel: destination-e2e-test
+ icon: airbyte.svg
+ license: MIT
+ name: E2E Testing
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/e2e-test
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-elasticsearch-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/destination-elasticsearch-strict-encrypt/metadata.yaml
new file mode 100644
index 000000000000..90152b955b30
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-elasticsearch-strict-encrypt/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false # strict encrypt connectors are deployed to Cloud by their non strict encrypt sibling.
+ oss:
+ enabled: false # strict encrypt connectors are not used on OSS.
+ connectorSubtype: api
+ connectorType: destination
+ definitionId: 68f351a7-2745-4bef-ad7f-996b8e51bb8c
+ dockerImageTag: 0.1.6
+ dockerRepository: airbyte/destination-elasticsearch
+ githubIssueLabel: destination-elasticsearch
+ icon: elasticsearch.svg
+ license: MIT
+ name: ElasticSearch
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/elasticsearch
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-elasticsearch/metadata.yaml b/airbyte-integrations/connectors/destination-elasticsearch/metadata.yaml
new file mode 100644
index 000000000000..a74a64308988
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-elasticsearch/metadata.yaml
@@ -0,0 +1,19 @@
+data:
+ catalogs:
+ cloud:
+ dockerRepository: airbyte/destination-elasticsearch-strict-encrypt
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: destination
+ definitionId: 68f351a7-2745-4bef-ad7f-996b8e51bb8c
+ dockerImageTag: 0.1.6
+ dockerRepository: airbyte/destination-elasticsearch
+ githubIssueLabel: destination-elasticsearch
+ icon: elasticsearch.svg
+ license: MIT
+ name: ElasticSearch
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/elasticsearch
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-exasol/metadata.yaml b/airbyte-integrations/connectors/destination-exasol/metadata.yaml
new file mode 100644
index 000000000000..81d576607408
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-exasol/metadata.yaml
@@ -0,0 +1,17 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: bb6071d9-6f34-4766-bec2-d1d4ed81a653
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/destination-exasol
+ githubIssueLabel: destination-exasol
+ license: MIT
+ name: Exasol
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/exasol
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-firebolt/metadata.yaml b/airbyte-integrations/connectors/destination-firebolt/metadata.yaml
new file mode 100644
index 000000000000..17b6e9c35bc4
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-firebolt/metadata.yaml
@@ -0,0 +1,19 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 18081484-02a5-4662-8dba-b270b582f321
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/destination-firebolt
+ githubIssueLabel: destination-firebolt
+ icon: firebolt.svg
+ license: MIT
+ name: Firebolt
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/firebolt
+ supportsDbt: true
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-firestore/metadata.yaml b/airbyte-integrations/connectors/destination-firestore/metadata.yaml
new file mode 100644
index 000000000000..bccad2ba608b
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-firestore/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 27dc7500-6d1b-40b1-8b07-e2f2aea3c9f4
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/destination-firestore
+ githubIssueLabel: destination-firestore
+ icon: firestore.svg
+ license: MIT
+ name: Google Firestore
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/firestore
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-gcs/metadata.yaml b/airbyte-integrations/connectors/destination-gcs/metadata.yaml
new file mode 100644
index 000000000000..8228ecc57bce
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-gcs/metadata.yaml
@@ -0,0 +1,24 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: file
+ connectorType: destination
+ definitionId: ca8f6566-e555-4b40-943a-545bf123117a
+ dockerImageTag: 0.2.16
+ dockerRepository: airbyte/destination-gcs
+ githubIssueLabel: destination-gcs
+ icon: googlecloudstorage.svg
+ license: MIT
+ name: Google Cloud Storage (GCS)
+ releaseStage: beta
+ resourceRequirements:
+ jobSpecific:
+ - jobType: sync
+ resourceRequirements:
+ memory_limit: 1Gi
+ memory_request: 1Gi
+ supportUrl: https://docs.airbyte.com/integrations/destinations/gcs
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-google-sheets/metadata.yaml b/airbyte-integrations/connectors/destination-google-sheets/metadata.yaml
new file mode 100644
index 000000000000..9ba715bc3f0f
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-google-sheets/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: destination
+ definitionId: a4cbd2d1-8dbe-4818-b8bc-b90ad782d12a
+ dockerImageTag: 0.1.2
+ dockerRepository: airbyte/destination-google-sheets
+ githubIssueLabel: destination-google-sheets
+ icon: google-sheets.svg
+ license: MIT
+ name: Google Sheets
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/google-sheets
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-iceberg/metadata.yaml b/airbyte-integrations/connectors/destination-iceberg/metadata.yaml
new file mode 100644
index 000000000000..869b34ac4bb2
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-iceberg/metadata.yaml
@@ -0,0 +1,17 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: df65a8f3-9908-451b-aa9b-445462803560
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/destination-iceberg
+ githubIssueLabel: destination-iceberg
+ license: MIT
+ name: Apache Iceberg
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/iceberg
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-kafka/metadata.yaml b/airbyte-integrations/connectors/destination-kafka/metadata.yaml
new file mode 100644
index 000000000000..49182965e1aa
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-kafka/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 9f760101-60ae-462f-9ee6-b7a9dafd454d
+ dockerImageTag: 0.1.10
+ dockerRepository: airbyte/destination-kafka
+ githubIssueLabel: destination-kafka
+ icon: kafka.svg
+ license: MIT
+ name: Kafka
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/kafka
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-keen/metadata.yaml b/airbyte-integrations/connectors/destination-keen/metadata.yaml
new file mode 100644
index 000000000000..775e01d78474
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-keen/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: destination
+ definitionId: 81740ce8-d764-4ea7-94df-16bb41de36ae
+ dockerImageTag: 0.2.4
+ dockerRepository: airbyte/destination-keen
+ githubIssueLabel: destination-keen
+ icon: chargify.svg
+ license: MIT
+ name: Chargify (Keen)
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/keen
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-kinesis/metadata.yaml b/airbyte-integrations/connectors/destination-kinesis/metadata.yaml
new file mode 100644
index 000000000000..debba8610a92
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-kinesis/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: destination
+ definitionId: 6d1d66d4-26ab-4602-8d32-f85894b04955
+ dockerImageTag: 0.1.5
+ dockerRepository: airbyte/destination-kinesis
+ githubIssueLabel: destination-kinesis
+ icon: kinesis.svg
+ license: MIT
+ name: Kinesis
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/kinesis
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-local-json/metadata.yaml b/airbyte-integrations/connectors/destination-local-json/metadata.yaml
new file mode 100644
index 000000000000..5bfa36eeea78
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-local-json/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: file
+ connectorType: destination
+ definitionId: a625d593-bba5-4a1c-a53d-2d246268a816
+ dockerImageTag: 0.2.11
+ dockerRepository: airbyte/destination-local-json
+ githubIssueLabel: destination-local-json
+ icon: file-json.svg
+ license: MIT
+ name: Local JSON
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/local-json
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-mariadb-columnstore/metadata.yaml b/airbyte-integrations/connectors/destination-mariadb-columnstore/metadata.yaml
new file mode 100644
index 000000000000..470d6f685004
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-mariadb-columnstore/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 294a4790-429b-40ae-9516-49826b9702e1
+ dockerImageTag: 0.1.7
+ dockerRepository: airbyte/destination-mariadb-columnstore
+ githubIssueLabel: destination-mariadb-columnstore
+ icon: mariadb.svg
+ license: MIT
+ name: MariaDB ColumnStore
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/mariadb-columnstore
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-meilisearch/metadata.yaml b/airbyte-integrations/connectors/destination-meilisearch/metadata.yaml
new file mode 100644
index 000000000000..156cf2760902
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-meilisearch/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: destination
+ definitionId: af7c921e-5892-4ff2-b6c1-4a5ab258fb7e
+ dockerImageTag: 1.0.0
+ dockerRepository: airbyte/destination-meilisearch
+ githubIssueLabel: destination-meilisearch
+ icon: meilisearch.svg
+ license: MIT
+ name: MeiliSearch
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/meilisearch
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-mongodb-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/destination-mongodb-strict-encrypt/metadata.yaml
new file mode 100644
index 000000000000..f0823a431ae2
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-mongodb-strict-encrypt/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false # strict encrypt connectors are deployed to Cloud by their non strict encrypt sibling.
+ oss:
+ enabled: false # strict encrypt connectors are not used on OSS.
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 8b746512-8c2e-6ac1-4adc-b59faafd473c
+ dockerImageTag: 0.1.9
+ dockerRepository: airbyte/destination-mongodb
+ githubIssueLabel: destination-mongodb
+ icon: mongodb.svg
+ license: MIT
+ name: MongoDB
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/mongodb
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-mongodb/metadata.yaml b/airbyte-integrations/connectors/destination-mongodb/metadata.yaml
new file mode 100644
index 000000000000..2b1185c3584c
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-mongodb/metadata.yaml
@@ -0,0 +1,19 @@
+data:
+ catalogs:
+ cloud:
+ dockerRepository: airbyte/destination-mongodb-strict-encrypt
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 8b746512-8c2e-6ac1-4adc-b59faafd473c
+ dockerImageTag: 0.1.9
+ dockerRepository: airbyte/destination-mongodb
+ githubIssueLabel: destination-mongodb
+ icon: mongodb.svg
+ license: MIT
+ name: MongoDB
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/mongodb
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-mqtt/metadata.yaml b/airbyte-integrations/connectors/destination-mqtt/metadata.yaml
new file mode 100644
index 000000000000..6b9a840aa846
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-mqtt/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: message_queue
+ connectorType: destination
+ definitionId: f3802bc4-5406-4752-9e8d-01e504ca8194
+ dockerImageTag: 0.1.3
+ dockerRepository: airbyte/destination-mqtt
+ githubIssueLabel: destination-mqtt
+ icon: mqtt.svg
+ license: MIT
+ name: MQTT
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/mqtt
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-mssql-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/destination-mssql-strict-encrypt/metadata.yaml
new file mode 100644
index 000000000000..b56cff2d23e9
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-mssql-strict-encrypt/metadata.yaml
@@ -0,0 +1,23 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false # strict encrypt connectors are deployed to Cloud by their non strict encrypt sibling.
+ oss:
+ enabled: false # strict encrypt connectors are not used on OSS.
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: d4353156-9217-4cad-8dd7-c108fd4f74cf
+ dockerImageTag: 0.1.23
+ dockerRepository: airbyte/destination-mssql
+ githubIssueLabel: destination-mssql
+ icon: mssql.svg
+ license: MIT
+ name: MS SQL Server
+ normalizationConfig:
+ normalizationIntegrationType: mssql
+ normalizationRepository: airbyte/normalization-mssql
+ normalizationTag: 0.4.0
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/mssql
+ supportsDbt: true
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-mssql/metadata.yaml b/airbyte-integrations/connectors/destination-mssql/metadata.yaml
new file mode 100644
index 000000000000..45f8e966c040
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-mssql/metadata.yaml
@@ -0,0 +1,25 @@
+data:
+ catalogs:
+ cloud:
+ dockerImageTag: 0.1.22
+ dockerRepository: airbyte/destination-mssql-strict-encrypt
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: d4353156-9217-4cad-8dd7-c108fd4f74cf
+ dockerImageTag: 0.1.23
+ dockerRepository: airbyte/destination-mssql
+ githubIssueLabel: destination-mssql
+ icon: mssql.svg
+ license: MIT
+ name: MS SQL Server
+ normalizationConfig:
+ normalizationIntegrationType: mssql
+ normalizationRepository: airbyte/normalization-mssql
+ normalizationTag: 0.4.0
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/mssql
+ supportsDbt: true
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-mysql-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/destination-mysql-strict-encrypt/metadata.yaml
new file mode 100644
index 000000000000..2a45708864c6
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-mysql-strict-encrypt/metadata.yaml
@@ -0,0 +1,23 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false # strict encrypt connectors are deployed to Cloud by their non strict encrypt sibling.
+ oss:
+ enabled: false # strict encrypt connectors are not used on OSS.
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: ca81ee7c-3163-4246-af40-094cc31e5e42
+ dockerImageTag: 0.1.20
+ dockerRepository: airbyte/destination-mysql
+ githubIssueLabel: destination-mysql
+ icon: mysql.svg
+ license: MIT
+ name: MySQL
+ normalizationConfig:
+ normalizationIntegrationType: mysql
+ normalizationRepository: airbyte/normalization-mysql
+ normalizationTag: 0.4.0
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/mysql
+ supportsDbt: true
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-mysql/metadata.yaml b/airbyte-integrations/connectors/destination-mysql/metadata.yaml
new file mode 100644
index 000000000000..5db3442b1dfe
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-mysql/metadata.yaml
@@ -0,0 +1,24 @@
+data:
+ catalogs:
+ cloud:
+ dockerRepository: airbyte/destination-mysql-strict-encrypt
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: ca81ee7c-3163-4246-af40-094cc31e5e42
+ dockerImageTag: 0.1.20
+ dockerRepository: airbyte/destination-mysql
+ githubIssueLabel: destination-mysql
+ icon: mysql.svg
+ license: MIT
+ name: MySQL
+ normalizationConfig:
+ normalizationIntegrationType: mysql
+ normalizationRepository: airbyte/normalization-mysql
+ normalizationTag: 0.4.0
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/mysql
+ supportsDbt: true
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-oracle-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/destination-oracle-strict-encrypt/metadata.yaml
new file mode 100644
index 000000000000..b38a2ac6bfcf
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-oracle-strict-encrypt/metadata.yaml
@@ -0,0 +1,23 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false # strict encrypt connectors are deployed to Cloud by their non strict encrypt sibling.
+ oss:
+ enabled: false # strict encrypt connectors are not used on OSS.
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 3986776d-2319-4de9-8af8-db14c0996e72
+ dockerImageTag: 0.1.19
+ dockerRepository: airbyte/destination-oracle
+ githubIssueLabel: destination-oracle
+ icon: oracle.svg
+ license: MIT
+ name: Oracle
+ normalizationConfig:
+ normalizationIntegrationType: oracle
+ normalizationRepository: airbyte/normalization-oracle
+ normalizationTag: 0.4.0
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/oracle
+ supportsDbt: true
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-oracle/metadata.yaml b/airbyte-integrations/connectors/destination-oracle/metadata.yaml
new file mode 100644
index 000000000000..78532e763208
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-oracle/metadata.yaml
@@ -0,0 +1,24 @@
+data:
+ catalogs:
+ cloud:
+ dockerRepository: airbyte/destination-oracle-strict-encrypt
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 3986776d-2319-4de9-8af8-db14c0996e72
+ dockerImageTag: 0.1.19
+ dockerRepository: airbyte/destination-oracle
+ githubIssueLabel: destination-oracle
+ icon: oracle.svg
+ license: MIT
+ name: Oracle
+ normalizationConfig:
+ normalizationIntegrationType: oracle
+ normalizationRepository: airbyte/normalization-oracle
+ normalizationTag: 0.4.0
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/oracle
+ supportsDbt: true
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-postgres-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/destination-postgres-strict-encrypt/metadata.yaml
new file mode 100644
index 000000000000..943df18038aa
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-postgres-strict-encrypt/metadata.yaml
@@ -0,0 +1,23 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false # strict encrypt connectors are deployed to Cloud by their non strict encrypt sibling.
+ oss:
+ enabled: false # strict encrypt connectors are not used on OSS.
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 25c5221d-dce2-4163-ade9-739ef790f503
+ dockerImageTag: 0.3.27
+ dockerRepository: airbyte/destination-postgres
+ githubIssueLabel: destination-postgres
+ icon: postgresql.svg
+ license: MIT
+ name: Postgres
+ normalizationConfig:
+ normalizationIntegrationType: postgres
+ normalizationRepository: airbyte/normalization
+ normalizationTag: 0.4.0
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/postgres
+ supportsDbt: true
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-postgres/metadata.yaml b/airbyte-integrations/connectors/destination-postgres/metadata.yaml
new file mode 100644
index 000000000000..be4270bb56df
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-postgres/metadata.yaml
@@ -0,0 +1,25 @@
+data:
+ catalogs:
+ cloud:
+ dockerImageTag: 0.3.26
+ dockerRepository: airbyte/destination-postgres-strict-encrypt
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 25c5221d-dce2-4163-ade9-739ef790f503
+ dockerImageTag: 0.3.27
+ dockerRepository: airbyte/destination-postgres
+ githubIssueLabel: destination-postgres
+ icon: postgresql.svg
+ license: MIT
+ name: Postgres
+ normalizationConfig:
+ normalizationIntegrationType: postgres
+ normalizationRepository: airbyte/normalization
+ normalizationTag: 0.4.0
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/postgres
+ supportsDbt: true
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-pubsub/metadata.yaml b/airbyte-integrations/connectors/destination-pubsub/metadata.yaml
new file mode 100644
index 000000000000..360147f82757
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-pubsub/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: destination
+ definitionId: 356668e2-7e34-47f3-a3b0-67a8a481b692
+ dockerImageTag: 0.2.0
+ dockerRepository: airbyte/destination-pubsub
+ githubIssueLabel: destination-pubsub
+ icon: googlepubsub.svg
+ license: MIT
+ name: Google PubSub
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/pubsub
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-pulsar/metadata.yaml b/airbyte-integrations/connectors/destination-pulsar/metadata.yaml
new file mode 100644
index 000000000000..41cf809d63cd
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-pulsar/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 2340cbba-358e-11ec-8d3d-0242ac130203
+ dockerImageTag: 0.1.3
+ dockerRepository: airbyte/destination-pulsar
+ githubIssueLabel: destination-pulsar
+ icon: pulsar.svg
+ license: MIT
+ name: Pulsar
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/pulsar
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-r2/metadata.yaml b/airbyte-integrations/connectors/destination-r2/metadata.yaml
new file mode 100644
index 000000000000..8bb5b0f13c00
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-r2/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: file
+ connectorType: destination
+ definitionId: 0fb07be9-7c3b-4336-850d-5efc006152ee
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/destination-r2
+ githubIssueLabel: destination-r2
+ icon: cloudflare-r2.svg
+ license: MIT
+ name: Cloudflare R2
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/r2
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-rabbitmq/metadata.yaml b/airbyte-integrations/connectors/destination-rabbitmq/metadata.yaml
new file mode 100644
index 000000000000..959e2c744566
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-rabbitmq/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: e06ad785-ad6f-4647-b2e8-3027a5c59454
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/destination-rabbitmq
+ githubIssueLabel: destination-rabbitmq
+ icon: pulsar.svg
+ license: MIT
+ name: RabbitMQ
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/rabbitmq
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-redis/metadata.yaml b/airbyte-integrations/connectors/destination-redis/metadata.yaml
new file mode 100644
index 000000000000..2be741a3f9f1
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-redis/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: d4d3fef9-e319-45c2-881a-bd02ce44cc9f
+ dockerImageTag: 0.1.4
+ dockerRepository: airbyte/destination-redis
+ githubIssueLabel: destination-redis
+ icon: redis.svg
+ license: MIT
+ name: Redis
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/redis
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-redpanda/metadata.yaml b/airbyte-integrations/connectors/destination-redpanda/metadata.yaml
new file mode 100644
index 000000000000..5b8008c6c8fe
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-redpanda/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 825c5ee3-ed9a-4dd1-a2b6-79ed722f7b13
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/destination-redpanda
+ githubIssueLabel: destination-redpanda
+ icon: redpanda.svg
+ license: MIT
+ name: Redpanda
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/redpanda
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-redshift/metadata.yaml b/airbyte-integrations/connectors/destination-redshift/metadata.yaml
new file mode 100644
index 000000000000..97d09a5ae482
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-redshift/metadata.yaml
@@ -0,0 +1,29 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: f7a7d195-377f-cf5b-70a5-be6b819019dc
+ dockerImageTag: 0.4.5
+ dockerRepository: airbyte/destination-redshift
+ githubIssueLabel: destination-redshift
+ icon: redshift.svg
+ license: MIT
+ name: Redshift
+ normalizationConfig:
+ normalizationIntegrationType: redshift
+ normalizationRepository: airbyte/normalization-redshift
+ normalizationTag: 0.4.0
+ releaseStage: beta
+ resourceRequirements:
+ jobSpecific:
+ - jobType: sync
+ resourceRequirements:
+ memory_limit: 1Gi
+ memory_request: 1Gi
+ supportUrl: https://docs.airbyte.com/integrations/destinations/redshift
+ supportsDbt: true
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-rockset/metadata.yaml b/airbyte-integrations/connectors/destination-rockset/metadata.yaml
new file mode 100644
index 000000000000..939a91868af7
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-rockset/metadata.yaml
@@ -0,0 +1,17 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 2c9d93a7-9a17-4789-9de9-f46f0097eb70
+ dockerImageTag: 0.1.4
+ dockerRepository: airbyte/destination-rockset
+ githubIssueLabel: destination-rockset
+ license: MIT
+ name: Rockset
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/rockset
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-s3-glue/metadata.yaml b/airbyte-integrations/connectors/destination-s3-glue/metadata.yaml
new file mode 100644
index 000000000000..e3436264d2ef
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-s3-glue/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: file
+ connectorType: destination
+ definitionId: 471e5cab-8ed1-49f3-ba11-79c687784737
+ dockerImageTag: 0.1.4
+ dockerRepository: airbyte/destination-s3-glue
+ githubIssueLabel: destination-s3-glue
+ icon: s3-glue.svg
+ license: MIT
+ name: S3 Glue
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/s3-glue
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-s3/metadata.yaml b/airbyte-integrations/connectors/destination-s3/metadata.yaml
new file mode 100644
index 000000000000..390c495f2866
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-s3/metadata.yaml
@@ -0,0 +1,24 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: file
+ connectorType: destination
+ definitionId: 4816b78f-1489-44c1-9060-4b19d5fa9362
+ dockerImageTag: 0.3.23
+ dockerRepository: airbyte/destination-s3
+ githubIssueLabel: destination-s3
+ icon: s3.svg
+ license: MIT
+ name: S3
+ releaseStage: generally_available
+ resourceRequirements:
+ jobSpecific:
+ - jobType: sync
+ resourceRequirements:
+ memory_limit: 1Gi
+ memory_request: 1Gi
+ supportUrl: https://docs.airbyte.com/integrations/destinations/s3
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-scylla/metadata.yaml b/airbyte-integrations/connectors/destination-scylla/metadata.yaml
new file mode 100644
index 000000000000..0bce37d35938
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-scylla/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 3dc6f384-cd6b-4be3-ad16-a41450899bf0
+ dockerImageTag: 0.1.3
+ dockerRepository: airbyte/destination-scylla
+ githubIssueLabel: destination-scylla
+ icon: scylla.svg
+ license: MIT
+ name: Scylla
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/scylla
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-selectdb/metadata.yaml b/airbyte-integrations/connectors/destination-selectdb/metadata.yaml
new file mode 100644
index 000000000000..f5b59100d316
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-selectdb/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorType: destination
+ definitionId: 50a559a7-6323-4e33-8aa0-51dfd9dfadac
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/destination-selectdb
+ githubIssueLabel: destination-selectdb
+ icon: select.db
+ license: MIT
+ name: SelectDB
+ connectorSubtype: database
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/selectdb
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-sftp-json/metadata.yaml b/airbyte-integrations/connectors/destination-sftp-json/metadata.yaml
new file mode 100644
index 000000000000..878623279ed8
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-sftp-json/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: file
+ connectorType: destination
+ definitionId: e9810f61-4bab-46d2-bb22-edfc902e0644
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/destination-sftp-json
+ githubIssueLabel: destination-sftp-json
+ icon: sftp.svg
+ license: MIT
+ name: SFTP-JSON
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/sftp-json
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-snowflake/metadata.yaml b/airbyte-integrations/connectors/destination-snowflake/metadata.yaml
new file mode 100644
index 000000000000..d39e4cea4ee9
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-snowflake/metadata.yaml
@@ -0,0 +1,29 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 424892c4-daac-4491-b35d-c6688ba547ba
+ dockerImageTag: 0.4.61
+ dockerRepository: airbyte/destination-snowflake
+ githubIssueLabel: destination-snowflake
+ icon: snowflake.svg
+ license: MIT
+ name: Snowflake
+ normalizationConfig:
+ normalizationIntegrationType: snowflake
+ normalizationRepository: airbyte/normalization-snowflake
+ normalizationTag: 0.4.0
+ releaseStage: generally_available
+ resourceRequirements:
+ jobSpecific:
+ - jobType: sync
+ resourceRequirements:
+ memory_limit: 1Gi
+ memory_request: 1Gi
+ supportUrl: https://docs.airbyte.com/integrations/destinations/snowflake
+ supportsDbt: true
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-sqlite/metadata.yaml b/airbyte-integrations/connectors/destination-sqlite/metadata.yaml
new file mode 100644
index 000000000000..e3adf17f6294
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-sqlite/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: b76be0a6-27dc-4560-95f6-2623da0bd7b6
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/destination-sqlite
+ githubIssueLabel: destination-sqlite
+ icon: sqlite.svg
+ license: MIT
+ name: Local SQLite
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/local-sqlite
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-teradata/metadata.yaml b/airbyte-integrations/connectors/destination-teradata/metadata.yaml
new file mode 100644
index 000000000000..dd3b15d915f2
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-teradata/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 58e6f9da-904e-11ed-a1eb-0242ac120002
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/destination-teradata
+ githubIssueLabel: destination-teradata
+ icon: teradata.svg
+ license: MIT
+ name: Teradata Vantage
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.io/integrations/destinations/teradata
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-tidb/metadata.yaml b/airbyte-integrations/connectors/destination-tidb/metadata.yaml
new file mode 100644
index 000000000000..dbe1e10e9408
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-tidb/metadata.yaml
@@ -0,0 +1,23 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 06ec60c7-7468-45c0-91ac-174f6e1a788b
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/destination-tidb
+ githubIssueLabel: destination-tidb
+ icon: tidb.svg
+ license: MIT
+ name: TiDB
+ normalizationConfig:
+ normalizationIntegrationType: tidb
+ normalizationRepository: airbyte/normalization-tidb
+ normalizationTag: 0.4.0
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/tidb
+ supportsDbt: true
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-typesense/metadata.yaml b/airbyte-integrations/connectors/destination-typesense/metadata.yaml
new file mode 100644
index 000000000000..abff36cdd3d8
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-typesense/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 36be8dc6-9851-49af-b776-9d4c30e4ab6a
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/destination-typesense
+ githubIssueLabel: destination-typesense
+ icon: typesense.svg
+ license: MIT
+ name: Typesense
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/typesense
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-weaviate/metadata.yaml b/airbyte-integrations/connectors/destination-weaviate/metadata.yaml
new file mode 100644
index 000000000000..ee28f185f819
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-weaviate/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 7b7d7a0d-954c-45a0-bcfc-39a634b97736
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/destination-weaviate
+ githubIssueLabel: destination-weaviate
+ icon: weaviate.svg
+ license: MIT
+ name: Weaviate
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/weaviate
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/destination-yugabytedb/metadata.yaml b/airbyte-integrations/connectors/destination-yugabytedb/metadata.yaml
new file mode 100644
index 000000000000..9388db1e6959
--- /dev/null
+++ b/airbyte-integrations/connectors/destination-yugabytedb/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: destination
+ definitionId: 2300fdcf-a532-419f-9f24-a014336e7966
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/destination-yugabytedb
+ githubIssueLabel: destination-yugabytedb
+ icon: yugabytedb.svg
+ license: MIT
+ name: YugabyteDB
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/yugabytedb
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-activecampaign/metadata.yaml b/airbyte-integrations/connectors/source-activecampaign/metadata.yaml
new file mode 100644
index 000000000000..6d2bdc729bab
--- /dev/null
+++ b/airbyte-integrations/connectors/source-activecampaign/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 9f32dab3-77cb-45a1-9d33-347aa5fbe363
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-activecampaign
+ githubIssueLabel: source-activecampaign
+ icon: activecampaign.svg
+ license: MIT
+ name: ActiveCampaign
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/activecampaign
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-adjust/metadata.yaml b/airbyte-integrations/connectors/source-adjust/metadata.yaml
new file mode 100644
index 000000000000..d543932dd890
--- /dev/null
+++ b/airbyte-integrations/connectors/source-adjust/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: d3b7fa46-111b-419a-998a-d7f046f6d66d
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-adjust
+ githubIssueLabel: source-adjust
+ icon: adjust.svg
+ license: MIT
+ name: Adjust
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/adjust
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-aha/metadata.yaml b/airbyte-integrations/connectors/source-aha/metadata.yaml
new file mode 100644
index 000000000000..928d922f4124
--- /dev/null
+++ b/airbyte-integrations/connectors/source-aha/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 81ca39dc-4534-4dd2-b848-b0cfd2c11fce
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-aha
+ githubIssueLabel: source-aha
+ icon: aha.svg
+ license: MIT
+ name: Aha
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/aha
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-airtable/metadata.yaml b/airbyte-integrations/connectors/source-airtable/metadata.yaml
new file mode 100644
index 000000000000..e492275efc46
--- /dev/null
+++ b/airbyte-integrations/connectors/source-airtable/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.airtable.com
+ - airtable.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 14c6e7ea-97ed-4f5e-a7b5-25e9a80b8212
+ dockerImageTag: 3.0.0
+ dockerRepository: airbyte/source-airtable
+ githubIssueLabel: source-airtable
+ icon: airtable.svg
+ license: MIT
+ name: Airtable
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/airtable
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-alloydb-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/source-alloydb-strict-encrypt/metadata.yaml
new file mode 100644
index 000000000000..c7a7c01bb820
--- /dev/null
+++ b/airbyte-integrations/connectors/source-alloydb-strict-encrypt/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${host}
+ - ${tunnel_method.tunnel_host}
+ catalogs:
+ cloud:
+ enabled: false # strict encrypt connectors are deployed to Cloud by their non strict encrypt sibling.
+ oss:
+ enabled: false # strict encrypt connectors are not used on OSS.
+ connectorSubtype: database
+ connectorType: source
+ definitionId: 1fa90628-2b9e-11ed-a261-0242ac120002
+ dockerImageTag: 2.0.17
+ dockerRepository: airbyte/source-alloydb
+ githubIssueLabel: source-alloydb
+ icon: alloydb.svg
+ license: MIT
+ name: AlloyDB for PostgreSQL
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/alloydb
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-alloydb/metadata.yaml b/airbyte-integrations/connectors/source-alloydb/metadata.yaml
new file mode 100644
index 000000000000..94b84628612f
--- /dev/null
+++ b/airbyte-integrations/connectors/source-alloydb/metadata.yaml
@@ -0,0 +1,24 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${host}
+ - ${tunnel_method.tunnel_host}
+ catalogs:
+ cloud:
+ dockerImageTag: 2.0.15
+ dockerRepository: airbyte/source-alloydb-strict-encrypt
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: source
+ definitionId: 1fa90628-2b9e-11ed-a261-0242ac120002
+ dockerImageTag: 2.0.17
+ dockerRepository: airbyte/source-alloydb
+ githubIssueLabel: source-alloydb
+ icon: alloydb.svg
+ license: MIT
+ name: AlloyDB for PostgreSQL
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/alloydb
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-alpha-vantage/metadata.yaml b/airbyte-integrations/connectors/source-alpha-vantage/metadata.yaml
new file mode 100644
index 000000000000..161ce824728b
--- /dev/null
+++ b/airbyte-integrations/connectors/source-alpha-vantage/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: db385323-9333-4fec-bec3-9e0ca9326c90
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-alpha-vantage
+ githubIssueLabel: source-alpha-vantage
+ icon: alpha-vantage.svg
+ license: MIT
+ name: Alpha Vantage
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/alpha-vantage
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-amazon-ads/metadata.yaml b/airbyte-integrations/connectors/source-amazon-ads/metadata.yaml
new file mode 100644
index 000000000000..c90ce9add70b
--- /dev/null
+++ b/airbyte-integrations/connectors/source-amazon-ads/metadata.yaml
@@ -0,0 +1,24 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.amazon.com
+ - advertising-api.amazon.com
+ - advertising-api-eu.amazon.com
+ - advertising-api-fe.amazon.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: c6b0a29e-1da9-4512-9002-7bfd0cba2246
+ dockerImageTag: 1.0.2
+ dockerRepository: airbyte/source-amazon-ads
+ githubIssueLabel: source-amazon-ads
+ icon: amazonads.svg
+ license: MIT
+ name: Amazon Ads
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/amazon-ads
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-amazon-seller-partner/metadata.yaml b/airbyte-integrations/connectors/source-amazon-seller-partner/metadata.yaml
new file mode 100644
index 000000000000..d36e43e6ec49
--- /dev/null
+++ b/airbyte-integrations/connectors/source-amazon-seller-partner/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: e55879a8-0ef8-4557-abcf-ab34c53ec460
+ dockerImageTag: 1.0.1
+ dockerRepository: airbyte/source-amazon-seller-partner
+ githubIssueLabel: source-amazon-seller-partner
+ icon: amazonsellerpartner.svg
+ license: MIT
+ name: Amazon Seller Partner
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/amazon-seller-partner
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-amazon-sqs/metadata.yaml b/airbyte-integrations/connectors/source-amazon-sqs/metadata.yaml
new file mode 100644
index 000000000000..4a1e5e5df238
--- /dev/null
+++ b/airbyte-integrations/connectors/source-amazon-sqs/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 983fd355-6bf3-4709-91b5-37afa391eeb6
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-amazon-sqs
+ githubIssueLabel: source-amazon-sqs
+ icon: awssqs.svg
+ license: MIT
+ name: Amazon SQS
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/amazon-sqs
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-amplitude/metadata.yaml b/airbyte-integrations/connectors/source-amplitude/metadata.yaml
new file mode 100644
index 000000000000..ed09403c2f87
--- /dev/null
+++ b/airbyte-integrations/connectors/source-amplitude/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - "*.amplitude.com"
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: fa9f58c6-2d03-4237-aaa4-07d75e0c1396
+ dockerImageTag: 0.1.24
+ dockerRepository: airbyte/source-amplitude
+ githubIssueLabel: source-amplitude
+ icon: amplitude.svg
+ license: MIT
+ name: Amplitude
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/amplitude
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-apify-dataset/metadata.yaml b/airbyte-integrations/connectors/source-apify-dataset/metadata.yaml
new file mode 100644
index 000000000000..39716a539b05
--- /dev/null
+++ b/airbyte-integrations/connectors/source-apify-dataset/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 47f17145-fe20-4ef5-a548-e29b048adf84
+ dockerImageTag: 0.1.11
+ dockerRepository: airbyte/source-apify-dataset
+ githubIssueLabel: source-apify-dataset
+ icon: apify.svg
+ license: MIT
+ name: Apify Dataset
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/apify-dataset
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-appfollow/metadata.yaml b/airbyte-integrations/connectors/source-appfollow/metadata.yaml
new file mode 100644
index 000000000000..e12b82cafc9d
--- /dev/null
+++ b/airbyte-integrations/connectors/source-appfollow/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: b4375641-e270-41d3-9c20-4f9cecad87a8
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-appfollow
+ githubIssueLabel: source-appfollow
+ icon: appfollow.svg
+ license: MIT
+ name: Appfollow
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/appfollow
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-appsflyer/metadata.yaml b/airbyte-integrations/connectors/source-appsflyer/metadata.yaml
new file mode 100644
index 000000000000..ad9047ae4d25
--- /dev/null
+++ b/airbyte-integrations/connectors/source-appsflyer/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 16447954-e6a8-4593-b140-43dea13bc457
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-appsflyer
+ githubIssueLabel: source-appsflyer
+ icon: appsflyer.svg
+ license: MIT
+ name: AppsFlyer
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/appsflyer
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-appstore-singer/metadata.yaml b/airbyte-integrations/connectors/source-appstore-singer/metadata.yaml
new file mode 100644
index 000000000000..e59b502726b6
--- /dev/null
+++ b/airbyte-integrations/connectors/source-appstore-singer/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 2af123bf-0aaf-4e0d-9784-cb497f23741a
+ dockerImageTag: 0.2.6
+ dockerRepository: airbyte/source-appstore-singer
+ githubIssueLabel: source-appstore-singer
+ icon: appstore.svg
+ license: MIT
+ name: Appstore
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/appstore
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-asana/metadata.yaml b/airbyte-integrations/connectors/source-asana/metadata.yaml
new file mode 100644
index 000000000000..afa92e85973a
--- /dev/null
+++ b/airbyte-integrations/connectors/source-asana/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: d0243522-dccf-4978-8ba0-37ed47a0bdbf
+ dockerImageTag: 0.1.5
+ dockerRepository: airbyte/source-asana
+ githubIssueLabel: source-asana
+ icon: asana.svg
+ license: MIT
+ name: Asana
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/asana
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-ashby/metadata.yaml b/airbyte-integrations/connectors/source-ashby/metadata.yaml
new file mode 100644
index 000000000000..fbf616af1aad
--- /dev/null
+++ b/airbyte-integrations/connectors/source-ashby/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 4e8c9fa0-3634-499b-b948-11581b5c3efa
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-ashby
+ githubIssueLabel: source-ashby
+ icon: ashby.svg
+ license: MIT
+ name: Ashby
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/ashby
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-auth0/metadata.yaml b/airbyte-integrations/connectors/source-auth0/metadata.yaml
new file mode 100644
index 000000000000..e9d935bbdb31
--- /dev/null
+++ b/airbyte-integrations/connectors/source-auth0/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 6c504e48-14aa-4221-9a72-19cf5ff1ae78
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-auth0
+ githubIssueLabel: source-auth0
+ icon: auth0.svg
+ license: MIT
+ name: Auth0
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/auth0
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-aws-cloudtrail/metadata.yaml b/airbyte-integrations/connectors/source-aws-cloudtrail/metadata.yaml
new file mode 100644
index 000000000000..99674d87b0c4
--- /dev/null
+++ b/airbyte-integrations/connectors/source-aws-cloudtrail/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 6ff047c0-f5d5-4ce5-8c81-204a830fa7e1
+ dockerImageTag: 0.1.5
+ dockerRepository: airbyte/source-aws-cloudtrail
+ githubIssueLabel: source-aws-cloudtrail
+ icon: awscloudtrail.svg
+ license: MIT
+ name: AWS CloudTrail
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/aws-cloudtrail
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-azure-blob-storage/metadata.yaml b/airbyte-integrations/connectors/source-azure-blob-storage/metadata.yaml
new file mode 100644
index 000000000000..d452be854424
--- /dev/null
+++ b/airbyte-integrations/connectors/source-azure-blob-storage/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: file
+ connectorType: source
+ definitionId: fdaaba68-4875-4ed9-8fcd-4ae1e0a25093
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-azure-blob-storage
+ githubIssueLabel: source-azure-blob-storage
+ icon: azureblobstorage.svg
+ license: MIT
+ name: Azure Blob Storage
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/azure-blob-storage
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-azure-table/metadata.yaml b/airbyte-integrations/connectors/source-azure-table/metadata.yaml
new file mode 100644
index 000000000000..fe9fa9bcf8ff
--- /dev/null
+++ b/airbyte-integrations/connectors/source-azure-table/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: source
+ definitionId: 798ae795-5189-42b6-b64e-3cb91db93338
+ dockerImageTag: 0.1.3
+ dockerRepository: airbyte/source-azure-table
+ githubIssueLabel: source-azure-table
+ icon: azureblobstorage.svg
+ license: MIT
+ name: Azure Table Storage
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/azure-table
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-babelforce/metadata.yaml b/airbyte-integrations/connectors/source-babelforce/metadata.yaml
new file mode 100644
index 000000000000..0c90c26ac1cb
--- /dev/null
+++ b/airbyte-integrations/connectors/source-babelforce/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 971c3e1e-78a5-411e-ad56-c4052b50876b
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-babelforce
+ githubIssueLabel: source-babelforce
+ icon: babelforce.svg
+ license: MIT
+ name: Babelforce
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/babelforce
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-bamboo-hr/metadata.yaml b/airbyte-integrations/connectors/source-bamboo-hr/metadata.yaml
new file mode 100644
index 000000000000..77d589afd7b6
--- /dev/null
+++ b/airbyte-integrations/connectors/source-bamboo-hr/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 90916976-a132-4ce9-8bce-82a03dd58788
+ dockerImageTag: 0.2.2
+ dockerRepository: airbyte/source-bamboo-hr
+ githubIssueLabel: source-bamboo-hr
+ icon: bamboohr.svg
+ license: MIT
+ name: BambooHR
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/bamboo-hr
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-bigcommerce/metadata.yaml b/airbyte-integrations/connectors/source-bigcommerce/metadata.yaml
new file mode 100644
index 000000000000..b5c214cc87a9
--- /dev/null
+++ b/airbyte-integrations/connectors/source-bigcommerce/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 59c5501b-9f95-411e-9269-7143c939adbd
+ dockerImageTag: 0.1.10
+ dockerRepository: airbyte/source-bigcommerce
+ githubIssueLabel: source-bigcommerce
+ icon: bigcommerce.svg
+ license: MIT
+ name: BigCommerce
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/bigcommerce
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-bigquery/metadata.yaml b/airbyte-integrations/connectors/source-bigquery/metadata.yaml
new file mode 100644
index 000000000000..3e3ee88e1037
--- /dev/null
+++ b/airbyte-integrations/connectors/source-bigquery/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: source
+ definitionId: bfd1ddf8-ae8a-4620-b1d7-55597d2ba08c
+ dockerImageTag: 0.2.3
+ dockerRepository: airbyte/source-bigquery
+ githubIssueLabel: source-bigquery
+ icon: bigquery.svg
+ license: MIT
+ name: BigQuery
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/bigquery
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-bing-ads/metadata.yaml b/airbyte-integrations/connectors/source-bing-ads/metadata.yaml
new file mode 100644
index 000000000000..3127634d0c3f
--- /dev/null
+++ b/airbyte-integrations/connectors/source-bing-ads/metadata.yaml
@@ -0,0 +1,26 @@
+data:
+ allowedHosts:
+ hosts:
+ - bingads.microsoft.com
+ - login.microsoftonline.com
+ - login.live.com
+ - login.windows-ppe.net
+ - ads.microsoft.com
+ - api.ads.microsoft.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 47f25999-dd5e-4636-8c39-e7cea2453331
+ dockerImageTag: 0.1.18
+ dockerRepository: airbyte/source-bing-ads
+ githubIssueLabel: source-bing-ads
+ icon: bingads.svg
+ license: MIT
+ name: Bing Ads
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/bing-ads
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-braintree/metadata.yaml b/airbyte-integrations/connectors/source-braintree/metadata.yaml
new file mode 100644
index 000000000000..18c51b884a2d
--- /dev/null
+++ b/airbyte-integrations/connectors/source-braintree/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 63cea06f-1c75-458d-88fe-ad48c7cb27fd
+ dockerImageTag: 0.1.4
+ dockerRepository: airbyte/source-braintree
+ githubIssueLabel: source-braintree
+ icon: braintree.svg
+ license: MIT
+ name: Braintree
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/braintree
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-braze/metadata.yaml b/airbyte-integrations/connectors/source-braze/metadata.yaml
new file mode 100644
index 000000000000..fd6407dce4e8
--- /dev/null
+++ b/airbyte-integrations/connectors/source-braze/metadata.yaml
@@ -0,0 +1,17 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 68b9c98e-0747-4c84-b05b-d30b47686725
+ dockerImageTag: 0.1.3
+ dockerRepository: airbyte/source-braze
+ githubIssueLabel: source-braze
+ license: MIT
+ name: Braze
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.io/integrations/sources/braze
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-breezometer/metadata.yaml b/airbyte-integrations/connectors/source-breezometer/metadata.yaml
new file mode 100644
index 000000000000..9e8cedae3c25
--- /dev/null
+++ b/airbyte-integrations/connectors/source-breezometer/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 7c37685e-8512-4901-addf-9afbef6c0de9
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-breezometer
+ githubIssueLabel: source-breezometer
+ icon: breezometer.svg
+ license: MIT
+ name: Breezometer
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/breezometer
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-callrail/metadata.yaml b/airbyte-integrations/connectors/source-callrail/metadata.yaml
new file mode 100644
index 000000000000..cbd72e3a6e5f
--- /dev/null
+++ b/airbyte-integrations/connectors/source-callrail/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: dc98a6ad-2dd1-47b6-9529-2ec35820f9c6
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-callrail
+ githubIssueLabel: source-callrail
+ icon: callrail.svg
+ license: MIT
+ name: CallRail
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/callrail
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-cart/metadata.yaml b/airbyte-integrations/connectors/source-cart/metadata.yaml
new file mode 100644
index 000000000000..cb472c5b74d4
--- /dev/null
+++ b/airbyte-integrations/connectors/source-cart/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: bb1a6d31-6879-4819-a2bd-3eed299ea8e2
+ dockerImageTag: 0.2.1
+ dockerRepository: airbyte/source-cart
+ githubIssueLabel: source-cart
+ icon: cart.svg
+ license: MIT
+ name: Cart.com
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/cart
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-chargebee/metadata.yaml b/airbyte-integrations/connectors/source-chargebee/metadata.yaml
new file mode 100644
index 000000000000..b20c655e5ebe
--- /dev/null
+++ b/airbyte-integrations/connectors/source-chargebee/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - "*.chargebee.com"
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 686473f1-76d9-4994-9cc7-9b13da46147c
+ dockerImageTag: 0.2.3
+ dockerRepository: airbyte/source-chargebee
+ githubIssueLabel: source-chargebee
+ icon: chargebee.svg
+ license: MIT
+ name: Chargebee
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/chargebee
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-chargify/metadata.yaml b/airbyte-integrations/connectors/source-chargify/metadata.yaml
new file mode 100644
index 000000000000..b1a460572d3d
--- /dev/null
+++ b/airbyte-integrations/connectors/source-chargify/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 9b2d3607-7222-4709-9fa2-c2abdebbdd88
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-chargify
+ githubIssueLabel: source-chargify
+ icon: chargify.svg
+ license: MIT
+ name: Chargify
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/chargify
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-chartmogul/metadata.yaml b/airbyte-integrations/connectors/source-chartmogul/metadata.yaml
new file mode 100644
index 000000000000..a961f5605102
--- /dev/null
+++ b/airbyte-integrations/connectors/source-chartmogul/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.chartmogul.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: b6604cbd-1b12-4c08-8767-e140d0fb0877
+ dockerImageTag: 0.2.1
+ dockerRepository: airbyte/source-chartmogul
+ githubIssueLabel: source-chartmogul
+ icon: chartmogul.svg
+ license: MIT
+ name: Chartmogul
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/chartmogul
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-clickhouse-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/source-clickhouse-strict-encrypt/metadata.yaml
new file mode 100644
index 000000000000..881c0c062897
--- /dev/null
+++ b/airbyte-integrations/connectors/source-clickhouse-strict-encrypt/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${host}
+ - ${tunnel_method.tunnel_host}
+ catalogs:
+ cloud:
+ enabled: false # strict encrypt connectors are deployed to Cloud by their non strict encrypt sibling.
+ oss:
+ enabled: false # strict encrypt connectors are not used on OSS.
+ connectorSubtype: database
+ connectorType: source
+ definitionId: bad83517-5e54-4a3d-9b53-63e85fbd4d7c
+ dockerImageTag: 0.1.17
+ dockerRepository: airbyte/source-clickhouse
+ githubIssueLabel: source-clickhouse
+ icon: clickhouse.svg
+ license: MIT
+ name: ClickHouse
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/clickhouse
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-clickhouse/metadata.yaml b/airbyte-integrations/connectors/source-clickhouse/metadata.yaml
new file mode 100644
index 000000000000..b0c7b1ebe372
--- /dev/null
+++ b/airbyte-integrations/connectors/source-clickhouse/metadata.yaml
@@ -0,0 +1,24 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${host}
+ - ${tunnel_method.tunnel_host}
+ catalogs:
+ cloud:
+ dockerImageTag: 0.1.8
+ dockerRepository: airbyte/source-clickhouse-strict-encrypt
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: source
+ definitionId: bad83517-5e54-4a3d-9b53-63e85fbd4d7c
+ dockerImageTag: 0.1.17
+ dockerRepository: airbyte/source-clickhouse
+ githubIssueLabel: source-clickhouse
+ icon: clickhouse.svg
+ license: MIT
+ name: ClickHouse
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/clickhouse
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-clickup-api/metadata.yaml b/airbyte-integrations/connectors/source-clickup-api/metadata.yaml
new file mode 100644
index 000000000000..86256039e29b
--- /dev/null
+++ b/airbyte-integrations/connectors/source-clickup-api/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 311a7a27-3fb5-4f7e-8265-5e4afe258b66
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-clickup-api
+ githubIssueLabel: source-clickup-api
+ icon: clickup.svg
+ license: MIT
+ name: ClickUp
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/click-up
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-clockify/metadata.yaml b/airbyte-integrations/connectors/source-clockify/metadata.yaml
new file mode 100644
index 000000000000..e8fd0b3cd56c
--- /dev/null
+++ b/airbyte-integrations/connectors/source-clockify/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: e71aae8a-5143-11ed-bdc3-0242ac120002
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-clockify
+ githubIssueLabel: source-clockify
+ icon: clockify.svg
+ license: MIT
+ name: Clockify
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/clockify
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-close-com/metadata.yaml b/airbyte-integrations/connectors/source-close-com/metadata.yaml
new file mode 100644
index 000000000000..ef7a9c40e748
--- /dev/null
+++ b/airbyte-integrations/connectors/source-close-com/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.close.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: dfffecb7-9a13-43e9-acdc-b92af7997ca9
+ dockerImageTag: 0.2.1
+ dockerRepository: airbyte/source-close-com
+ githubIssueLabel: source-close-com
+ icon: close.svg
+ license: MIT
+ name: Close.com
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/close-com
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-cockroachdb-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/source-cockroachdb-strict-encrypt/metadata.yaml
new file mode 100644
index 000000000000..88485fbc7bc6
--- /dev/null
+++ b/airbyte-integrations/connectors/source-cockroachdb-strict-encrypt/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${host}
+ catalogs:
+ cloud:
+ enabled: false # strict encrypt connectors are deployed to Cloud by their non strict encrypt sibling.
+ oss:
+ enabled: false # strict encrypt connectors are not used on OSS.
+ connectorSubtype: database
+ connectorType: source
+ definitionId: 9fa5862c-da7c-11eb-8d19-0242ac130003
+ dockerImageTag: 0.1.22
+ dockerRepository: airbyte/source-cockroachdb
+ githubIssueLabel: source-cockroachdb
+ icon: cockroachdb.svg
+ license: MIT
+ name: Cockroachdb
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/cockroachdb
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-cockroachdb/metadata.yaml b/airbyte-integrations/connectors/source-cockroachdb/metadata.yaml
new file mode 100644
index 000000000000..dbbe2ab3d3f7
--- /dev/null
+++ b/airbyte-integrations/connectors/source-cockroachdb/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${host}
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: source
+ definitionId: 9fa5862c-da7c-11eb-8d19-0242ac130003
+ dockerImageTag: 0.1.22
+ dockerRepository: airbyte/source-cockroachdb
+ githubIssueLabel: source-cockroachdb
+ icon: cockroachdb.svg
+ license: MIT
+ name: Cockroachdb
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/cockroachdb
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-coda/metadata.yaml b/airbyte-integrations/connectors/source-coda/metadata.yaml
new file mode 100644
index 000000000000..5a9656d9f3d5
--- /dev/null
+++ b/airbyte-integrations/connectors/source-coda/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 27f910fd-f832-4b2e-bcfd-6ab342e434d8
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-coda
+ githubIssueLabel: source-coda
+ icon: coda.svg
+ license: MIT
+ name: Coda
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/coda
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-coin-api/metadata.yaml b/airbyte-integrations/connectors/source-coin-api/metadata.yaml
new file mode 100644
index 000000000000..f5aec07ba8ae
--- /dev/null
+++ b/airbyte-integrations/connectors/source-coin-api/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 919984ef-53a2-479b-8ffe-9c1ddb9fc3f3
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-coin-api
+ githubIssueLabel: source-coin-api
+ icon: coinapi.svg
+ license: MIT
+ name: Coin API
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/coin-api
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-coingecko-coins/metadata.yaml b/airbyte-integrations/connectors/source-coingecko-coins/metadata.yaml
new file mode 100644
index 000000000000..92a500e0db1b
--- /dev/null
+++ b/airbyte-integrations/connectors/source-coingecko-coins/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 9cdd4183-d0ba-40c3-aad3-6f46d4103974
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-coingecko-coins
+ githubIssueLabel: source-coingecko-coins
+ icon: coingeckocoins.svg
+ license: MIT
+ name: CoinGecko Coins
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/coingecko-coins
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-coinmarketcap/metadata.yaml b/airbyte-integrations/connectors/source-coinmarketcap/metadata.yaml
new file mode 100644
index 000000000000..03c67c42a1b8
--- /dev/null
+++ b/airbyte-integrations/connectors/source-coinmarketcap/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 239463f5-64bb-4d88-b4bd-18ce673fd572
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-coinmarketcap
+ githubIssueLabel: source-coinmarketcap
+ icon: coinmarketcap.svg
+ license: MIT
+ name: CoinMarketCap
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/coinmarketcap
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-commcare/metadata.yaml b/airbyte-integrations/connectors/source-commcare/metadata.yaml
new file mode 100644
index 000000000000..babd3625d2ac
--- /dev/null
+++ b/airbyte-integrations/connectors/source-commcare/metadata.yaml
@@ -0,0 +1,17 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: f39208dc-7e1c-48b8-919b-5006360cc27f
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-commcare
+ githubIssueLabel: source-commcare
+ license: MIT
+ name: Commcare
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/commcare
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-commercetools/metadata.yaml b/airbyte-integrations/connectors/source-commercetools/metadata.yaml
new file mode 100644
index 000000000000..7349c00efeac
--- /dev/null
+++ b/airbyte-integrations/connectors/source-commercetools/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 008b2e26-11a3-11ec-82a8-0242ac130003
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-commercetools
+ githubIssueLabel: source-commercetools
+ icon: commercetools.svg
+ license: MIT
+ name: Commercetools
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/commercetools
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-configcat/metadata.yaml b/airbyte-integrations/connectors/source-configcat/metadata.yaml
new file mode 100644
index 000000000000..ae6fc918433f
--- /dev/null
+++ b/airbyte-integrations/connectors/source-configcat/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 4fd7565c-8b99-439b-80d0-2d965e1d958c
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-configcat
+ githubIssueLabel: source-configcat
+ icon: configcat.svg
+ license: MIT
+ name: ConfigCat
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/configcat
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-confluence/metadata.yaml b/airbyte-integrations/connectors/source-confluence/metadata.yaml
new file mode 100644
index 000000000000..2c422134d8fe
--- /dev/null
+++ b/airbyte-integrations/connectors/source-confluence/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${subdomain}.atlassian.net
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: cf40a7f8-71f8-45ce-a7fa-fca053e4028c
+ dockerImageTag: 0.1.3
+ dockerRepository: airbyte/source-confluence
+ githubIssueLabel: source-confluence
+ icon: confluence.svg
+ license: MIT
+ name: Confluence
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/confluence
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-convertkit/metadata.yaml b/airbyte-integrations/connectors/source-convertkit/metadata.yaml
new file mode 100644
index 000000000000..2840b889195e
--- /dev/null
+++ b/airbyte-integrations/connectors/source-convertkit/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: be9ee02f-6efe-4970-979b-95f797a37188
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-convertkit
+ githubIssueLabel: source-convertkit
+ icon: convertkit.svg
+ license: MIT
+ name: ConvertKit
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/convertkit
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-convex/metadata.yaml b/airbyte-integrations/connectors/source-convex/metadata.yaml
new file mode 100644
index 000000000000..550645536210
--- /dev/null
+++ b/airbyte-integrations/connectors/source-convex/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: c332628c-f55c-4017-8222-378cfafda9b2
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-convex
+ githubIssueLabel: source-convex
+ icon: convex.svg
+ license: MIT
+ name: Convex
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/convex
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-copper/metadata.yaml b/airbyte-integrations/connectors/source-copper/metadata.yaml
new file mode 100644
index 000000000000..d4ca088a98b8
--- /dev/null
+++ b/airbyte-integrations/connectors/source-copper/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 44f3002f-2df9-4f6d-b21c-02cd3b47d0dc
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-copper
+ githubIssueLabel: source-copper
+ icon: copper.svg
+ license: MIT
+ name: Copper
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/copper
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-courier/metadata.yaml b/airbyte-integrations/connectors/source-courier/metadata.yaml
new file mode 100644
index 000000000000..f72d847b17ae
--- /dev/null
+++ b/airbyte-integrations/connectors/source-courier/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 0541b2cd-2367-4986-b5f1-b79ff55439e4
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-courier
+ githubIssueLabel: source-courier
+ icon: courier.svg
+ license: MIT
+ name: Courier
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/courier
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-datadog/metadata.yaml b/airbyte-integrations/connectors/source-datadog/metadata.yaml
new file mode 100644
index 000000000000..4b20b83fe2e8
--- /dev/null
+++ b/airbyte-integrations/connectors/source-datadog/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 1cfc30c7-82db-43f4-9fd7-ac1b42312cda
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-datadog
+ githubIssueLabel: source-datadog
+ icon: datadog.svg
+ license: MIT
+ name: Datadog
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/datadog
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-datascope/metadata.yaml b/airbyte-integrations/connectors/source-datascope/metadata.yaml
new file mode 100644
index 000000000000..a7239b484277
--- /dev/null
+++ b/airbyte-integrations/connectors/source-datascope/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 8e1ae2d2-4790-44d3-9d83-75b3fc3940ff
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-datascope
+ githubIssueLabel: source-datascope
+ icon: datascope.svg
+ license: MIT
+ name: Datascope
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/datascope
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-db2/metadata.yaml b/airbyte-integrations/connectors/source-db2/metadata.yaml
new file mode 100644
index 000000000000..30b853e455d3
--- /dev/null
+++ b/airbyte-integrations/connectors/source-db2/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${host}
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: source
+ definitionId: 447e0381-3780-4b46-bb62-00a4e3c8b8e2
+ dockerImageTag: 0.1.19
+ dockerRepository: airbyte/source-db2
+ githubIssueLabel: source-db2
+ icon: db2.svg
+ license: MIT
+ name: IBM Db2
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/db2
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-delighted/metadata.yaml b/airbyte-integrations/connectors/source-delighted/metadata.yaml
new file mode 100644
index 000000000000..0de5c61db1ec
--- /dev/null
+++ b/airbyte-integrations/connectors/source-delighted/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.delighted.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: cc88c43f-6f53-4e8a-8c4d-b284baaf9635
+ dockerImageTag: 0.2.2
+ dockerRepository: airbyte/source-delighted
+ githubIssueLabel: source-delighted
+ icon: delighted.svg
+ license: MIT
+ name: Delighted
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/delighted
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-dixa/metadata.yaml b/airbyte-integrations/connectors/source-dixa/metadata.yaml
new file mode 100644
index 000000000000..703b414b424b
--- /dev/null
+++ b/airbyte-integrations/connectors/source-dixa/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 0b5c867e-1b12-4d02-ab74-97b2184ff6d7
+ dockerImageTag: 0.1.3
+ dockerRepository: airbyte/source-dixa
+ githubIssueLabel: source-dixa
+ icon: dixa.svg
+ license: MIT
+ name: Dixa
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/dixa
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-dockerhub/metadata.yaml b/airbyte-integrations/connectors/source-dockerhub/metadata.yaml
new file mode 100644
index 000000000000..2ac5f1d80d84
--- /dev/null
+++ b/airbyte-integrations/connectors/source-dockerhub/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 72d405a3-56d8-499f-a571-667c03406e43
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-dockerhub
+ githubIssueLabel: source-dockerhub
+ icon: dockerhub.svg
+ license: MIT
+ name: Dockerhub
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/dockerhub
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-dremio/metadata.yaml b/airbyte-integrations/connectors/source-dremio/metadata.yaml
new file mode 100644
index 000000000000..b8818ef39e0c
--- /dev/null
+++ b/airbyte-integrations/connectors/source-dremio/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: d99e9ace-8621-46c2-9144-76ae4751d64b
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-dremio
+ githubIssueLabel: source-dremio
+ icon: dremio.svg
+ license: MIT
+ name: Dremio
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/dremio
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-drift/metadata.yaml b/airbyte-integrations/connectors/source-drift/metadata.yaml
new file mode 100644
index 000000000000..a84fbd4eeb30
--- /dev/null
+++ b/airbyte-integrations/connectors/source-drift/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - driftapi.com
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 445831eb-78db-4b1f-8f1f-0d96ad8739e2
+ dockerImageTag: 0.2.6
+ dockerRepository: airbyte/source-drift
+ githubIssueLabel: source-drift
+ icon: drift.svg
+ license: MIT
+ name: Drift
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/drift
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-dv-360/metadata.yaml b/airbyte-integrations/connectors/source-dv-360/metadata.yaml
new file mode 100644
index 000000000000..1e67a9ea992a
--- /dev/null
+++ b/airbyte-integrations/connectors/source-dv-360/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 1356e1d9-977f-4057-ad4b-65f25329cf61
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-dv-360
+ githubIssueLabel: source-dv-360
+ icon: dv360.svg
+ license: MIT
+ name: DV 360
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/dv-360
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-dynamodb/metadata.yaml b/airbyte-integrations/connectors/source-dynamodb/metadata.yaml
new file mode 100644
index 000000000000..33f5221367cf
--- /dev/null
+++ b/airbyte-integrations/connectors/source-dynamodb/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 50401137-8871-4c5a-abb7-1f5fda35545a
+ dockerImageTag: 0.1.2
+ dockerRepository: airbyte/source-dynamodb
+ githubIssueLabel: source-dynamodb
+ icon: dynamodb.svg
+ license: MIT
+ name: DynamoDB
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/dynamodb
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-e2e-test-cloud/metadata.yaml b/airbyte-integrations/connectors/source-e2e-test-cloud/metadata.yaml
new file mode 100644
index 000000000000..8a9d69f285ec
--- /dev/null
+++ b/airbyte-integrations/connectors/source-e2e-test-cloud/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: false
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 50bd8338-7c4e-46f1-8c7f-3ef95de19fdd
+ dockerImageTag: 2.1.0
+ dockerRepository: airbyte/source-e2e-test-cloud
+ githubIssueLabel: source-e2e-test-cloud
+ icon: airbyte.svg
+ license: MIT
+ name: End-to-End Testing (Mock API)
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.io/integrations/sources/e2e-test
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-e2e-test/metadata.yaml b/airbyte-integrations/connectors/source-e2e-test/metadata.yaml
new file mode 100644
index 000000000000..0ca944ee49f9
--- /dev/null
+++ b/airbyte-integrations/connectors/source-e2e-test/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: d53f9084-fa6b-4a5a-976c-5b8392f4ad8a
+ dockerImageTag: 2.1.4
+ dockerRepository: airbyte/source-e2e-test
+ githubIssueLabel: source-e2e-test
+ icon: airbyte.svg
+ license: MIT
+ name: E2E Testing
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/e2e-test
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-elasticsearch/metadata.yaml b/airbyte-integrations/connectors/source-elasticsearch/metadata.yaml
new file mode 100644
index 000000000000..977cf1d79f73
--- /dev/null
+++ b/airbyte-integrations/connectors/source-elasticsearch/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 7cf88806-25f5-4e1a-b422-b2fa9e1b0090
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-elasticsearch
+ githubIssueLabel: source-elasticsearch
+ icon: elasticsearch.svg
+ license: MIT
+ name: Elasticsearch
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/elasticsearch
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-emailoctopus/metadata.yaml b/airbyte-integrations/connectors/source-emailoctopus/metadata.yaml
new file mode 100644
index 000000000000..cbef6b86c892
--- /dev/null
+++ b/airbyte-integrations/connectors/source-emailoctopus/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 46b25e70-c980-4590-a811-8deaf50ee09f
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-emailoctopus
+ githubIssueLabel: source-emailoctopus
+ icon: emailoctopus.svg
+ license: MIT
+ name: EmailOctopus
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/emailoctopus
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-everhour/metadata.yaml b/airbyte-integrations/connectors/source-everhour/metadata.yaml
new file mode 100644
index 000000000000..69c699d4aa5f
--- /dev/null
+++ b/airbyte-integrations/connectors/source-everhour/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.everhour.com
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 6babfc42-c734-4ef6-a817-6eca15f0f9b7
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-everhour
+ githubIssueLabel: source-everhour
+ icon: everhour.svg
+ license: MIT
+ name: Everhour
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/everhour
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-exchange-rates/metadata.yaml b/airbyte-integrations/connectors/source-exchange-rates/metadata.yaml
new file mode 100644
index 000000000000..3ab578d814b6
--- /dev/null
+++ b/airbyte-integrations/connectors/source-exchange-rates/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${subdomain}.apilayer.com
+ - apilayer.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: e2b40e36-aa0e-4bed-b41b-bcea6fa348b1
+ dockerImageTag: 1.2.8
+ dockerRepository: airbyte/source-exchange-rates
+ githubIssueLabel: source-exchange-rates
+ icon: exchangeratesapi.svg
+ license: MIT
+ name: Exchange Rates Api
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/exchangeratesapi
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-facebook-marketing/metadata.yaml b/airbyte-integrations/connectors/source-facebook-marketing/metadata.yaml
new file mode 100644
index 000000000000..f75f3afee653
--- /dev/null
+++ b/airbyte-integrations/connectors/source-facebook-marketing/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - graph.facebook.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: e7778cfc-e97c-4458-9ecb-b4f2bba8946c
+ dockerImageTag: 0.3.1
+ dockerRepository: airbyte/source-facebook-marketing
+ githubIssueLabel: source-facebook-marketing
+ icon: facebook.svg
+ license: MIT
+ name: Facebook Marketing
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/facebook-marketing
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-facebook-pages/metadata.yaml b/airbyte-integrations/connectors/source-facebook-pages/metadata.yaml
new file mode 100644
index 000000000000..f853a76d98a1
--- /dev/null
+++ b/airbyte-integrations/connectors/source-facebook-pages/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - graph.facebook.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 010eb12f-837b-4685-892d-0a39f76a98f5
+ dockerImageTag: 0.2.3
+ dockerRepository: airbyte/source-facebook-pages
+ githubIssueLabel: source-facebook-pages
+ icon: facebook.svg
+ license: MIT
+ name: Facebook Pages
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/facebook-pages
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-faker/metadata.yaml b/airbyte-integrations/connectors/source-faker/metadata.yaml
new file mode 100644
index 000000000000..38d4355fe5a6
--- /dev/null
+++ b/airbyte-integrations/connectors/source-faker/metadata.yaml
@@ -0,0 +1,31 @@
+data:
+ allowedHosts:
+ hosts: []
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: dfd88b22-b603-4c3d-aad7-3701784586b1
+ dockerImageTag: 2.0.3
+ dockerRepository: airbyte/source-faker
+ githubIssueLabel: source-faker
+ icon: faker.svg
+ license: MIT
+ name: Sample Data (Faker)
+ releaseStage: beta
+ resourceRequirements:
+ jobSpecific:
+ - jobType: sync
+ resourceRequirements:
+ cpu_limit: "4.0"
+ cpu_request: "1.0"
+ suggestedStreams:
+ streams:
+ - users
+ - products
+ - purchases
+ supportUrl: https://docs.airbyte.com/integrations/sources/faker
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-fastbill/metadata.yaml b/airbyte-integrations/connectors/source-fastbill/metadata.yaml
new file mode 100644
index 000000000000..af979546cfa0
--- /dev/null
+++ b/airbyte-integrations/connectors/source-fastbill/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: eb3e9c1c-0467-4eb7-a172-5265e04ccd0a
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-fastbill
+ githubIssueLabel: source-fastbill
+ icon: fastbill.svg
+ license: MIT
+ name: Fastbill
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/fastbill
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-fauna/metadata.yaml b/airbyte-integrations/connectors/source-fauna/metadata.yaml
new file mode 100644
index 000000000000..e14e58829b26
--- /dev/null
+++ b/airbyte-integrations/connectors/source-fauna/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: source
+ definitionId: 3825db3e-c94b-42ac-bd53-b5a9507ace2b
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-fauna
+ githubIssueLabel: source-fauna
+ icon: fauna.svg
+ license: MIT
+ name: Fauna
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/fauna
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-file/metadata.yaml b/airbyte-integrations/connectors/source-file/metadata.yaml
new file mode 100644
index 000000000000..fb09259a9e9b
--- /dev/null
+++ b/airbyte-integrations/connectors/source-file/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - "*"
+ catalogs:
+ cloud:
+ dockerRepository: airbyte/source-file-secure
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: file
+ connectorType: source
+ definitionId: 778daa7c-feaf-4db6-96f3-70fd645acc77
+ dockerImageTag: 0.2.36
+ dockerRepository: airbyte/source-file
+ githubIssueLabel: source-file
+ icon: file.svg
+ license: MIT
+ name: File (CSV, JSON, Excel, Feather, Parquet)
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/file
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-firebase-realtime-database/metadata.yaml b/airbyte-integrations/connectors/source-firebase-realtime-database/metadata.yaml
new file mode 100644
index 000000000000..24f7f9d1b303
--- /dev/null
+++ b/airbyte-integrations/connectors/source-firebase-realtime-database/metadata.yaml
@@ -0,0 +1,20 @@
+data:
+ allowedHosts:
+ hosts:
+ - "*"
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: source
+ definitionId: acb5f973-a565-441e-992f-4946f3e65662
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-firebase-realtime-database
+ githubIssueLabel: source-firebase-realtime-database
+ license: MIT
+ name: Firebase Realtime Database
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.io/integrations/sources/firebase-realtime-database
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-firebolt/metadata.yaml b/airbyte-integrations/connectors/source-firebolt/metadata.yaml
new file mode 100644
index 000000000000..e8d0f4763fd5
--- /dev/null
+++ b/airbyte-integrations/connectors/source-firebolt/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: source
+ definitionId: 6f2ac653-8623-43c4-8950-19218c7caf3d
+ dockerImageTag: 0.2.0
+ dockerRepository: airbyte/source-firebolt
+ githubIssueLabel: source-firebolt
+ icon: firebolt.svg
+ license: MIT
+ name: Firebolt
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/firebolt
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-flexport/metadata.yaml b/airbyte-integrations/connectors/source-flexport/metadata.yaml
new file mode 100644
index 000000000000..82d597ddfbf2
--- /dev/null
+++ b/airbyte-integrations/connectors/source-flexport/metadata.yaml
@@ -0,0 +1,17 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: f95337f1-2ad1-4baf-922f-2ca9152de630
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-flexport
+ githubIssueLabel: source-flexport
+ license: MIT
+ name: Flexport
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/flexport
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-freshcaller/metadata.yaml b/airbyte-integrations/connectors/source-freshcaller/metadata.yaml
new file mode 100644
index 000000000000..402477e21579
--- /dev/null
+++ b/airbyte-integrations/connectors/source-freshcaller/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 8a5d48f6-03bb-4038-a942-a8d3f175cca3
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-freshcaller
+ githubIssueLabel: source-freshcaller
+ icon: freshcaller.svg
+ license: MIT
+ name: Freshcaller
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/freshcaller
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-freshdesk/metadata.yaml b/airbyte-integrations/connectors/source-freshdesk/metadata.yaml
new file mode 100644
index 000000000000..3588ba154cee
--- /dev/null
+++ b/airbyte-integrations/connectors/source-freshdesk/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - "*.freshdesk.com"
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: ec4b9503-13cb-48ab-a4ab-6ade4be46567
+ dockerImageTag: 3.0.2
+ dockerRepository: airbyte/source-freshdesk
+ githubIssueLabel: source-freshdesk
+ icon: freshdesk.svg
+ license: MIT
+ name: Freshdesk
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/freshdesk
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-freshsales/metadata.yaml b/airbyte-integrations/connectors/source-freshsales/metadata.yaml
new file mode 100644
index 000000000000..67d81961a391
--- /dev/null
+++ b/airbyte-integrations/connectors/source-freshsales/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - "*.myfreshworks.com"
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: eca08d79-7b92-4065-b7f3-79c14836ebe7
+ dockerImageTag: 0.1.4
+ dockerRepository: airbyte/source-freshsales
+ githubIssueLabel: source-freshsales
+ icon: freshsales.svg
+ license: MIT
+ name: Freshsales
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/freshsales
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-freshservice/metadata.yaml b/airbyte-integrations/connectors/source-freshservice/metadata.yaml
new file mode 100644
index 000000000000..e7c50ebd9e2d
--- /dev/null
+++ b/airbyte-integrations/connectors/source-freshservice/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 9bb85338-ea95-4c93-b267-6be89125b267
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-freshservice
+ githubIssueLabel: source-freshservice
+ icon: freshservice.svg
+ license: MIT
+ name: Freshservice
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/freshservice
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-gcs/metadata.yaml b/airbyte-integrations/connectors/source-gcs/metadata.yaml
new file mode 100644
index 000000000000..85b0f528fa1e
--- /dev/null
+++ b/airbyte-integrations/connectors/source-gcs/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ releaseStage: alpha
+ connectorSubtype: file
+ connectorType: source
+ definitionId: 2a8c41ae-8c23-4be0-a73f-2ab10ca1a820
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-gcs
+ githubIssueLabel: source-gcs
+ icon: gcs.svg
+ license: MIT
+ name: GCS
+ supportUrl: https://docs.airbyte.com/integrations/sources/gcs
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-genesys/metadata.yaml b/airbyte-integrations/connectors/source-genesys/metadata.yaml
new file mode 100644
index 000000000000..07bed56053a8
--- /dev/null
+++ b/airbyte-integrations/connectors/source-genesys/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 5ea4459a-8f1a-452a-830f-a65c38cc438d
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-genesys
+ githubIssueLabel: source-genesys
+ icon: genesys.svg
+ license: MIT
+ name: Genesys
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/genesys
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-getlago/metadata.yaml b/airbyte-integrations/connectors/source-getlago/metadata.yaml
new file mode 100644
index 000000000000..7a9ac51d6cb2
--- /dev/null
+++ b/airbyte-integrations/connectors/source-getlago/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: e1a3866b-d3b2-43b6-b6d7-8c1ee4d7f53f
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-getlago
+ githubIssueLabel: source-getlago
+ icon: getlago.svg
+ license: MIT
+ name: GetLago
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/getlago
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-github/metadata.yaml b/airbyte-integrations/connectors/source-github/metadata.yaml
new file mode 100644
index 000000000000..a4173b4cf9f6
--- /dev/null
+++ b/airbyte-integrations/connectors/source-github/metadata.yaml
@@ -0,0 +1,33 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.github.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: ef69ef6e-aa7f-4af1-a01d-ef775033524e
+ dockerImageTag: 0.4.7
+ dockerRepository: airbyte/source-github
+ githubIssueLabel: source-github
+ icon: github.svg
+ license: MIT
+ name: GitHub
+ releaseStage: generally_available
+ suggestedStreams:
+ streams:
+ - branches
+ - comments
+ - issues
+ - organizations
+ - pull_requests
+ - repositories
+ - stargazers
+ - tags
+ - teams
+ - users
+ supportUrl: https://docs.airbyte.com/integrations/sources/github
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-gitlab/metadata.yaml b/airbyte-integrations/connectors/source-gitlab/metadata.yaml
new file mode 100644
index 000000000000..a24a64f8f937
--- /dev/null
+++ b/airbyte-integrations/connectors/source-gitlab/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - "*"
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 5e6175e5-68e1-4c17-bff9-56103bbb0d80
+ dockerImageTag: 1.0.3
+ dockerRepository: airbyte/source-gitlab
+ githubIssueLabel: source-gitlab
+ icon: gitlab.svg
+ license: MIT
+ name: Gitlab
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/gitlab
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-glassfrog/metadata.yaml b/airbyte-integrations/connectors/source-glassfrog/metadata.yaml
new file mode 100644
index 000000000000..26060f9beb8c
--- /dev/null
+++ b/airbyte-integrations/connectors/source-glassfrog/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: cf8ff320-6272-4faa-89e6-4402dc17e5d5
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-glassfrog
+ githubIssueLabel: source-glassfrog
+ icon: glassfrog.svg
+ license: MIT
+ name: Glassfrog
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/glassfrog
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-gnews/metadata.yaml b/airbyte-integrations/connectors/source-gnews/metadata.yaml
new file mode 100644
index 000000000000..ddc1141fb8eb
--- /dev/null
+++ b/airbyte-integrations/connectors/source-gnews/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: ce38aec4-5a77-439a-be29-9ca44fd4e811
+ dockerImageTag: 0.1.3
+ dockerRepository: airbyte/source-gnews
+ githubIssueLabel: source-gnews
+ icon: gnews.svg
+ license: MIT
+ name: GNews
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/gnews
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-gocardless/metadata.yaml b/airbyte-integrations/connectors/source-gocardless/metadata.yaml
new file mode 100644
index 000000000000..10d12e344974
--- /dev/null
+++ b/airbyte-integrations/connectors/source-gocardless/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: ba15ac82-5c6a-4fb2-bf24-925c23a1180c
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-gocardless
+ githubIssueLabel: source-gocardless
+ icon: gocardless.svg
+ license: MIT
+ name: GoCardless
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/gocardless
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-gong/metadata.yaml b/airbyte-integrations/connectors/source-gong/metadata.yaml
new file mode 100644
index 000000000000..a0c39502bf2b
--- /dev/null
+++ b/airbyte-integrations/connectors/source-gong/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 32382e40-3b49-4b99-9c5c-4076501914e7
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-gong
+ githubIssueLabel: source-gong
+ icon: gong.svg
+ license: MIT
+ name: Gong
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/gong
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-google-ads/metadata.yaml b/airbyte-integrations/connectors/source-google-ads/metadata.yaml
new file mode 100644
index 000000000000..d6688657fb4a
--- /dev/null
+++ b/airbyte-integrations/connectors/source-google-ads/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - accounts.google.com
+ - googleads.googleapis.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 253487c0-2246-43ba-a21f-5116b20a2c50
+ dockerImageTag: 0.2.13
+ dockerRepository: airbyte/source-google-ads
+ githubIssueLabel: source-google-ads
+ icon: google-adwords.svg
+ license: MIT
+ name: Google Ads
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/google-ads
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-google-analytics-data-api/metadata.yaml b/airbyte-integrations/connectors/source-google-analytics-data-api/metadata.yaml
new file mode 100644
index 000000000000..f43c5ad7d371
--- /dev/null
+++ b/airbyte-integrations/connectors/source-google-analytics-data-api/metadata.yaml
@@ -0,0 +1,23 @@
+data:
+ allowedHosts:
+ hosts:
+ - oauth2.googleapis.com
+ - www.googleapis.com
+ - analyticsdata.googleapis.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 3cc2eafd-84aa-4dca-93af-322d9dfeec1a
+ dockerImageTag: 0.1.3
+ dockerRepository: airbyte/source-google-analytics-data-api
+ githubIssueLabel: source-google-analytics-data-api
+ icon: google-analytics.svg
+ license: MIT
+ name: Google Analytics 4 (GA4)
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/google-analytics-data-api
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-google-analytics-v4/metadata.yaml b/airbyte-integrations/connectors/source-google-analytics-v4/metadata.yaml
new file mode 100644
index 000000000000..3323a6adfa68
--- /dev/null
+++ b/airbyte-integrations/connectors/source-google-analytics-v4/metadata.yaml
@@ -0,0 +1,24 @@
+data:
+ allowedHosts:
+ hosts:
+ - oauth2.googleapis.com
+ - www.googleapis.com
+ - analyticsdata.googleapis.com
+ - analyticsreporting.googleapis.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: eff3616a-f9c3-11eb-9a03-0242ac130003
+ dockerImageTag: 0.1.34
+ dockerRepository: airbyte/source-google-analytics-v4
+ githubIssueLabel: source-google-analytics-v4
+ icon: google-analytics.svg
+ license: MIT
+ name: Google Analytics (Universal Analytics)
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/google-analytics-v4
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-google-directory/metadata.yaml b/airbyte-integrations/connectors/source-google-directory/metadata.yaml
new file mode 100644
index 000000000000..52bf820b8576
--- /dev/null
+++ b/airbyte-integrations/connectors/source-google-directory/metadata.yaml
@@ -0,0 +1,19 @@
+data:
+ catalogs:
+ cloud:
+ dockerImageTag: 0.1.3
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: d19ae824-e289-4b14-995a-0632eb46d246
+ dockerImageTag: 0.1.9
+ dockerRepository: airbyte/source-google-directory
+ githubIssueLabel: source-google-directory
+ icon: googledirectory.svg
+ license: MIT
+ name: Google Directory
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/google-directory
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-google-pagespeed-insights/metadata.yaml b/airbyte-integrations/connectors/source-google-pagespeed-insights/metadata.yaml
new file mode 100644
index 000000000000..a8a01bc638b4
--- /dev/null
+++ b/airbyte-integrations/connectors/source-google-pagespeed-insights/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 1e9086ab-ddac-4c1d-aafd-ba43ff575fe4
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-google-pagespeed-insights
+ githubIssueLabel: source-google-pagespeed-insights
+ icon: google-pagespeed-insights.svg
+ license: MIT
+ name: Google PageSpeed Insights
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/google-pagespeed-insights
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-google-search-console/metadata.yaml b/airbyte-integrations/connectors/source-google-search-console/metadata.yaml
new file mode 100644
index 000000000000..d153eb576cbc
--- /dev/null
+++ b/airbyte-integrations/connectors/source-google-search-console/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - "*.googleapis.com"
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: eb4c9e00-db83-4d63-a386-39cfa91012a8
+ dockerImageTag: 0.1.22
+ dockerRepository: airbyte/source-google-search-console
+ githubIssueLabel: source-google-search-console
+ icon: googlesearchconsole.svg
+ license: MIT
+ name: Google Search Console
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/google-search-console
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-google-sheets/metadata.yaml b/airbyte-integrations/connectors/source-google-sheets/metadata.yaml
new file mode 100644
index 000000000000..e317f73b1f66
--- /dev/null
+++ b/airbyte-integrations/connectors/source-google-sheets/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - "*.googleapis.com"
+ catalogs:
+ cloud:
+ dockerImageTag: 0.2.21
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: file
+ connectorType: source
+ definitionId: 71607ba1-c0ac-4799-8049-7f4b90dd50f7
+ dockerImageTag: 0.2.37
+ dockerRepository: airbyte/source-google-sheets
+ githubIssueLabel: source-google-sheets
+ icon: google-sheets.svg
+ license: MIT
+ name: Google Sheets
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/google-sheets
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-google-webfonts/metadata.yaml b/airbyte-integrations/connectors/source-google-webfonts/metadata.yaml
new file mode 100644
index 000000000000..51f7236b088b
--- /dev/null
+++ b/airbyte-integrations/connectors/source-google-webfonts/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: a68fbcde-b465-4ab3-b2a6-b0590a875835
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-google-webfonts
+ githubIssueLabel: source-google-webfonts
+ icon: googleworkpace.svg
+ license: MIT
+ name: Google Webfonts
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/google-webfonts
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-google-workspace-admin-reports/metadata.yaml b/airbyte-integrations/connectors/source-google-workspace-admin-reports/metadata.yaml
new file mode 100644
index 000000000000..5b4879fd430e
--- /dev/null
+++ b/airbyte-integrations/connectors/source-google-workspace-admin-reports/metadata.yaml
@@ -0,0 +1,19 @@
+data:
+ catalogs:
+ cloud:
+ dockerImageTag: 0.1.4
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: ed9dfefa-1bbc-419d-8c5e-4d78f0ef6734
+ dockerImageTag: 0.1.8
+ dockerRepository: airbyte/source-google-workspace-admin-reports
+ githubIssueLabel: source-google-workspace-admin-reports
+ icon: googleworkpace.svg
+ license: MIT
+ name: Google Workspace Admin Reports
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/google-workspace-admin-reports
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-greenhouse/metadata.yaml b/airbyte-integrations/connectors/source-greenhouse/metadata.yaml
new file mode 100644
index 000000000000..c1fc419327cc
--- /dev/null
+++ b/airbyte-integrations/connectors/source-greenhouse/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - harvest.greenhouse.io
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 59f1e50a-331f-4f09-b3e8-2e8d4d355f44
+ dockerImageTag: 0.3.1
+ dockerRepository: airbyte/source-greenhouse
+ githubIssueLabel: source-greenhouse
+ icon: greenhouse.svg
+ license: MIT
+ name: Greenhouse
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/greenhouse
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-gridly/metadata.yaml b/airbyte-integrations/connectors/source-gridly/metadata.yaml
new file mode 100644
index 000000000000..858496e1dc5c
--- /dev/null
+++ b/airbyte-integrations/connectors/source-gridly/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 6cbea164-3237-433b-9abb-36d384ee4cbf
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-gridly
+ githubIssueLabel: source-gridly
+ icon: gridly.svg
+ license: MIT
+ name: Gridly
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/gridly
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-gutendex/metadata.yaml b/airbyte-integrations/connectors/source-gutendex/metadata.yaml
new file mode 100644
index 000000000000..7fcc0095f781
--- /dev/null
+++ b/airbyte-integrations/connectors/source-gutendex/metadata.yaml
@@ -0,0 +1,17 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: bff9a277-e01d-420d-81ee-80f28a307318
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-gutendex
+ githubIssueLabel: source-gutendex
+ license: MIT
+ name: Gutendex
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/gutendex
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-harvest/metadata.yaml b/airbyte-integrations/connectors/source-harvest/metadata.yaml
new file mode 100644
index 000000000000..ddca541ba001
--- /dev/null
+++ b/airbyte-integrations/connectors/source-harvest/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.harvestapp.com
+ catalogs:
+ cloud:
+ dockerImageTag: 0.1.16
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: fe2b4084-3386-4d3b-9ad6-308f61a6f1e6
+ dockerImageTag: 0.1.17
+ dockerRepository: airbyte/source-harvest
+ githubIssueLabel: source-harvest
+ icon: harvest.svg
+ license: MIT
+ name: Harvest
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/harvest
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-hellobaton/metadata.yaml b/airbyte-integrations/connectors/source-hellobaton/metadata.yaml
new file mode 100644
index 000000000000..06419e5c6c43
--- /dev/null
+++ b/airbyte-integrations/connectors/source-hellobaton/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 492b56d1-937c-462e-8076-21ad2031e784
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-hellobaton
+ githubIssueLabel: source-hellobaton
+ icon: hellobaton.svg
+ license: MIT
+ name: Hellobaton
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/hellobaton
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-hubplanner/metadata.yaml b/airbyte-integrations/connectors/source-hubplanner/metadata.yaml
new file mode 100644
index 000000000000..9a68324e29b8
--- /dev/null
+++ b/airbyte-integrations/connectors/source-hubplanner/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 8097ceb9-383f-42f6-9f92-d3fd4bcc7689
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-hubplanner
+ githubIssueLabel: source-hubplanner
+ icon: hubplanner.svg
+ license: MIT
+ name: Hubplanner
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/hubplanner
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-hubspot/metadata.yaml b/airbyte-integrations/connectors/source-hubspot/metadata.yaml
new file mode 100644
index 000000000000..5a6ad1bfae5b
--- /dev/null
+++ b/airbyte-integrations/connectors/source-hubspot/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.hubapi.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 36c891d9-4bd9-43ac-bad2-10e12756272c
+ dockerImageTag: 0.4.0
+ dockerRepository: airbyte/source-hubspot
+ githubIssueLabel: source-hubspot
+ icon: hubspot.svg
+ license: MIT
+ name: HubSpot
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/hubspot
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-insightly/metadata.yaml b/airbyte-integrations/connectors/source-insightly/metadata.yaml
new file mode 100644
index 000000000000..d0a4dc9b44e7
--- /dev/null
+++ b/airbyte-integrations/connectors/source-insightly/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 38f84314-fe6a-4257-97be-a8dcd942d693
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-insightly
+ githubIssueLabel: source-insightly
+ icon: insightly.svg
+ license: MIT
+ name: Insightly
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/insightly
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-instagram/metadata.yaml b/airbyte-integrations/connectors/source-instagram/metadata.yaml
new file mode 100644
index 000000000000..1cdfd79840a8
--- /dev/null
+++ b/airbyte-integrations/connectors/source-instagram/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - graph.facebook.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 6acf6b55-4f1e-4fca-944e-1a3caef8aba8
+ dockerImageTag: 1.0.5
+ dockerRepository: airbyte/source-instagram
+ githubIssueLabel: source-instagram
+ icon: instagram.svg
+ license: MIT
+ name: Instagram
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/instagram
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-instatus/metadata.yaml b/airbyte-integrations/connectors/source-instatus/metadata.yaml
new file mode 100644
index 000000000000..bf24e3a9c3fa
--- /dev/null
+++ b/airbyte-integrations/connectors/source-instatus/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 1901024c-0249-45d0-bcac-31a954652927
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-instatus
+ githubIssueLabel: source-instatus
+ icon: instatus.svg
+ license: MIT
+ name: Instatus
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/instatus
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-intercom/metadata.yaml b/airbyte-integrations/connectors/source-intercom/metadata.yaml
new file mode 100644
index 000000000000..8ca75a32533d
--- /dev/null
+++ b/airbyte-integrations/connectors/source-intercom/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.intercom.io
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: d8313939-3782-41b0-be29-b3ca20d8dd3a
+ dockerImageTag: 0.2.0
+ dockerRepository: airbyte/source-intercom
+ githubIssueLabel: source-intercom
+ icon: intercom.svg
+ license: MIT
+ name: Intercom
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/intercom
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-intruder/metadata.yaml b/airbyte-integrations/connectors/source-intruder/metadata.yaml
new file mode 100644
index 000000000000..03af0a118161
--- /dev/null
+++ b/airbyte-integrations/connectors/source-intruder/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 3d15163b-11d8-412f-b808-795c9b2c3a3a
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-intruder
+ githubIssueLabel: source-intruder
+ icon: intruder.svg
+ license: MIT
+ name: Intruder
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/intruder
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-ip2whois/metadata.yaml b/airbyte-integrations/connectors/source-ip2whois/metadata.yaml
new file mode 100644
index 000000000000..d293f8f8bf11
--- /dev/null
+++ b/airbyte-integrations/connectors/source-ip2whois/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: f23b7b7c-d705-49a3-9042-09add3b104a5
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-ip2whois
+ githubIssueLabel: source-ip2whois
+ icon: ip2whois.svg
+ license: MIT
+ name: IP2Whois
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/ip2whois
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-iterable/metadata.yaml b/airbyte-integrations/connectors/source-iterable/metadata.yaml
new file mode 100644
index 000000000000..ed811a6af81d
--- /dev/null
+++ b/airbyte-integrations/connectors/source-iterable/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.iterable.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 2e875208-0c0b-4ee4-9e92-1cb3156ea799
+ dockerImageTag: 0.1.26
+ dockerRepository: airbyte/source-iterable
+ githubIssueLabel: source-iterable
+ icon: iterable.svg
+ license: MIT
+ name: Iterable
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/iterable
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-jira/metadata.yaml b/airbyte-integrations/connectors/source-jira/metadata.yaml
new file mode 100644
index 000000000000..e11e4d4203f4
--- /dev/null
+++ b/airbyte-integrations/connectors/source-jira/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${domain}
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 68e63de2-bb83-4c7e-93fa-a8a9051e3993
+ dockerImageTag: 0.3.4
+ dockerRepository: airbyte/source-jira
+ githubIssueLabel: source-jira
+ icon: jira.svg
+ license: MIT
+ name: Jira
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/jira
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-k6-cloud/metadata.yaml b/airbyte-integrations/connectors/source-k6-cloud/metadata.yaml
new file mode 100644
index 000000000000..d68c06626d83
--- /dev/null
+++ b/airbyte-integrations/connectors/source-k6-cloud/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: e300ece7-b073-43a3-852e-8aff36a57f13
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-k6-cloud
+ githubIssueLabel: source-k6-cloud
+ icon: k6cloud.svg
+ license: MIT
+ name: K6 Cloud
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/k6-cloud
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-kafka/metadata.yaml b/airbyte-integrations/connectors/source-kafka/metadata.yaml
new file mode 100644
index 000000000000..d9810eaecaef
--- /dev/null
+++ b/airbyte-integrations/connectors/source-kafka/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: source
+ definitionId: d917a47b-8537-4d0d-8c10-36a9928d4265
+ dockerImageTag: 0.2.3
+ dockerRepository: airbyte/source-kafka
+ githubIssueLabel: source-kafka
+ icon: kafka.svg
+ license: MIT
+ name: Kafka
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/kafka
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-klarna/metadata.yaml b/airbyte-integrations/connectors/source-klarna/metadata.yaml
new file mode 100644
index 000000000000..816471f2dc9a
--- /dev/null
+++ b/airbyte-integrations/connectors/source-klarna/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 60c24725-00ae-490c-991d-55b78c3197e0
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-klarna
+ githubIssueLabel: source-klarna
+ icon: klarna.svg
+ license: MIT
+ name: Klarna
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/klarna
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-klaviyo/metadata.yaml b/airbyte-integrations/connectors/source-klaviyo/metadata.yaml
new file mode 100644
index 000000000000..f756b0a20724
--- /dev/null
+++ b/airbyte-integrations/connectors/source-klaviyo/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - a.klaviyo.com
+ - klaviyo.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 95e8cffd-b8c4-4039-968e-d32fb4a69bde
+ dockerImageTag: 0.3.0
+ dockerRepository: airbyte/source-klaviyo
+ githubIssueLabel: source-klaviyo
+ icon: klaviyo.svg
+ license: MIT
+ name: Klaviyo
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/klaviyo
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-kustomer-singer/metadata.yaml b/airbyte-integrations/connectors/source-kustomer-singer/metadata.yaml
new file mode 100644
index 000000000000..e0fe7f1d643e
--- /dev/null
+++ b/airbyte-integrations/connectors/source-kustomer-singer/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: cd06e646-31bf-4dc8-af48-cbc6530fcad3
+ dockerImageTag: 0.1.2
+ dockerRepository: airbyte/source-kustomer-singer
+ githubIssueLabel: source-kustomer-singer
+ icon: kustomer.svg
+ license: MIT
+ name: Kustomer
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/kustomer
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-kyriba/metadata.yaml b/airbyte-integrations/connectors/source-kyriba/metadata.yaml
new file mode 100644
index 000000000000..a69b35690a87
--- /dev/null
+++ b/airbyte-integrations/connectors/source-kyriba/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 547dc08e-ab51-421d-953b-8f3745201a8c
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-kyriba
+ githubIssueLabel: source-kyriba
+ icon: kyriba.svg
+ license: MIT
+ name: Kyriba
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/kyriba
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-launchdarkly/metadata.yaml b/airbyte-integrations/connectors/source-launchdarkly/metadata.yaml
new file mode 100644
index 000000000000..88ce16548d58
--- /dev/null
+++ b/airbyte-integrations/connectors/source-launchdarkly/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: f96bb511-5e3c-48fc-b408-547953cd81a4
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-launchdarkly
+ githubIssueLabel: source-launchdarkly
+ icon: launchdarkly.svg
+ license: MIT
+ name: LaunchDarkly
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/launchdarkly
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-lemlist/metadata.yaml b/airbyte-integrations/connectors/source-lemlist/metadata.yaml
new file mode 100644
index 000000000000..89d2c0db27eb
--- /dev/null
+++ b/airbyte-integrations/connectors/source-lemlist/metadata.yaml
@@ -0,0 +1,17 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 789f8e7a-2d28-11ec-8d3d-0242ac130003
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-lemlist
+ githubIssueLabel: source-lemlist
+ license: MIT
+ name: Lemlist
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/lemlist
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-lever-hiring/metadata.yaml b/airbyte-integrations/connectors/source-lever-hiring/metadata.yaml
new file mode 100644
index 000000000000..b89b232039cd
--- /dev/null
+++ b/airbyte-integrations/connectors/source-lever-hiring/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 3981c999-bd7d-4afc-849b-e53dea90c948
+ dockerImageTag: 0.1.3
+ dockerRepository: airbyte/source-lever-hiring
+ githubIssueLabel: source-lever-hiring
+ icon: leverhiring.svg
+ license: MIT
+ name: Lever Hiring
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/lever-hiring
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-linkedin-ads/metadata.yaml b/airbyte-integrations/connectors/source-linkedin-ads/metadata.yaml
new file mode 100644
index 000000000000..62de5e393d1c
--- /dev/null
+++ b/airbyte-integrations/connectors/source-linkedin-ads/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.linkedin.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 137ece28-5434-455c-8f34-69dc3782f451
+ dockerImageTag: 0.1.15
+ dockerRepository: airbyte/source-linkedin-ads
+ githubIssueLabel: source-linkedin-ads
+ icon: linkedin.svg
+ license: MIT
+ name: LinkedIn Ads
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/linkedin-ads
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-linkedin-pages/metadata.yaml b/airbyte-integrations/connectors/source-linkedin-pages/metadata.yaml
new file mode 100644
index 000000000000..5d1a25ec674b
--- /dev/null
+++ b/airbyte-integrations/connectors/source-linkedin-pages/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: af54297c-e8f8-4d63-a00d-a94695acc9d3
+ dockerImageTag: 1.0.1
+ dockerRepository: airbyte/source-linkedin-pages
+ githubIssueLabel: source-linkedin-pages
+ icon: linkedin.svg
+ license: MIT
+ name: LinkedIn Pages
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/linkedin-pages
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-linnworks/metadata.yaml b/airbyte-integrations/connectors/source-linnworks/metadata.yaml
new file mode 100644
index 000000000000..53d7dc4b505c
--- /dev/null
+++ b/airbyte-integrations/connectors/source-linnworks/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 7b86879e-26c5-4ef6-a5ce-2be5c7b46d1e
+ dockerImageTag: 0.1.5
+ dockerRepository: airbyte/source-linnworks
+ githubIssueLabel: source-linnworks
+ icon: linnworks.svg
+ license: MIT
+ name: Linnworks
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/linnworks
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-lokalise/metadata.yaml b/airbyte-integrations/connectors/source-lokalise/metadata.yaml
new file mode 100644
index 000000000000..b8f1b1169815
--- /dev/null
+++ b/airbyte-integrations/connectors/source-lokalise/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 45e0b135-615c-40ac-b38e-e65b0944197f
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-lokalise
+ githubIssueLabel: source-lokalise
+ icon: lokalise.svg
+ license: MIT
+ name: Lokalise
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/lokalise
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-looker/metadata.yaml b/airbyte-integrations/connectors/source-looker/metadata.yaml
new file mode 100644
index 000000000000..8d28c1a5e000
--- /dev/null
+++ b/airbyte-integrations/connectors/source-looker/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 00405b19-9768-4e0c-b1ae-9fc2ee2b2a8c
+ dockerImageTag: 0.2.8
+ dockerRepository: airbyte/source-looker
+ githubIssueLabel: source-looker
+ icon: looker.svg
+ license: MIT
+ name: Looker
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/looker
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-mailchimp/metadata.yaml b/airbyte-integrations/connectors/source-mailchimp/metadata.yaml
new file mode 100644
index 000000000000..2bd773678975
--- /dev/null
+++ b/airbyte-integrations/connectors/source-mailchimp/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - "*.api.mailchimp.com"
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: b03a9f3e-22a5-11eb-adc1-0242ac120002
+ dockerImageTag: 0.3.5
+ dockerRepository: airbyte/source-mailchimp
+ githubIssueLabel: source-mailchimp
+ icon: mailchimp.svg
+ license: MIT
+ name: Mailchimp
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/mailchimp
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-mailerlite/metadata.yaml b/airbyte-integrations/connectors/source-mailerlite/metadata.yaml
new file mode 100644
index 000000000000..97923842dd29
--- /dev/null
+++ b/airbyte-integrations/connectors/source-mailerlite/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: dc3b9003-2432-4e93-a7f4-4620b0f14674
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-mailerlite
+ githubIssueLabel: source-mailerlite
+ icon: mailerlite.svg
+ license: MIT
+ name: MailerLite
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/mailerlite
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-mailersend/metadata.yaml b/airbyte-integrations/connectors/source-mailersend/metadata.yaml
new file mode 100644
index 000000000000..1fd46e221c58
--- /dev/null
+++ b/airbyte-integrations/connectors/source-mailersend/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 2707d529-3c04-46eb-9c7e-40d4038df6f7
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-mailersend
+ githubIssueLabel: source-mailersend
+ icon: mailersend.svg
+ license: MIT
+ name: MailerSend
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/mailersend
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-mailgun/metadata.yaml b/airbyte-integrations/connectors/source-mailgun/metadata.yaml
new file mode 100644
index 000000000000..74f84d367dc6
--- /dev/null
+++ b/airbyte-integrations/connectors/source-mailgun/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 5b9cb09e-1003-4f9c-983d-5779d1b2cd51
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-mailgun
+ githubIssueLabel: source-mailgun
+ icon: mailgun.svg
+ license: MIT
+ name: Mailgun
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/mailgun
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-mailjet-mail/metadata.yaml b/airbyte-integrations/connectors/source-mailjet-mail/metadata.yaml
new file mode 100644
index 000000000000..80cc33a3f38c
--- /dev/null
+++ b/airbyte-integrations/connectors/source-mailjet-mail/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 56582331-5de2-476b-b913-5798de77bbdf
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-mailjet-mail
+ githubIssueLabel: source-mailjet-mail
+ icon: mailjetmail.svg
+ license: MIT
+ name: Mailjet Mail
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/mailjet-mail
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-mailjet-sms/metadata.yaml b/airbyte-integrations/connectors/source-mailjet-sms/metadata.yaml
new file mode 100644
index 000000000000..9f19918fb8f1
--- /dev/null
+++ b/airbyte-integrations/connectors/source-mailjet-sms/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 6ec2acea-7fd1-4378-b403-41a666e0c028
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-mailjet-sms
+ githubIssueLabel: source-mailjet-sms
+ icon: mailjetsms.svg
+ license: MIT
+ name: Mailjet SMS
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/mailjet-sms
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-marketo/metadata.yaml b/airbyte-integrations/connectors/source-marketo/metadata.yaml
new file mode 100644
index 000000000000..17895ff69566
--- /dev/null
+++ b/airbyte-integrations/connectors/source-marketo/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - "*.mktorest.com"
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 9e0556f4-69df-4522-a3fb-03264d36b348
+ dockerImageTag: 1.0.2
+ dockerRepository: airbyte/source-marketo
+ githubIssueLabel: source-marketo
+ icon: marketo.svg
+ license: MIT
+ name: Marketo
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/marketo
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-metabase/metadata.yaml b/airbyte-integrations/connectors/source-metabase/metadata.yaml
new file mode 100644
index 000000000000..5797823f8489
--- /dev/null
+++ b/airbyte-integrations/connectors/source-metabase/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: c7cb421b-942e-4468-99ee-e369bcabaec5
+ dockerImageTag: 0.3.1
+ dockerRepository: airbyte/source-metabase
+ githubIssueLabel: source-metabase
+ icon: metabase.svg
+ license: MIT
+ name: Metabase
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/metabase
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-microsoft-dataverse/metadata.yaml b/airbyte-integrations/connectors/source-microsoft-dataverse/metadata.yaml
new file mode 100644
index 000000000000..80d4f0f518b1
--- /dev/null
+++ b/airbyte-integrations/connectors/source-microsoft-dataverse/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 9220e3de-3b60-4bb2-a46f-046d59ea235a
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-microsoft-dataverse
+ githubIssueLabel: source-microsoft-dataverse
+ icon: microsoftdataverse.svg
+ license: MIT
+ name: Microsoft Dataverse
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/microsoft-dataverse
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-microsoft-teams/metadata.yaml b/airbyte-integrations/connectors/source-microsoft-teams/metadata.yaml
new file mode 100644
index 000000000000..06c11b79c762
--- /dev/null
+++ b/airbyte-integrations/connectors/source-microsoft-teams/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: eaf50f04-21dd-4620-913b-2a83f5635227
+ dockerImageTag: 0.2.5
+ dockerRepository: airbyte/source-microsoft-teams
+ githubIssueLabel: source-microsoft-teams
+ icon: microsoft-teams.svg
+ license: MIT
+ name: Microsoft teams
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/microsoft-teams
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-mixpanel/metadata.yaml b/airbyte-integrations/connectors/source-mixpanel/metadata.yaml
new file mode 100644
index 000000000000..f8b86c512542
--- /dev/null
+++ b/airbyte-integrations/connectors/source-mixpanel/metadata.yaml
@@ -0,0 +1,23 @@
+data:
+ allowedHosts:
+ hosts:
+ - mixpanel.com
+ - eu.mixpanel.com
+ catalogs:
+ cloud:
+ dockerImageTag: 0.1.30
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 12928b32-bf0a-4f1e-964f-07e12e37153a
+ dockerImageTag: 0.1.31
+ dockerRepository: airbyte/source-mixpanel
+ githubIssueLabel: source-mixpanel
+ icon: mixpanel.svg
+ license: MIT
+ name: Mixpanel
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/mixpanel
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-monday/metadata.yaml b/airbyte-integrations/connectors/source-monday/metadata.yaml
new file mode 100644
index 000000000000..4cca756180b7
--- /dev/null
+++ b/airbyte-integrations/connectors/source-monday/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.monday.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 80a54ea2-9959-4040-aac1-eee42423ec9b
+ dockerImageTag: 0.2.3
+ dockerRepository: airbyte/source-monday
+ githubIssueLabel: source-monday
+ icon: monday.svg
+ license: MIT
+ name: Monday
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/monday
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-mongodb-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/source-mongodb-strict-encrypt/metadata.yaml
new file mode 100644
index 000000000000..97e4a25668e0
--- /dev/null
+++ b/airbyte-integrations/connectors/source-mongodb-strict-encrypt/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false # strict encrypt connectors are deployed to Cloud by their non strict encrypt sibling.
+ oss:
+ enabled: false # strict encrypt connectors are not used on OSS.
+ connectorSubtype: database
+ connectorType: source
+ definitionId: b2e713cd-cc36-4c0a-b5bd-b47cb8a0561e
+ dockerImageTag: 0.1.19
+ dockerRepository: airbyte/source-mongodb-v2
+ githubIssueLabel: source-mongodb-v2
+ icon: mongodb.svg
+ license: MIT
+ name: MongoDb
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/mongodb-v2
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-mongodb-v2/metadata.yaml b/airbyte-integrations/connectors/source-mongodb-v2/metadata.yaml
new file mode 100644
index 000000000000..5f91c09a5209
--- /dev/null
+++ b/airbyte-integrations/connectors/source-mongodb-v2/metadata.yaml
@@ -0,0 +1,20 @@
+data:
+ catalogs:
+ cloud:
+ dockerImageTag: 0.1.7
+ dockerRepository: airbyte/source-mongodb-strict-encrypt
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: source
+ definitionId: b2e713cd-cc36-4c0a-b5bd-b47cb8a0561e
+ dockerImageTag: 0.1.19
+ dockerRepository: airbyte/source-mongodb-v2
+ githubIssueLabel: source-mongodb-v2
+ icon: mongodb.svg
+ license: MIT
+ name: MongoDb
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/mongodb-v2
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-mssql-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/source-mssql-strict-encrypt/metadata.yaml
new file mode 100644
index 000000000000..74124fa7612a
--- /dev/null
+++ b/airbyte-integrations/connectors/source-mssql-strict-encrypt/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${host}
+ - ${tunnel_method.tunnel_host}
+ catalogs:
+ cloud:
+ enabled: false # strict encrypt connectors are deployed to Cloud by their non strict encrypt sibling.
+ oss:
+ enabled: false # strict encrypt connectors are not used on OSS.
+ connectorSubtype: database
+ connectorType: source
+ definitionId: b5ea17b1-f170-46dc-bc31-cc744ca984c1
+ dockerImageTag: 1.0.9
+ dockerRepository: airbyte/source-mssql
+ githubIssueLabel: source-mssql
+ icon: mssql.svg
+ license: MIT
+ name: Microsoft SQL Server (MSSQL)
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/mssql
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-mssql/metadata.yaml b/airbyte-integrations/connectors/source-mssql/metadata.yaml
new file mode 100644
index 000000000000..723d7c390be8
--- /dev/null
+++ b/airbyte-integrations/connectors/source-mssql/metadata.yaml
@@ -0,0 +1,23 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${host}
+ - ${tunnel_method.tunnel_host}
+ catalogs:
+ cloud:
+ dockerRepository: airbyte/source-mssql-strict-encrypt
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: source
+ definitionId: b5ea17b1-f170-46dc-bc31-cc744ca984c1
+ dockerImageTag: 1.0.9
+ dockerRepository: airbyte/source-mssql
+ githubIssueLabel: source-mssql
+ icon: mssql.svg
+ license: MIT
+ name: Microsoft SQL Server (MSSQL)
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/mssql
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-my-hours/metadata.yaml b/airbyte-integrations/connectors/source-my-hours/metadata.yaml
new file mode 100644
index 000000000000..182e1986cce6
--- /dev/null
+++ b/airbyte-integrations/connectors/source-my-hours/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 722ba4bf-06ec-45a4-8dd5-72e4a5cf3903
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-my-hours
+ githubIssueLabel: source-my-hours
+ icon: my-hours.svg
+ license: MIT
+ name: My Hours
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/my-hours
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-mysql-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/source-mysql-strict-encrypt/metadata.yaml
new file mode 100644
index 000000000000..ff9449af3c1e
--- /dev/null
+++ b/airbyte-integrations/connectors/source-mysql-strict-encrypt/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${host}
+ - ${tunnel_method.tunnel_host}
+ catalogs:
+ cloud:
+ enabled: false # strict encrypt connectors are deployed to Cloud by their non strict encrypt sibling.
+ oss:
+ enabled: false # strict encrypt connectors are not used on OSS.
+ connectorSubtype: database
+ connectorType: source
+ definitionId: 435bb9a5-7887-4809-aa58-28c27df0d7ad
+ dockerImageTag: 2.0.12
+ dockerRepository: airbyte/source-mysql
+ githubIssueLabel: source-mysql
+ icon: mysql.svg
+ license: MIT
+ name: MySQL
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/mysql
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-mysql/metadata.yaml b/airbyte-integrations/connectors/source-mysql/metadata.yaml
new file mode 100644
index 000000000000..27e9e222c3fb
--- /dev/null
+++ b/airbyte-integrations/connectors/source-mysql/metadata.yaml
@@ -0,0 +1,23 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${host}
+ - ${tunnel_method.tunnel_host}
+ catalogs:
+ cloud:
+ dockerRepository: airbyte/source-mysql-strict-encrypt
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: source
+ definitionId: 435bb9a5-7887-4809-aa58-28c27df0d7ad
+ dockerImageTag: 2.0.12
+ dockerRepository: airbyte/source-mysql
+ githubIssueLabel: source-mysql
+ icon: mysql.svg
+ license: MIT
+ name: MySQL
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/mysql
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-n8n/metadata.yaml b/airbyte-integrations/connectors/source-n8n/metadata.yaml
new file mode 100644
index 000000000000..97619f6f91ac
--- /dev/null
+++ b/airbyte-integrations/connectors/source-n8n/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 4a961f66-5e99-4430-8320-a73afe52f7a2
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-n8n
+ githubIssueLabel: source-n8n
+ icon: n8n.svg
+ license: MIT
+ name: n8n
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/n8n
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-nasa/metadata.yaml b/airbyte-integrations/connectors/source-nasa/metadata.yaml
new file mode 100644
index 000000000000..5370ce4bc64a
--- /dev/null
+++ b/airbyte-integrations/connectors/source-nasa/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.nasa.gov
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 1a8667d7-7978-43cd-ba4d-d32cbd478971
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-nasa
+ githubIssueLabel: source-nasa
+ icon: nasa.svg
+ license: MIT
+ name: NASA
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/nasa
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-netsuite/metadata.yaml b/airbyte-integrations/connectors/source-netsuite/metadata.yaml
new file mode 100644
index 000000000000..a826571f65c2
--- /dev/null
+++ b/airbyte-integrations/connectors/source-netsuite/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 4f2f093d-ce44-4121-8118-9d13b7bfccd0
+ dockerImageTag: 0.1.3
+ dockerRepository: airbyte/source-netsuite
+ githubIssueLabel: source-netsuite
+ icon: netsuite.svg
+ license: MIT
+ name: Netsuite
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/netsuite
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-news-api/metadata.yaml b/airbyte-integrations/connectors/source-news-api/metadata.yaml
new file mode 100644
index 000000000000..9c8971f9dac7
--- /dev/null
+++ b/airbyte-integrations/connectors/source-news-api/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: df38991e-f35b-4af2-996d-36817f614587
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-news-api
+ githubIssueLabel: source-news-api
+ icon: newsapi.svg
+ license: MIT
+ name: News API
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/news-api
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-newsdata/metadata.yaml b/airbyte-integrations/connectors/source-newsdata/metadata.yaml
new file mode 100644
index 000000000000..94e1b153287e
--- /dev/null
+++ b/airbyte-integrations/connectors/source-newsdata/metadata.yaml
@@ -0,0 +1,17 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 60bd11d8-2632-4daa-a688-b47336d32093
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-newsdata
+ githubIssueLabel: source-newsdata
+ license: MIT
+ name: Newsdata
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/newsdata
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-notion/metadata.yaml b/airbyte-integrations/connectors/source-notion/metadata.yaml
new file mode 100644
index 000000000000..7ac9914b4f34
--- /dev/null
+++ b/airbyte-integrations/connectors/source-notion/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.notion.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 6e00b415-b02e-4160-bf02-58176a0ae687
+ dockerImageTag: 1.0.3
+ dockerRepository: airbyte/source-notion
+ githubIssueLabel: source-notion
+ icon: notion.svg
+ license: MIT
+ name: Notion
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/notion
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-nytimes/metadata.yaml b/airbyte-integrations/connectors/source-nytimes/metadata.yaml
new file mode 100644
index 000000000000..b0969f166eff
--- /dev/null
+++ b/airbyte-integrations/connectors/source-nytimes/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 0fae6a9a-04eb-44d4-96e1-e02d3dbc1d83
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-nytimes
+ githubIssueLabel: source-nytimes
+ icon: nytimes.svg
+ license: MIT
+ name: New York Times
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/nytimes
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-okta/metadata.yaml b/airbyte-integrations/connectors/source-okta/metadata.yaml
new file mode 100644
index 000000000000..4d05e48acf20
--- /dev/null
+++ b/airbyte-integrations/connectors/source-okta/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 1d4fdb25-64fc-4569-92da-fcdca79a8372
+ dockerImageTag: 0.1.14
+ dockerRepository: airbyte/source-okta
+ githubIssueLabel: source-okta
+ icon: okta.svg
+ license: MIT
+ name: Okta
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/okta
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-omnisend/metadata.yaml b/airbyte-integrations/connectors/source-omnisend/metadata.yaml
new file mode 100644
index 000000000000..11bdbda33e99
--- /dev/null
+++ b/airbyte-integrations/connectors/source-omnisend/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: e7f0c5e2-4815-48c4-90cf-f47124209835
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-omnisend
+ githubIssueLabel: source-omnisend
+ icon: omnisend.svg
+ license: MIT
+ name: Omnisend
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/omnisend
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-onesignal/metadata.yaml b/airbyte-integrations/connectors/source-onesignal/metadata.yaml
new file mode 100644
index 000000000000..04cb2f6016d4
--- /dev/null
+++ b/airbyte-integrations/connectors/source-onesignal/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: bb6afd81-87d5-47e3-97c4-e2c2901b1cf8
+ dockerImageTag: 1.0.0
+ dockerRepository: airbyte/source-onesignal
+ githubIssueLabel: source-onesignal
+ icon: onesignal.svg
+ license: MIT
+ name: OneSignal
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/onesignal
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-open-exchange-rates/metadata.yaml b/airbyte-integrations/connectors/source-open-exchange-rates/metadata.yaml
new file mode 100644
index 000000000000..9ea553e7d6d8
--- /dev/null
+++ b/airbyte-integrations/connectors/source-open-exchange-rates/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 77d5ca6b-d345-4dce-ba1e-1935a75778b8
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-open-exchange-rates
+ githubIssueLabel: source-open-exchange-rates
+ icon: airbyte.svg
+ license: MIT
+ name: Open Exchange Rates
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/open-exchange-rates
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-openweather/metadata.yaml b/airbyte-integrations/connectors/source-openweather/metadata.yaml
new file mode 100644
index 000000000000..349e2a2f2c95
--- /dev/null
+++ b/airbyte-integrations/connectors/source-openweather/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: d8540a80-6120-485d-b7d6-272bca477d9b
+ dockerImageTag: 0.1.6
+ dockerRepository: airbyte/source-openweather
+ githubIssueLabel: source-openweather
+ icon: openweather.svg
+ license: MIT
+ name: OpenWeather
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/openweather
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-opsgenie/metadata.yaml b/airbyte-integrations/connectors/source-opsgenie/metadata.yaml
new file mode 100644
index 000000000000..43668a85e166
--- /dev/null
+++ b/airbyte-integrations/connectors/source-opsgenie/metadata.yaml
@@ -0,0 +1,17 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 06bdb480-2598-40b8-8b0f-fc2e2d2abdda
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-opsgenie
+ githubIssueLabel: source-opsgenie
+ license: MIT
+ name: Opsgenie
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/opsgenie
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-oracle-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/source-oracle-strict-encrypt/metadata.yaml
new file mode 100644
index 000000000000..044d32c9061f
--- /dev/null
+++ b/airbyte-integrations/connectors/source-oracle-strict-encrypt/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${host}
+ - ${tunnel_method.tunnel_host}
+ catalogs:
+ cloud:
+ enabled: false # strict encrypt connectors are deployed to Cloud by their non strict encrypt sibling.
+ oss:
+ enabled: false # strict encrypt connectors are not used on OSS.
+ connectorSubtype: database
+ connectorType: source
+ definitionId: b39a7370-74c3-45a6-ac3a-380d48520a83
+ dockerImageTag: 0.3.24
+ dockerRepository: airbyte/source-oracle
+ githubIssueLabel: source-oracle
+ icon: oracle.svg
+ license: MIT
+ name: Oracle DB
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/oracle
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-oracle/metadata.yaml b/airbyte-integrations/connectors/source-oracle/metadata.yaml
new file mode 100644
index 000000000000..988eb7b72bba
--- /dev/null
+++ b/airbyte-integrations/connectors/source-oracle/metadata.yaml
@@ -0,0 +1,24 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${host}
+ - ${tunnel_method.tunnel_host}
+ catalogs:
+ cloud:
+ dockerImageTag: 0.3.17
+ dockerRepository: airbyte/source-oracle-strict-encrypt
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: source
+ definitionId: b39a7370-74c3-45a6-ac3a-380d48520a83
+ dockerImageTag: 0.3.24
+ dockerRepository: airbyte/source-oracle
+ githubIssueLabel: source-oracle
+ icon: oracle.svg
+ license: MIT
+ name: Oracle DB
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/oracle
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-orb/metadata.yaml b/airbyte-integrations/connectors/source-orb/metadata.yaml
new file mode 100644
index 000000000000..a3d8372ac8cd
--- /dev/null
+++ b/airbyte-integrations/connectors/source-orb/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 7f0455fb-4518-4ec0-b7a3-d808bf8081cc
+ dockerImageTag: 1.1.0
+ dockerRepository: airbyte/source-orb
+ githubIssueLabel: source-orb
+ icon: orb.svg
+ license: MIT
+ name: Orb
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/orb
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-orbit/metadata.yaml b/airbyte-integrations/connectors/source-orbit/metadata.yaml
new file mode 100644
index 000000000000..ce02fec308a5
--- /dev/null
+++ b/airbyte-integrations/connectors/source-orbit/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 95bcc041-1d1a-4c2e-8802-0ca5b1bfa36a
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-orbit
+ githubIssueLabel: source-orbit
+ icon: orbit.svg
+ license: MIT
+ name: Orbit
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/orbit
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-oura/metadata.yaml b/airbyte-integrations/connectors/source-oura/metadata.yaml
new file mode 100644
index 000000000000..a81501ac5cb3
--- /dev/null
+++ b/airbyte-integrations/connectors/source-oura/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 2bf6c581-bec5-4e32-891d-de33036bd631
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-oura
+ githubIssueLabel: source-oura
+ icon: oura.svg
+ license: MIT
+ name: Oura
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/oura
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-outreach/metadata.yaml b/airbyte-integrations/connectors/source-outreach/metadata.yaml
new file mode 100644
index 000000000000..da355541a58a
--- /dev/null
+++ b/airbyte-integrations/connectors/source-outreach/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 3490c201-5d95-4783-b600-eaf07a4c7787
+ dockerImageTag: 0.2.0
+ dockerRepository: airbyte/source-outreach
+ githubIssueLabel: source-outreach
+ icon: outreach.svg
+ license: MIT
+ name: Outreach
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/outreach
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-pardot/metadata.yaml b/airbyte-integrations/connectors/source-pardot/metadata.yaml
new file mode 100644
index 000000000000..72eb1e1461da
--- /dev/null
+++ b/airbyte-integrations/connectors/source-pardot/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: ad15c7ba-72a7-440b-af15-b9a963dc1a8a
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-pardot
+ githubIssueLabel: source-pardot
+ icon: salesforcepardot.svg
+ license: MIT
+ name: Pardot
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/pardot
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-partnerstack/metadata.yaml b/airbyte-integrations/connectors/source-partnerstack/metadata.yaml
new file mode 100644
index 000000000000..d68330d1869d
--- /dev/null
+++ b/airbyte-integrations/connectors/source-partnerstack/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: d30fb809-6456-484d-8e2c-ee12e0f6888d
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-partnerstack
+ githubIssueLabel: source-partnerstack
+ icon: partnerstack.svg
+ license: MIT
+ name: PartnerStack
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/partnerstack
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-paypal-transaction/metadata.yaml b/airbyte-integrations/connectors/source-paypal-transaction/metadata.yaml
new file mode 100644
index 000000000000..7c846c9c6dc1
--- /dev/null
+++ b/airbyte-integrations/connectors/source-paypal-transaction/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - api-m.paypal.com
+ - api-m.sandbox.paypal.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: d913b0f2-cc51-4e55-a44c-8ba1697b9239
+ dockerImageTag: 0.1.12
+ dockerRepository: airbyte/source-paypal-transaction
+ githubIssueLabel: source-paypal-transaction
+ icon: paypal.svg
+ license: MIT
+ name: Paypal Transaction
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/paypal-transaction
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-paystack/metadata.yaml b/airbyte-integrations/connectors/source-paystack/metadata.yaml
new file mode 100644
index 000000000000..17deb8ee6b53
--- /dev/null
+++ b/airbyte-integrations/connectors/source-paystack/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.paystack.co
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 193bdcb8-1dd9-48d1-aade-91cadfd74f9b
+ dockerImageTag: 0.1.3
+ dockerRepository: airbyte/source-paystack
+ githubIssueLabel: source-paystack
+ icon: paystack.svg
+ license: MIT
+ name: Paystack
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/paystack
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-pendo/metadata.yaml b/airbyte-integrations/connectors/source-pendo/metadata.yaml
new file mode 100644
index 000000000000..56e39761119d
--- /dev/null
+++ b/airbyte-integrations/connectors/source-pendo/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: b1ccb590-e84f-46c0-83a0-2048ccfffdae
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-pendo
+ githubIssueLabel: source-pendo
+ icon: pendo.svg
+ license: MIT
+ name: Pendo
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/pendo
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-persistiq/metadata.yaml b/airbyte-integrations/connectors/source-persistiq/metadata.yaml
new file mode 100644
index 000000000000..8aabd03b8fe5
--- /dev/null
+++ b/airbyte-integrations/connectors/source-persistiq/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 3052c77e-8b91-47e2-97a0-a29a22794b4b
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-persistiq
+ githubIssueLabel: source-persistiq
+ icon: persistiq.svg
+ license: MIT
+ name: PersistIq
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/persistiq
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-pexels-api/metadata.yaml b/airbyte-integrations/connectors/source-pexels-api/metadata.yaml
new file mode 100644
index 000000000000..5b64c4e4865d
--- /dev/null
+++ b/airbyte-integrations/connectors/source-pexels-api/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 69d9eb65-8026-47dc-baf1-e4bf67901fd6
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-pexels-api
+ githubIssueLabel: source-pexels-api
+ icon: pexels.svg
+ license: MIT
+ name: Pexels API
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/pexels-api
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-pinterest/metadata.yaml b/airbyte-integrations/connectors/source-pinterest/metadata.yaml
new file mode 100644
index 000000000000..953d3327ba12
--- /dev/null
+++ b/airbyte-integrations/connectors/source-pinterest/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.pinterest.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 5cb7e5fe-38c2-11ec-8d3d-0242ac130003
+ dockerImageTag: 0.2.4
+ dockerRepository: airbyte/source-pinterest
+ githubIssueLabel: source-pinterest
+ icon: pinterest.svg
+ license: MIT
+ name: Pinterest
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/pinterest
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-pipedrive/metadata.yaml b/airbyte-integrations/connectors/source-pipedrive/metadata.yaml
new file mode 100644
index 000000000000..836decaec4d4
--- /dev/null
+++ b/airbyte-integrations/connectors/source-pipedrive/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.pipedrive.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: d8286229-c680-4063-8c59-23b9b391c700
+ dockerImageTag: 0.1.17
+ dockerRepository: airbyte/source-pipedrive
+ githubIssueLabel: source-pipedrive
+ icon: pipedrive.svg
+ license: MIT
+ name: Pipedrive
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/pipedrive
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-pivotal-tracker/metadata.yaml b/airbyte-integrations/connectors/source-pivotal-tracker/metadata.yaml
new file mode 100644
index 000000000000..e780c47520cc
--- /dev/null
+++ b/airbyte-integrations/connectors/source-pivotal-tracker/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: d60f5393-f99e-4310-8d05-b1876820f40e
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-pivotal-tracker
+ githubIssueLabel: source-pivotal-tracker
+ icon: pivotal-tracker.svg
+ license: MIT
+ name: Pivotal Tracker
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/pivotal-tracker
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-plaid/metadata.yaml b/airbyte-integrations/connectors/source-plaid/metadata.yaml
new file mode 100644
index 000000000000..585cf1b5beef
--- /dev/null
+++ b/airbyte-integrations/connectors/source-plaid/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: ed799e2b-2158-4c66-8da4-b40fe63bc72a
+ dockerImageTag: 0.3.2
+ dockerRepository: airbyte/source-plaid
+ githubIssueLabel: source-plaid
+ icon: plaid.svg
+ license: MIT
+ name: Plaid
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/plaid
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-plausible/metadata.yaml b/airbyte-integrations/connectors/source-plausible/metadata.yaml
new file mode 100644
index 000000000000..051dfe70c2c7
--- /dev/null
+++ b/airbyte-integrations/connectors/source-plausible/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 603ba446-3d75-41d7-92f3-aba901f8b897
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-plausible
+ githubIssueLabel: source-plausible
+ icon: plausible.svg
+ license: MIT
+ name: Plausible
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/plausible
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-pocket/metadata.yaml b/airbyte-integrations/connectors/source-pocket/metadata.yaml
new file mode 100644
index 000000000000..3a27cdc2ae9c
--- /dev/null
+++ b/airbyte-integrations/connectors/source-pocket/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: b0dd65f1-081f-4731-9c51-38e9e6aa0ebf
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-pocket
+ githubIssueLabel: source-pocket
+ icon: pocket.svg
+ license: MIT
+ name: Pocket
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/pocket
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-pokeapi/metadata.yaml b/airbyte-integrations/connectors/source-pokeapi/metadata.yaml
new file mode 100644
index 000000000000..1626dc2b4b1d
--- /dev/null
+++ b/airbyte-integrations/connectors/source-pokeapi/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 6371b14b-bc68-4236-bfbd-468e8df8e968
+ dockerImageTag: 0.1.5
+ dockerRepository: airbyte/source-pokeapi
+ githubIssueLabel: source-pokeapi
+ icon: pokeapi.svg
+ license: MIT
+ name: PokeAPI
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/pokeapi
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-polygon-stock-api/metadata.yaml b/airbyte-integrations/connectors/source-polygon-stock-api/metadata.yaml
new file mode 100644
index 000000000000..47c00de25788
--- /dev/null
+++ b/airbyte-integrations/connectors/source-polygon-stock-api/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.polygon.io
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 5807d72f-0abc-49f9-8fa5-ae820007032b
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-polygon-stock-api
+ githubIssueLabel: source-polygon-stock-api
+ icon: polygon.svg
+ license: MIT
+ name: Polygon Stock API
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/polygon-stock-api
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-postgres-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/source-postgres-strict-encrypt/metadata.yaml
new file mode 100644
index 000000000000..6e8f3e134759
--- /dev/null
+++ b/airbyte-integrations/connectors/source-postgres-strict-encrypt/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${host}
+ - ${tunnel_method.tunnel_host}
+ catalogs:
+ cloud:
+ enabled: false # strict encrypt connectors are deployed to Cloud by their non strict encrypt sibling.
+ oss:
+ enabled: false # strict encrypt connectors are not used on OSS.
+ connectorSubtype: database
+ connectorType: source
+ definitionId: decd338e-5647-4c0b-adf4-da0e75f5a750
+ dockerImageTag: 2.0.17
+ dockerRepository: airbyte/source-postgres
+ githubIssueLabel: source-postgres
+ icon: postgresql.svg
+ license: MIT
+ name: Postgres
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/postgres
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-postgres/metadata.yaml b/airbyte-integrations/connectors/source-postgres/metadata.yaml
new file mode 100644
index 000000000000..e4152acbd3c9
--- /dev/null
+++ b/airbyte-integrations/connectors/source-postgres/metadata.yaml
@@ -0,0 +1,24 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${host}
+ - ${tunnel_method.tunnel_host}
+ catalogs:
+ cloud:
+ dockerImageTag: 2.0.16
+ dockerRepository: airbyte/source-postgres-strict-encrypt
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: source
+ definitionId: decd338e-5647-4c0b-adf4-da0e75f5a750
+ dockerImageTag: 2.0.17
+ dockerRepository: airbyte/source-postgres
+ githubIssueLabel: source-postgres
+ icon: postgresql.svg
+ license: MIT
+ name: Postgres
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/postgres
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-posthog/metadata.yaml b/airbyte-integrations/connectors/source-posthog/metadata.yaml
new file mode 100644
index 000000000000..fe2b647d0a59
--- /dev/null
+++ b/airbyte-integrations/connectors/source-posthog/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${base_url}
+ - app.posthog.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: af6d50ee-dddf-4126-a8ee-7faee990774f
+ dockerImageTag: 0.1.9
+ dockerRepository: airbyte/source-posthog
+ githubIssueLabel: source-posthog
+ icon: posthog.svg
+ license: MIT
+ name: PostHog
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/posthog
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-postmarkapp/metadata.yaml b/airbyte-integrations/connectors/source-postmarkapp/metadata.yaml
new file mode 100644
index 000000000000..0afdb60402a7
--- /dev/null
+++ b/airbyte-integrations/connectors/source-postmarkapp/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: cde75ca1-1e28-4a0f-85bb-90c546de9f1f
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-postmarkapp
+ githubIssueLabel: source-postmarkapp
+ icon: postmark.svg
+ license: MIT
+ name: Postmark App
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/postmarkapp
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-prestashop/metadata.yaml b/airbyte-integrations/connectors/source-prestashop/metadata.yaml
new file mode 100644
index 000000000000..7fc4b030efac
--- /dev/null
+++ b/airbyte-integrations/connectors/source-prestashop/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${domain}
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: d60a46d4-709f-4092-a6b7-2457f7d455f5
+ dockerImageTag: 0.3.1
+ dockerRepository: airbyte/source-prestashop
+ githubIssueLabel: source-prestashop
+ icon: prestashop.svg
+ license: MIT
+ name: PrestaShop
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/prestashop
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-primetric/metadata.yaml b/airbyte-integrations/connectors/source-primetric/metadata.yaml
new file mode 100644
index 000000000000..de35f2399dc3
--- /dev/null
+++ b/airbyte-integrations/connectors/source-primetric/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: f636c3c6-4077-45ac-b109-19fc62a283c1
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-primetric
+ githubIssueLabel: source-primetric
+ icon: primetric.svg
+ license: MIT
+ name: Primetric
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/primetric
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-public-apis/metadata.yaml b/airbyte-integrations/connectors/source-public-apis/metadata.yaml
new file mode 100644
index 000000000000..f792d88a4b56
--- /dev/null
+++ b/airbyte-integrations/connectors/source-public-apis/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: a4617b39-3c14-44cd-a2eb-6e720f269235
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-public-apis
+ githubIssueLabel: source-public-apis
+ icon: publicapi.svg
+ license: MIT
+ name: Public APIs
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/public-apis
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-punk-api/metadata.yaml b/airbyte-integrations/connectors/source-punk-api/metadata.yaml
new file mode 100644
index 000000000000..d263a8c05195
--- /dev/null
+++ b/airbyte-integrations/connectors/source-punk-api/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: dbe9b7ae-7b46-4e44-a507-02a343cf7230
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-punk-api
+ githubIssueLabel: source-punk-api
+ icon: punkapi.svg
+ license: MIT
+ name: Punk API
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/punk-api
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-pypi/metadata.yaml b/airbyte-integrations/connectors/source-pypi/metadata.yaml
new file mode 100644
index 000000000000..7d8ae3ab708a
--- /dev/null
+++ b/airbyte-integrations/connectors/source-pypi/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 88ecd3a8-5f5b-11ed-9b6a-0242ac120002
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-pypi
+ githubIssueLabel: source-pypi
+ icon: pypi.svg
+ license: MIT
+ name: PyPI
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/pypi
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-qonto/metadata.yaml b/airbyte-integrations/connectors/source-qonto/metadata.yaml
new file mode 100644
index 000000000000..6ed1842f6450
--- /dev/null
+++ b/airbyte-integrations/connectors/source-qonto/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: f7c0b910-5f66-11ed-9b6a-0242ac120002
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-qonto
+ githubIssueLabel: source-qonto
+ icon: qonto.svg
+ license: MIT
+ name: Qonto
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/public-qonto
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-qualaroo/metadata.yaml b/airbyte-integrations/connectors/source-qualaroo/metadata.yaml
new file mode 100644
index 000000000000..8e89c669c3d1
--- /dev/null
+++ b/airbyte-integrations/connectors/source-qualaroo/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: b08e4776-d1de-4e80-ab5c-1e51dad934a2
+ dockerImageTag: 0.1.2
+ dockerRepository: airbyte/source-qualaroo
+ githubIssueLabel: source-qualaroo
+ icon: qualaroo.svg
+ license: MIT
+ name: Qualaroo
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/qualaroo
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-quickbooks-singer/metadata.yaml b/airbyte-integrations/connectors/source-quickbooks-singer/metadata.yaml
new file mode 100644
index 000000000000..2c7643ee7ab6
--- /dev/null
+++ b/airbyte-integrations/connectors/source-quickbooks-singer/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 29b409d9-30a5-4cc8-ad50-886eb846fea3
+ dockerImageTag: 0.1.5
+ dockerRepository: airbyte/source-quickbooks-singer
+ githubIssueLabel: source-quickbooks-singer
+ icon: qb.svg
+ license: MIT
+ name: QuickBooks
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/quickbooks-singer
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-railz/metadata.yaml b/airbyte-integrations/connectors/source-railz/metadata.yaml
new file mode 100644
index 000000000000..80b48a5adeeb
--- /dev/null
+++ b/airbyte-integrations/connectors/source-railz/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 9b6cc0c0-da81-4103-bbfd-5279e18a849a
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-railz
+ githubIssueLabel: source-railz
+ icon: railz.svg
+ license: MIT
+ name: Railz
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/railz
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-rd-station-marketing/metadata.yaml b/airbyte-integrations/connectors/source-rd-station-marketing/metadata.yaml
new file mode 100644
index 000000000000..9a3864f0fddc
--- /dev/null
+++ b/airbyte-integrations/connectors/source-rd-station-marketing/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: fb141f29-be2a-450b-a4f2-2cd203a00f84
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-rd-station-marketing
+ githubIssueLabel: source-rd-station-marketing
+ icon: rdstation.svg
+ license: MIT
+ name: RD Station Marketing
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/rd-station-marketing
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-recharge/metadata.yaml b/airbyte-integrations/connectors/source-recharge/metadata.yaml
new file mode 100644
index 000000000000..dd63f009a6ff
--- /dev/null
+++ b/airbyte-integrations/connectors/source-recharge/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.rechargeapps.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 45d2e135-2ede-49e1-939f-3e3ec357a65e
+ dockerImageTag: 0.2.7
+ dockerRepository: airbyte/source-recharge
+ githubIssueLabel: source-recharge
+ icon: recharge.svg
+ license: MIT
+ name: Recharge
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/recharge
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-recreation/metadata.yaml b/airbyte-integrations/connectors/source-recreation/metadata.yaml
new file mode 100644
index 000000000000..9a9a51d8e9ea
--- /dev/null
+++ b/airbyte-integrations/connectors/source-recreation/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 25d7535d-91e0-466a-aa7f-af81578be277
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-recreation
+ githubIssueLabel: source-recreation
+ icon: recreation.svg
+ license: MIT
+ name: Recreation
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/recreation
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-recruitee/metadata.yaml b/airbyte-integrations/connectors/source-recruitee/metadata.yaml
new file mode 100644
index 000000000000..b109a05b4241
--- /dev/null
+++ b/airbyte-integrations/connectors/source-recruitee/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 3b046ac7-d8d3-4eb3-b122-f96b2a16d8a8
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-recruitee
+ githubIssueLabel: source-recruitee
+ icon: recruitee.svg
+ license: MIT
+ name: Recruitee
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/recruitee
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-recurly/metadata.yaml b/airbyte-integrations/connectors/source-recurly/metadata.yaml
new file mode 100644
index 000000000000..decc883d2d3b
--- /dev/null
+++ b/airbyte-integrations/connectors/source-recurly/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: cd42861b-01fc-4658-a8ab-5d11d0510f01
+ dockerImageTag: 0.4.1
+ dockerRepository: airbyte/source-recurly
+ githubIssueLabel: source-recurly
+ icon: recurly.svg
+ license: MIT
+ name: Recurly
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/recurly
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-redshift/metadata.yaml b/airbyte-integrations/connectors/source-redshift/metadata.yaml
new file mode 100644
index 000000000000..5f042c9790ff
--- /dev/null
+++ b/airbyte-integrations/connectors/source-redshift/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: source
+ definitionId: e87ffa8e-a3b5-f69c-9076-6011339de1f6
+ dockerImageTag: 0.3.16
+ dockerRepository: airbyte/source-redshift
+ githubIssueLabel: source-redshift
+ icon: redshift.svg
+ license: MIT
+ name: Redshift
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/redshift
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-reply-io/metadata.yaml b/airbyte-integrations/connectors/source-reply-io/metadata.yaml
new file mode 100644
index 000000000000..d4052dfe1270
--- /dev/null
+++ b/airbyte-integrations/connectors/source-reply-io/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 8cc6537e-f8a6-423c-b960-e927af76116e
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-reply-io
+ githubIssueLabel: source-reply-io
+ icon: reply-io.svg
+ license: MIT
+ name: Reply.io
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/reply-io
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-retently/metadata.yaml b/airbyte-integrations/connectors/source-retently/metadata.yaml
new file mode 100644
index 000000000000..5ee36d4f6ff3
--- /dev/null
+++ b/airbyte-integrations/connectors/source-retently/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: db04ecd1-42e7-4115-9cec-95812905c626
+ dockerImageTag: 0.1.3
+ dockerRepository: airbyte/source-retently
+ githubIssueLabel: source-retently
+ icon: retently.svg
+ license: MIT
+ name: Retently
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/retently
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-rki-covid/metadata.yaml b/airbyte-integrations/connectors/source-rki-covid/metadata.yaml
new file mode 100644
index 000000000000..155b1f756e5b
--- /dev/null
+++ b/airbyte-integrations/connectors/source-rki-covid/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: d78e5de0-aa44-4744-aa4f-74c818ccfe19
+ dockerImageTag: 0.1.2
+ dockerRepository: airbyte/source-rki-covid
+ githubIssueLabel: source-rki-covid
+ icon: rki.svg
+ license: MIT
+ name: RKI Covid
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/rki-covid
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-rocket-chat/metadata.yaml b/airbyte-integrations/connectors/source-rocket-chat/metadata.yaml
new file mode 100644
index 000000000000..a95c910ed499
--- /dev/null
+++ b/airbyte-integrations/connectors/source-rocket-chat/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 921d9608-3915-450b-8078-0af18801ea1b
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-rocket-chat
+ githubIssueLabel: source-rocket-chat
+ icon: rocket-chat.svg
+ license: MIT
+ name: Rocket.chat
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/rocket-chat
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-rss/metadata.yaml b/airbyte-integrations/connectors/source-rss/metadata.yaml
new file mode 100644
index 000000000000..2783ce8c4ddf
--- /dev/null
+++ b/airbyte-integrations/connectors/source-rss/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 0efee448-6948-49e2-b786-17db50647908
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-rss
+ githubIssueLabel: source-rss
+ icon: rss.svg
+ license: MIT
+ name: RSS
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/rss
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-s3/metadata.yaml b/airbyte-integrations/connectors/source-s3/metadata.yaml
new file mode 100644
index 000000000000..1ff27ddd71d4
--- /dev/null
+++ b/airbyte-integrations/connectors/source-s3/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - "*.s3.amazonaws.com"
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: file
+ connectorType: source
+ definitionId: 69589781-7828-43c5-9f63-8925b1c1ccc2
+ dockerImageTag: 2.0.4
+ dockerRepository: airbyte/source-s3
+ githubIssueLabel: source-s3
+ icon: s3.svg
+ license: MIT
+ name: S3
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/s3
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-salesforce-singer/metadata.yaml b/airbyte-integrations/connectors/source-salesforce-singer/metadata.yaml
new file mode 100644
index 000000000000..d76ae5c3a904
--- /dev/null
+++ b/airbyte-integrations/connectors/source-salesforce-singer/metadata.yaml
@@ -0,0 +1,17 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: false
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 2470e835-feaf-4db6-96f3-70fd645acc77
+ dockerImageTag: 0.2.5
+ dockerRepository: airbyte/source-salesforce-singer
+ githubIssueLabel: source-salesforce-singer
+ license: MIT
+ name: Salesforce (Singer)
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.io/integrations/sources/salesforce
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-salesforce/metadata.yaml b/airbyte-integrations/connectors/source-salesforce/metadata.yaml
new file mode 100644
index 000000000000..ee548e55ce2b
--- /dev/null
+++ b/airbyte-integrations/connectors/source-salesforce/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - "*.salesforce.com"
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: b117307c-14b6-41aa-9422-947e34922962
+ dockerImageTag: 2.0.9
+ dockerRepository: airbyte/source-salesforce
+ githubIssueLabel: source-salesforce
+ icon: salesforce.svg
+ license: MIT
+ name: Salesforce
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/salesforce
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-salesloft/metadata.yaml b/airbyte-integrations/connectors/source-salesloft/metadata.yaml
new file mode 100644
index 000000000000..74c0ab915218
--- /dev/null
+++ b/airbyte-integrations/connectors/source-salesloft/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.salesloft.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 41991d12-d4b5-439e-afd0-260a31d4c53f
+ dockerImageTag: 1.0.0
+ dockerRepository: airbyte/source-salesloft
+ githubIssueLabel: source-salesloft
+ icon: salesloft.svg
+ license: MIT
+ name: SalesLoft
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/salesloft
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-sap-fieldglass/metadata.yaml b/airbyte-integrations/connectors/source-sap-fieldglass/metadata.yaml
new file mode 100644
index 000000000000..5edfd13ac603
--- /dev/null
+++ b/airbyte-integrations/connectors/source-sap-fieldglass/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: ec5f3102-fb31-4916-99ae-864faf8e7e25
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-sap-fieldglass
+ githubIssueLabel: source-sap-fieldglass
+ icon: sapfieldglass.svg
+ license: MIT
+ name: SAP Fieldglass
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/sap-fieldglass
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-search-metrics/metadata.yaml b/airbyte-integrations/connectors/source-search-metrics/metadata.yaml
new file mode 100644
index 000000000000..7ea73013bfcb
--- /dev/null
+++ b/airbyte-integrations/connectors/source-search-metrics/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 8d7ef552-2c0f-11ec-8d3d-0242ac130003
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-search-metrics
+ githubIssueLabel: source-search-metrics
+ icon: searchmetrics.svg
+ license: MIT
+ name: SearchMetrics
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/search-metrics
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-secoda/metadata.yaml b/airbyte-integrations/connectors/source-secoda/metadata.yaml
new file mode 100644
index 000000000000..87568f7dfb96
--- /dev/null
+++ b/airbyte-integrations/connectors/source-secoda/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: da9fc6b9-8059-4be0-b204-f56e22e4d52d
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-secoda
+ githubIssueLabel: source-secoda
+ icon: secoda.svg
+ license: MIT
+ name: Secoda
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/secoda
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-sendgrid/metadata.yaml b/airbyte-integrations/connectors/source-sendgrid/metadata.yaml
new file mode 100644
index 000000000000..17e9bc54a5ae
--- /dev/null
+++ b/airbyte-integrations/connectors/source-sendgrid/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.sendgrid.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: fbb5fbe2-16ad-4cf4-af7d-ff9d9c316c87
+ dockerImageTag: 0.3.1
+ dockerRepository: airbyte/source-sendgrid
+ githubIssueLabel: source-sendgrid
+ icon: sendgrid.svg
+ license: MIT
+ name: Sendgrid
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/sendgrid
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-sendinblue/metadata.yaml b/airbyte-integrations/connectors/source-sendinblue/metadata.yaml
new file mode 100644
index 000000000000..98d72f32903c
--- /dev/null
+++ b/airbyte-integrations/connectors/source-sendinblue/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 2e88fa20-a2f6-43cc-bba6-98a0a3f244fb
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-sendinblue
+ githubIssueLabel: source-sendinblue
+ icon: sendinblue.svg
+ license: MIT
+ name: Sendinblue
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/sendinblue
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-senseforce/metadata.yaml b/airbyte-integrations/connectors/source-senseforce/metadata.yaml
new file mode 100644
index 000000000000..c5fbfaa6b741
--- /dev/null
+++ b/airbyte-integrations/connectors/source-senseforce/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - galaxyapi.senseforce.io
+ - senseforce.io
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 39de93cb-1511-473e-a673-5cbedb9436af
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-senseforce
+ githubIssueLabel: source-senseforce
+ icon: senseforce.svg
+ license: MIT
+ name: Senseforce
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/senseforce
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-sentry/metadata.yaml b/airbyte-integrations/connectors/source-sentry/metadata.yaml
new file mode 100644
index 000000000000..ade93d58f2d3
--- /dev/null
+++ b/airbyte-integrations/connectors/source-sentry/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - "*"
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: cdaf146a-9b75-49fd-9dd2-9d64a0bb4781
+ dockerImageTag: 0.2.0
+ dockerRepository: airbyte/source-sentry
+ githubIssueLabel: source-sentry
+ icon: sentry.svg
+ license: MIT
+ name: Sentry
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/sentry
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-sftp-bulk/metadata.yaml b/airbyte-integrations/connectors/source-sftp-bulk/metadata.yaml
new file mode 100644
index 000000000000..349d64507a47
--- /dev/null
+++ b/airbyte-integrations/connectors/source-sftp-bulk/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: file
+ connectorType: source
+ definitionId: 31e3242f-dee7-4cdc-a4b8-8e06c5458517
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-sftp-bulk
+ githubIssueLabel: source-sftp-bulk
+ icon: sftp.svg
+ license: MIT
+ name: SFTP Bulk
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/sftp-bulk
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-sftp/metadata.yaml b/airbyte-integrations/connectors/source-sftp/metadata.yaml
new file mode 100644
index 000000000000..3a333ec038f3
--- /dev/null
+++ b/airbyte-integrations/connectors/source-sftp/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: file
+ connectorType: source
+ definitionId: a827c52e-791c-4135-a245-e233c5255199
+ dockerImageTag: 0.1.2
+ dockerRepository: airbyte/source-sftp
+ githubIssueLabel: source-sftp
+ icon: sftp.svg
+ license: MIT
+ name: SFTP
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/sftp
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-shopify/metadata.yaml b/airbyte-integrations/connectors/source-shopify/metadata.yaml
new file mode 100644
index 000000000000..08456429dbf2
--- /dev/null
+++ b/airbyte-integrations/connectors/source-shopify/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 9da77001-af33-4bcd-be46-6252bf9342b9
+ dockerImageTag: 0.3.2
+ dockerRepository: airbyte/source-shopify
+ githubIssueLabel: source-shopify
+ icon: shopify.svg
+ license: MIT
+ name: Shopify
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/shopify
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-shortio/metadata.yaml b/airbyte-integrations/connectors/source-shortio/metadata.yaml
new file mode 100644
index 000000000000..0b5c55b93d0e
--- /dev/null
+++ b/airbyte-integrations/connectors/source-shortio/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 2fed2292-5586-480c-af92-9944e39fe12d
+ dockerImageTag: 0.1.3
+ dockerRepository: airbyte/source-shortio
+ githubIssueLabel: source-shortio
+ icon: short.svg
+ license: MIT
+ name: Short.io
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/shortio
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-slack/metadata.yaml b/airbyte-integrations/connectors/source-slack/metadata.yaml
new file mode 100644
index 000000000000..810c28b4147a
--- /dev/null
+++ b/airbyte-integrations/connectors/source-slack/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - slack.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: c2281cee-86f9-4a86-bb48-d23286b4c7bd
+ dockerImageTag: 0.1.25
+ dockerRepository: airbyte/source-slack
+ githubIssueLabel: source-slack
+ icon: slack.svg
+ license: MIT
+ name: Slack
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/slack
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-smaily/metadata.yaml b/airbyte-integrations/connectors/source-smaily/metadata.yaml
new file mode 100644
index 000000000000..5f3fd4e5f261
--- /dev/null
+++ b/airbyte-integrations/connectors/source-smaily/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 781f8b1d-4e20-4842-a2c3-cd9b119d65fa
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-smaily
+ githubIssueLabel: source-smaily
+ icon: smaily.svg
+ license: MIT
+ name: Smaily
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/smaily
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-smartengage/metadata.yaml b/airbyte-integrations/connectors/source-smartengage/metadata.yaml
new file mode 100644
index 000000000000..257cff362bcc
--- /dev/null
+++ b/airbyte-integrations/connectors/source-smartengage/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 21cc4a17-a011-4485-8a3e-e2341a91ab9f
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-smartengage
+ githubIssueLabel: source-smartengage
+ icon: smartengage.svg
+ license: MIT
+ name: SmartEngage
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/smartengage
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-smartsheets/metadata.yaml b/airbyte-integrations/connectors/source-smartsheets/metadata.yaml
new file mode 100644
index 000000000000..1358fe253106
--- /dev/null
+++ b/airbyte-integrations/connectors/source-smartsheets/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - app.smartsheet.com
+ - api.smartsheet.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 374ebc65-6636-4ea0-925c-7d35999a8ffc
+ dockerImageTag: 1.0.0
+ dockerRepository: airbyte/source-smartsheets
+ githubIssueLabel: source-smartsheets
+ icon: smartsheet.svg
+ license: MIT
+ name: Smartsheets
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/smartsheets
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-snapchat-marketing/metadata.yaml b/airbyte-integrations/connectors/source-snapchat-marketing/metadata.yaml
new file mode 100644
index 000000000000..da268764389d
--- /dev/null
+++ b/airbyte-integrations/connectors/source-snapchat-marketing/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - accounts.snapchat.com
+ - adsapi.snapchat.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 200330b2-ea62-4d11-ac6d-cfe3e3f8ab2b
+ dockerImageTag: 0.1.15
+ dockerRepository: airbyte/source-snapchat-marketing
+ githubIssueLabel: source-snapchat-marketing
+ icon: snapchat.svg
+ license: MIT
+ name: Snapchat Marketing
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/snapchat-marketing
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-snowflake/metadata.yaml b/airbyte-integrations/connectors/source-snowflake/metadata.yaml
new file mode 100644
index 000000000000..1a14cf20b548
--- /dev/null
+++ b/airbyte-integrations/connectors/source-snowflake/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${host}
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: source
+ definitionId: e2d65910-8c8b-40a1-ae7d-ee2416b2bfa2
+ dockerImageTag: 0.1.34
+ dockerRepository: airbyte/source-snowflake
+ githubIssueLabel: source-snowflake
+ icon: snowflake.svg
+ license: MIT
+ name: Snowflake
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/snowflake
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-sonar-cloud/metadata.yaml b/airbyte-integrations/connectors/source-sonar-cloud/metadata.yaml
new file mode 100644
index 000000000000..62b5c69e4e32
--- /dev/null
+++ b/airbyte-integrations/connectors/source-sonar-cloud/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - sonarcloud.io
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 3ab1d7d0-1577-4ab9-bcc4-1ff6a4c2c9f2
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-sonar-cloud
+ githubIssueLabel: source-sonar-cloud
+ icon: sonarcloud.svg
+ license: MIT
+ name: Sonar Cloud
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/sonar-cloud
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-spacex-api/metadata.yaml b/airbyte-integrations/connectors/source-spacex-api/metadata.yaml
new file mode 100644
index 000000000000..ea1929eef5d4
--- /dev/null
+++ b/airbyte-integrations/connectors/source-spacex-api/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 62235e65-af7a-4138-9130-0bda954eb6a8
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-spacex-api
+ githubIssueLabel: source-spacex-api
+ icon: spacex.svg
+ license: MIT
+ name: SpaceX API
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/spacex-api
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-square/metadata.yaml b/airbyte-integrations/connectors/source-square/metadata.yaml
new file mode 100644
index 000000000000..c1c1c48d5eb2
--- /dev/null
+++ b/airbyte-integrations/connectors/source-square/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - connect.squareupsandbox.com
+ - connect.squareup.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 77225a51-cd15-4a13-af02-65816bd0ecf4
+ dockerImageTag: 0.2.2
+ dockerRepository: airbyte/source-square
+ githubIssueLabel: source-square
+ icon: square.svg
+ license: MIT
+ name: Square
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/square
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-statuspage/metadata.yaml b/airbyte-integrations/connectors/source-statuspage/metadata.yaml
new file mode 100644
index 000000000000..a7dbb3589884
--- /dev/null
+++ b/airbyte-integrations/connectors/source-statuspage/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 74cbd708-46c3-4512-9c93-abd5c3e9a94d
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-statuspage
+ githubIssueLabel: source-statuspage
+ icon: statuspage.svg
+ license: MIT
+ name: Statuspage
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/statuspage
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-strava/metadata.yaml b/airbyte-integrations/connectors/source-strava/metadata.yaml
new file mode 100644
index 000000000000..4daf33447d77
--- /dev/null
+++ b/airbyte-integrations/connectors/source-strava/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - strava.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 7a4327c4-315a-11ec-8d3d-0242ac130003
+ dockerImageTag: 0.1.4
+ dockerRepository: airbyte/source-strava
+ githubIssueLabel: source-strava
+ icon: strava.svg
+ license: MIT
+ name: Strava
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/strava
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-stripe/metadata.yaml b/airbyte-integrations/connectors/source-stripe/metadata.yaml
new file mode 100644
index 000000000000..b12598299b14
--- /dev/null
+++ b/airbyte-integrations/connectors/source-stripe/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.stripe.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: e094cb9a-26de-4645-8761-65c0c425d1de
+ dockerImageTag: 3.0.5
+ dockerRepository: airbyte/source-stripe
+ githubIssueLabel: source-stripe
+ icon: stripe.svg
+ license: MIT
+ name: Stripe
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/stripe
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-survey-sparrow/metadata.yaml b/airbyte-integrations/connectors/source-survey-sparrow/metadata.yaml
new file mode 100644
index 000000000000..f0079b9d8f19
--- /dev/null
+++ b/airbyte-integrations/connectors/source-survey-sparrow/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 4a4d887b-0f2d-4b33-ab7f-9b01b9072804
+ dockerImageTag: 0.2.0
+ dockerRepository: airbyte/source-survey-sparrow
+ githubIssueLabel: source-survey-sparrow
+ icon: surveysparrow.svg
+ license: MIT
+ name: SurveySparrow
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/survey-sparrow
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-surveycto/metadata.yaml b/airbyte-integrations/connectors/source-surveycto/metadata.yaml
new file mode 100644
index 000000000000..26b17b1faf94
--- /dev/null
+++ b/airbyte-integrations/connectors/source-surveycto/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: dd4632f4-15e0-4649-9b71-41719fb1fdee
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-surveycto
+ githubIssueLabel: source-surveycto
+ icon: surveycto.svg
+ license: MIT
+ name: SurveyCTO
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/surveycto
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-surveymonkey/metadata.yaml b/airbyte-integrations/connectors/source-surveymonkey/metadata.yaml
new file mode 100644
index 000000000000..97ed811d058b
--- /dev/null
+++ b/airbyte-integrations/connectors/source-surveymonkey/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.surveymonkey.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: badc5925-0485-42be-8caa-b34096cb71b5
+ dockerImageTag: 0.1.15
+ dockerRepository: airbyte/source-surveymonkey
+ githubIssueLabel: source-surveymonkey
+ icon: surveymonkey.svg
+ license: MIT
+ name: SurveyMonkey
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/surveymonkey
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-talkdesk-explore/metadata.yaml b/airbyte-integrations/connectors/source-talkdesk-explore/metadata.yaml
new file mode 100644
index 000000000000..0fe2f4bf0f35
--- /dev/null
+++ b/airbyte-integrations/connectors/source-talkdesk-explore/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: f00d2cf4-3c28-499a-ba93-b50b6f26359e
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-talkdesk-explore
+ githubIssueLabel: source-talkdesk-explore
+ icon: talkdesk-explore.svg
+ license: MIT
+ name: TalkDesk Explore
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/talkdesk-explore
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-tempo/metadata.yaml b/airbyte-integrations/connectors/source-tempo/metadata.yaml
new file mode 100644
index 000000000000..be314d575e8c
--- /dev/null
+++ b/airbyte-integrations/connectors/source-tempo/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.tempo.io
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: d1aa448b-7c54-498e-ad95-263cbebcd2db
+ dockerImageTag: 0.3.1
+ dockerRepository: airbyte/source-tempo
+ githubIssueLabel: source-tempo
+ icon: tempo.svg
+ license: MIT
+ name: Tempo
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/tempo
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-the-guardian-api/metadata.yaml b/airbyte-integrations/connectors/source-the-guardian-api/metadata.yaml
new file mode 100644
index 000000000000..096d3ba9b9fa
--- /dev/null
+++ b/airbyte-integrations/connectors/source-the-guardian-api/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: d42bd69f-6bf0-4d0b-9209-16231af07a92
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-the-guardian-api
+ githubIssueLabel: source-the-guardian-api
+ icon: theguardian.svg
+ license: MIT
+ name: The Guardian API
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/the-guardian-api
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-tidb/metadata.yaml b/airbyte-integrations/connectors/source-tidb/metadata.yaml
new file mode 100644
index 000000000000..33d7e8284e33
--- /dev/null
+++ b/airbyte-integrations/connectors/source-tidb/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${host}
+ - ${tunnel_method.tunnel_host}
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: database
+ connectorType: source
+ definitionId: 0dad1a35-ccf8-4d03-b73e-6788c00b13ae
+ dockerImageTag: 0.2.4
+ dockerRepository: airbyte/source-tidb
+ githubIssueLabel: source-tidb
+ icon: tidb.svg
+ license: MIT
+ name: TiDB
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/tidb
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-tiktok-marketing/metadata.yaml b/airbyte-integrations/connectors/source-tiktok-marketing/metadata.yaml
new file mode 100644
index 000000000000..d24cc8d5fe60
--- /dev/null
+++ b/airbyte-integrations/connectors/source-tiktok-marketing/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - sandbox-ads.tiktok.com
+ - business-api.tiktok.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 4bfac00d-ce15-44ff-95b9-9e3c3e8fbd35
+ dockerImageTag: 2.0.6
+ dockerRepository: airbyte/source-tiktok-marketing
+ githubIssueLabel: source-tiktok-marketing
+ icon: tiktok.svg
+ license: MIT
+ name: TikTok Marketing
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/tiktok-marketing
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-timely/metadata.yaml b/airbyte-integrations/connectors/source-timely/metadata.yaml
new file mode 100644
index 000000000000..546e368f931b
--- /dev/null
+++ b/airbyte-integrations/connectors/source-timely/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: bc617b5f-1b9e-4a2d-bebe-782fd454a771
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-timely
+ githubIssueLabel: source-timely
+ icon: timely.svg
+ license: MIT
+ name: Timely
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/timely
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-tmdb/metadata.yaml b/airbyte-integrations/connectors/source-tmdb/metadata.yaml
new file mode 100644
index 000000000000..6345ba7bf05d
--- /dev/null
+++ b/airbyte-integrations/connectors/source-tmdb/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 6240848f-f795-45eb-8f5e-c7542822fc03
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-tmdb
+ githubIssueLabel: source-tmdb
+ icon: tmdb.svg
+ license: MIT
+ name: TMDb
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/tmdb
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-todoist/metadata.yaml b/airbyte-integrations/connectors/source-todoist/metadata.yaml
new file mode 100644
index 000000000000..830189a4b399
--- /dev/null
+++ b/airbyte-integrations/connectors/source-todoist/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 7d272065-c316-4c04-a433-cd4ee143f83e
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-todoist
+ githubIssueLabel: source-todoist
+ icon: todoist.svg
+ license: MIT
+ name: Todoist
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/todoist
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-toggl/metadata.yaml b/airbyte-integrations/connectors/source-toggl/metadata.yaml
new file mode 100644
index 000000000000..714d03b10334
--- /dev/null
+++ b/airbyte-integrations/connectors/source-toggl/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 7e7c844f-2300-4342-b7d3-6dd7992593cd
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-toggl
+ githubIssueLabel: source-toggl
+ icon: toggl.svg
+ license: MIT
+ name: Toggl
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/toggl
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-tplcentral/metadata.yaml b/airbyte-integrations/connectors/source-tplcentral/metadata.yaml
new file mode 100644
index 000000000000..2afcad7483ee
--- /dev/null
+++ b/airbyte-integrations/connectors/source-tplcentral/metadata.yaml
@@ -0,0 +1,17 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: f9b6c538-ee12-42fe-8d4b-0c10f5955417
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-tplcentral
+ githubIssueLabel: source-tplcentral
+ license: MIT
+ name: TPLcentral
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/tplcentral
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-trello/metadata.yaml b/airbyte-integrations/connectors/source-trello/metadata.yaml
new file mode 100644
index 000000000000..e097669617a8
--- /dev/null
+++ b/airbyte-integrations/connectors/source-trello/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.trello.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 8da67652-004c-11ec-9a03-0242ac130003
+ dockerImageTag: 0.3.1
+ dockerRepository: airbyte/source-trello
+ githubIssueLabel: source-trello
+ icon: trello.svg
+ license: MIT
+ name: Trello
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/trello
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-trustpilot/metadata.yaml b/airbyte-integrations/connectors/source-trustpilot/metadata.yaml
new file mode 100644
index 000000000000..56b1256c743e
--- /dev/null
+++ b/airbyte-integrations/connectors/source-trustpilot/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: d7e23ea6-d741-4314-9209-a33c91a2e945
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-trustpilot
+ githubIssueLabel: source-trustpilot
+ icon: trustpilot.svg
+ license: MIT
+ name: TrustPilot
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/trustpilot
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-tvmaze-schedule/metadata.yaml b/airbyte-integrations/connectors/source-tvmaze-schedule/metadata.yaml
new file mode 100644
index 000000000000..82f7708ab331
--- /dev/null
+++ b/airbyte-integrations/connectors/source-tvmaze-schedule/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: bd14b08f-9f43-400f-b2b6-7248b5c72561
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-tvmaze-schedule
+ githubIssueLabel: source-tvmaze-schedule
+ icon: tvmazeschedule.svg
+ license: MIT
+ name: TVMaze Schedule
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/tvmaze-schedule
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-twilio-taskrouter/metadata.yaml b/airbyte-integrations/connectors/source-twilio-taskrouter/metadata.yaml
new file mode 100644
index 000000000000..a7924701169b
--- /dev/null
+++ b/airbyte-integrations/connectors/source-twilio-taskrouter/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 2446953b-b794-429b-a9b3-c821ba992a48
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-twilio-taskrouter
+ githubIssueLabel: source-twilio-taskrouter
+ icon: twilio.svg
+ license: MIT
+ name: Twilio Taskrouter
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/twilio-taskrouter
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-twilio/metadata.yaml b/airbyte-integrations/connectors/source-twilio/metadata.yaml
new file mode 100644
index 000000000000..39cd18fa2f04
--- /dev/null
+++ b/airbyte-integrations/connectors/source-twilio/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.twilio.com
+ - monitor.twilio.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: b9dc6155-672e-42ea-b10d-9f1f1fb95ab1
+ dockerImageTag: 0.2.0
+ dockerRepository: airbyte/source-twilio
+ githubIssueLabel: source-twilio
+ icon: twilio.svg
+ license: MIT
+ name: Twilio
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/twilio
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-twitter/metadata.yaml b/airbyte-integrations/connectors/source-twitter/metadata.yaml
new file mode 100644
index 000000000000..703222909a2d
--- /dev/null
+++ b/airbyte-integrations/connectors/source-twitter/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.twitter.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: d7fd4f40-5e5a-4b8b-918f-a73077f8c131
+ dockerImageTag: 0.1.2
+ dockerRepository: airbyte/source-twitter
+ githubIssueLabel: source-twitter
+ icon: twitter.svg
+ license: MIT
+ name: Twitter
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/twitter
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-tyntec-sms/metadata.yaml b/airbyte-integrations/connectors/source-tyntec-sms/metadata.yaml
new file mode 100644
index 000000000000..ae0a23e548af
--- /dev/null
+++ b/airbyte-integrations/connectors/source-tyntec-sms/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 3c0c3cd1-b3e0-464a-9090-d3ceb5f92346
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-tyntec-sms
+ githubIssueLabel: source-tyntec-sms
+ icon: tyntec.svg
+ license: MIT
+ name: Tyntec SMS
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/tyntec-sms
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-typeform/metadata.yaml b/airbyte-integrations/connectors/source-typeform/metadata.yaml
new file mode 100644
index 000000000000..6a0168524499
--- /dev/null
+++ b/airbyte-integrations/connectors/source-typeform/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.typeform.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: e7eff203-90bf-43e5-a240-19ea3056c474
+ dockerImageTag: 0.1.12
+ dockerRepository: airbyte/source-typeform
+ githubIssueLabel: source-typeform
+ icon: typeform.svg
+ license: MIT
+ name: Typeform
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/typeform
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-unleash/metadata.yaml b/airbyte-integrations/connectors/source-unleash/metadata.yaml
new file mode 100644
index 000000000000..39f95ddcab59
--- /dev/null
+++ b/airbyte-integrations/connectors/source-unleash/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: f77914a1-442b-4195-9355-8810a1f4ed3f
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-unleash
+ githubIssueLabel: source-unleash
+ icon: unleash.svg
+ license: MIT
+ name: Unleash
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/unleash
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-us-census/metadata.yaml b/airbyte-integrations/connectors/source-us-census/metadata.yaml
new file mode 100644
index 000000000000..ad289e92b9f8
--- /dev/null
+++ b/airbyte-integrations/connectors/source-us-census/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: c4cfaeda-c757-489a-8aba-859fb08b6970
+ dockerImageTag: 0.1.2
+ dockerRepository: airbyte/source-us-census
+ githubIssueLabel: source-us-census
+ icon: uscensus.svg
+ license: MIT
+ name: US Census
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/us-census
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-vantage/metadata.yaml b/airbyte-integrations/connectors/source-vantage/metadata.yaml
new file mode 100644
index 000000000000..f5387ba6f9a8
--- /dev/null
+++ b/airbyte-integrations/connectors/source-vantage/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 28ce1fbd-1e15-453f-aa9f-da6c4d928e92
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-vantage
+ githubIssueLabel: source-vantage
+ icon: vantage.svg
+ license: MIT
+ name: Vantage
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/vantage
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-visma-economic/metadata.yaml b/airbyte-integrations/connectors/source-visma-economic/metadata.yaml
new file mode 100644
index 000000000000..4489bef325ab
--- /dev/null
+++ b/airbyte-integrations/connectors/source-visma-economic/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 42495935-95de-4f5c-ae08-8fac00f6b308
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-visma-economic
+ githubIssueLabel: source-visma-economic
+ icon: visma-e-conomic.svg
+ license: MIT
+ name: Visma E-conomic
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/visma-economic
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-vitally/metadata.yaml b/airbyte-integrations/connectors/source-vitally/metadata.yaml
new file mode 100644
index 000000000000..1d9da4ba8b4f
--- /dev/null
+++ b/airbyte-integrations/connectors/source-vitally/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 6c6d8b0c-db35-4cd1-a7de-0ca8b080f5ac
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-vitally
+ githubIssueLabel: source-vitally
+ icon: vitally.svg
+ license: MIT
+ name: Vitally
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/vitally
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-waiteraid/metadata.yaml b/airbyte-integrations/connectors/source-waiteraid/metadata.yaml
new file mode 100644
index 000000000000..7c436140fe33
--- /dev/null
+++ b/airbyte-integrations/connectors/source-waiteraid/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 03a53b13-794a-4d6b-8544-3b36ed8f3ce4
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-waiteraid
+ githubIssueLabel: source-waiteraid
+ icon: waiteraid.svg
+ license: MIT
+ name: Waiteraid
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/waiteraid
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-weatherstack/metadata.yaml b/airbyte-integrations/connectors/source-weatherstack/metadata.yaml
new file mode 100644
index 000000000000..e1fdffbdef3f
--- /dev/null
+++ b/airbyte-integrations/connectors/source-weatherstack/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 5db8292c-5f5a-11ed-9b6a-0242ac120002
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-weatherstack
+ githubIssueLabel: source-weatherstack
+ icon: weatherstack.svg
+ license: MIT
+ name: Weatherstack
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/weatherstack
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-webflow/metadata.yaml b/airbyte-integrations/connectors/source-webflow/metadata.yaml
new file mode 100644
index 000000000000..4d1bd12f393b
--- /dev/null
+++ b/airbyte-integrations/connectors/source-webflow/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: ef580275-d9a9-48bb-af5e-db0f5855be04
+ dockerImageTag: 0.1.2
+ dockerRepository: airbyte/source-webflow
+ githubIssueLabel: source-webflow
+ icon: webflow.svg
+ license: MIT
+ name: Webflow
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/webflow
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-whisky-hunter/metadata.yaml b/airbyte-integrations/connectors/source-whisky-hunter/metadata.yaml
new file mode 100644
index 000000000000..f3c711f5a763
--- /dev/null
+++ b/airbyte-integrations/connectors/source-whisky-hunter/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: e65f84c0-7598-458a-bfac-f770c381ff5d
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-whisky-hunter
+ githubIssueLabel: source-whisky-hunter
+ icon: whiskyhunter.svg
+ license: MIT
+ name: Whisky Hunter
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/whisky-hunter
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-wikipedia-pageviews/metadata.yaml b/airbyte-integrations/connectors/source-wikipedia-pageviews/metadata.yaml
new file mode 100644
index 000000000000..8860947e7121
--- /dev/null
+++ b/airbyte-integrations/connectors/source-wikipedia-pageviews/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 87c58f70-6f7a-4f70-aba5-bab1a458f5ba
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-wikipedia-pageviews
+ githubIssueLabel: source-wikipedia-pageviews
+ icon: wikipediapageviews.svg
+ license: MIT
+ name: Wikipedia Pageviews
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/wikipedia-pageviews
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-woocommerce/metadata.yaml b/airbyte-integrations/connectors/source-woocommerce/metadata.yaml
new file mode 100644
index 000000000000..65d1ed2b8f2c
--- /dev/null
+++ b/airbyte-integrations/connectors/source-woocommerce/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${domain}
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 2a2552ca-9f78-4c1c-9eb7-4d0dc66d72df
+ dockerImageTag: 0.2.2
+ dockerRepository: airbyte/source-woocommerce
+ githubIssueLabel: source-woocommerce
+ icon: woocommerce.svg
+ license: MIT
+ name: WooCommerce
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/woocommerce
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-workable/metadata.yaml b/airbyte-integrations/connectors/source-workable/metadata.yaml
new file mode 100644
index 000000000000..a1d53b837f41
--- /dev/null
+++ b/airbyte-integrations/connectors/source-workable/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: ef3c99c6-9e90-43c8-9517-926cfd978517
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-workable
+ githubIssueLabel: source-workable
+ icon: workable.svg
+ license: MIT
+ name: Workable
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/workable
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-workramp/metadata.yaml b/airbyte-integrations/connectors/source-workramp/metadata.yaml
new file mode 100644
index 000000000000..f552e1dcdf5b
--- /dev/null
+++ b/airbyte-integrations/connectors/source-workramp/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 05b0bce2-4ec4-4534-bb1a-5d0127bd91b7
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-workramp
+ githubIssueLabel: source-workramp
+ icon: workramp.svg
+ license: MIT
+ name: WorkRamp
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/workramp
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-wrike/metadata.yaml b/airbyte-integrations/connectors/source-wrike/metadata.yaml
new file mode 100644
index 000000000000..9abc82d331bc
--- /dev/null
+++ b/airbyte-integrations/connectors/source-wrike/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 9c13f986-a13b-4988-b808-4705badf71c2
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-wrike
+ githubIssueLabel: source-wrike
+ icon: wrike.svg
+ license: MIT
+ name: Wrike
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/wrike
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-xero/metadata.yaml b/airbyte-integrations/connectors/source-xero/metadata.yaml
new file mode 100644
index 000000000000..1b0d413d50c9
--- /dev/null
+++ b/airbyte-integrations/connectors/source-xero/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.xero.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 6fd1e833-dd6e-45ec-a727-ab917c5be892
+ dockerImageTag: 0.2.1
+ dockerRepository: airbyte/source-xero
+ githubIssueLabel: source-xero
+ icon: xero.svg
+ license: MIT
+ name: Xero
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/xero
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-xkcd/metadata.yaml b/airbyte-integrations/connectors/source-xkcd/metadata.yaml
new file mode 100644
index 000000000000..555d44bcc2c0
--- /dev/null
+++ b/airbyte-integrations/connectors/source-xkcd/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 80fddd16-17bd-4c0c-bf4a-80df7863fc9d
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-xkcd
+ githubIssueLabel: source-xkcd
+ icon: xkcd.svg
+ license: MIT
+ name: xkcd
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/xkcd
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-yandex-metrica/metadata.yaml b/airbyte-integrations/connectors/source-yandex-metrica/metadata.yaml
new file mode 100644
index 000000000000..ec51262b136e
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yandex-metrica/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api-metrica.yandex.net
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 7865dce4-2211-4f6a-88e5-9d0fe161afe7
+ dockerImageTag: 1.0.0
+ dockerRepository: airbyte/source-yandex-metrica
+ githubIssueLabel: source-yandex-metrica
+ icon: yandexmetrica.svg
+ license: MIT
+ name: Yandex Metrica
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/yandex-metrica
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-younium/metadata.yaml b/airbyte-integrations/connectors/source-younium/metadata.yaml
new file mode 100644
index 000000000000..cf1d888da85a
--- /dev/null
+++ b/airbyte-integrations/connectors/source-younium/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 9c74c2d7-531a-4ebf-b6d8-6181f805ecdc
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-younium
+ githubIssueLabel: source-younium
+ icon: younium.svg
+ license: MIT
+ name: Younium
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/younium
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-youtube-analytics/metadata.yaml b/airbyte-integrations/connectors/source-youtube-analytics/metadata.yaml
new file mode 100644
index 000000000000..3fc0f9a03a83
--- /dev/null
+++ b/airbyte-integrations/connectors/source-youtube-analytics/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - "*.googleapis.com"
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: afa734e4-3571-11ec-991a-1e0031268139
+ dockerImageTag: 0.1.3
+ dockerRepository: airbyte/source-youtube-analytics
+ githubIssueLabel: source-youtube-analytics
+ icon: youtube-analytics.svg
+ license: MIT
+ name: YouTube Analytics
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/youtube-analytics
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-zapier-supported-storage/metadata.yaml b/airbyte-integrations/connectors/source-zapier-supported-storage/metadata.yaml
new file mode 100644
index 000000000000..9c41dbf84a44
--- /dev/null
+++ b/airbyte-integrations/connectors/source-zapier-supported-storage/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: b8c917bc-7d1b-4828-995f-6726820266d0
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-zapier-supported-storage
+ githubIssueLabel: source-zapier-supported-storage
+ icon: zapiersupportedstorage.svg
+ license: MIT
+ name: Zapier Supported Storage
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/zendesk-supported-storage
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-zendesk-chat/metadata.yaml b/airbyte-integrations/connectors/source-zendesk-chat/metadata.yaml
new file mode 100644
index 000000000000..9be09abdfecf
--- /dev/null
+++ b/airbyte-integrations/connectors/source-zendesk-chat/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - zopim.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 40d24d0f-b8f9-4fe0-9e6c-b06c0f3f45e4
+ dockerImageTag: 0.1.14
+ dockerRepository: airbyte/source-zendesk-chat
+ githubIssueLabel: source-zendesk-chat
+ icon: zendesk-chat.svg
+ license: MIT
+ name: Zendesk Chat
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/zendesk-chat
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-zendesk-sell/metadata.yaml b/airbyte-integrations/connectors/source-zendesk-sell/metadata.yaml
new file mode 100644
index 000000000000..2dc8a50b6b71
--- /dev/null
+++ b/airbyte-integrations/connectors/source-zendesk-sell/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 982eaa4c-bba1-4cce-a971-06a41f700b8c
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-zendesk-sell
+ githubIssueLabel: source-zendesk-sell
+ icon: zendesk.svg
+ license: MIT
+ name: Zendesk Sell
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/zendesk-sell
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-zendesk-sunshine/metadata.yaml b/airbyte-integrations/connectors/source-zendesk-sunshine/metadata.yaml
new file mode 100644
index 000000000000..c296fe87660d
--- /dev/null
+++ b/airbyte-integrations/connectors/source-zendesk-sunshine/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 325e0640-e7b3-4e24-b823-3361008f603f
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-zendesk-sunshine
+ githubIssueLabel: source-zendesk-sunshine
+ icon: zendesk-sunshine.svg
+ license: MIT
+ name: Zendesk Sunshine
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/zendesk-sunshine
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-zendesk-support/metadata.yaml b/airbyte-integrations/connectors/source-zendesk-support/metadata.yaml
new file mode 100644
index 000000000000..7a8dc7f75d46
--- /dev/null
+++ b/airbyte-integrations/connectors/source-zendesk-support/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${subdomain}.zendesk.com
+ - zendesk.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 79c1aa37-dae3-42ae-b333-d1c105477715
+ dockerImageTag: 0.2.27
+ dockerRepository: airbyte/source-zendesk-support
+ githubIssueLabel: source-zendesk-support
+ icon: zendesk-support.svg
+ license: MIT
+ name: Zendesk Support
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/zendesk-support
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-zendesk-talk/metadata.yaml b/airbyte-integrations/connectors/source-zendesk-talk/metadata.yaml
new file mode 100644
index 000000000000..e4025da0ba02
--- /dev/null
+++ b/airbyte-integrations/connectors/source-zendesk-talk/metadata.yaml
@@ -0,0 +1,22 @@
+data:
+ allowedHosts:
+ hosts:
+ - ${subdomain}.zendesk.com
+ - zendesk.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: c8630570-086d-4a40-99ae-ea5b18673071
+ dockerImageTag: 0.1.7
+ dockerRepository: airbyte/source-zendesk-talk
+ githubIssueLabel: source-zendesk-talk
+ icon: zendesk-talk.svg
+ license: MIT
+ name: Zendesk Talk
+ releaseStage: generally_available
+ supportUrl: https://docs.airbyte.com/integrations/sources/zendesk-talk
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-zenefits/metadata.yaml b/airbyte-integrations/connectors/source-zenefits/metadata.yaml
new file mode 100644
index 000000000000..3d3b3c57a29e
--- /dev/null
+++ b/airbyte-integrations/connectors/source-zenefits/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 8baba53d-2fe3-4e33-bc85-210d0eb62884
+ dockerImageTag: 0.1.0
+ dockerRepository: airbyte/source-zenefits
+ githubIssueLabel: source-zenefits
+ icon: zenefits.svg
+ license: MIT
+ name: Zenefits
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/zenefits
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-zenloop/metadata.yaml b/airbyte-integrations/connectors/source-zenloop/metadata.yaml
new file mode 100644
index 000000000000..b9cdc8fe9495
--- /dev/null
+++ b/airbyte-integrations/connectors/source-zenloop/metadata.yaml
@@ -0,0 +1,21 @@
+data:
+ allowedHosts:
+ hosts:
+ - api.zenloop.com
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: f1e4c7f6-db5c-4035-981f-d35ab4998794
+ dockerImageTag: 0.1.6
+ dockerRepository: airbyte/source-zenloop
+ githubIssueLabel: source-zenloop
+ icon: zenloop.svg
+ license: MIT
+ name: Zenloop
+ releaseStage: beta
+ supportUrl: https://docs.airbyte.com/integrations/sources/zenloop
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-zoho-crm/metadata.yaml b/airbyte-integrations/connectors/source-zoho-crm/metadata.yaml
new file mode 100644
index 000000000000..8394f853397c
--- /dev/null
+++ b/airbyte-integrations/connectors/source-zoho-crm/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 4942d392-c7b5-4271-91f9-3b4f4e51eb3e
+ dockerImageTag: 0.1.2
+ dockerRepository: airbyte/source-zoho-crm
+ githubIssueLabel: source-zoho-crm
+ icon: zohocrm.svg
+ license: MIT
+ name: ZohoCRM
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/zoho-crm
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-zoom/metadata.yaml b/airbyte-integrations/connectors/source-zoom/metadata.yaml
new file mode 100644
index 000000000000..c1f4bad358b9
--- /dev/null
+++ b/airbyte-integrations/connectors/source-zoom/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: cbfd9856-1322-44fb-bcf1-0b39b7a8e92e
+ dockerImageTag: 0.1.1
+ dockerRepository: airbyte/source-zoom
+ githubIssueLabel: source-zoom
+ icon: zoom.svg
+ license: MIT
+ name: Zoom
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.io/integrations/sources/zoom
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/source-zuora/metadata.yaml b/airbyte-integrations/connectors/source-zuora/metadata.yaml
new file mode 100644
index 000000000000..b8c73522890b
--- /dev/null
+++ b/airbyte-integrations/connectors/source-zuora/metadata.yaml
@@ -0,0 +1,19 @@
+data:
+ catalogs:
+ cloud:
+ dockerImageTag: 0.1.0
+ enabled: true
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 3dc3037c-5ce8-4661-adc2-f7a9e3c5ece5
+ dockerImageTag: 0.1.3
+ dockerRepository: airbyte/source-zuora
+ githubIssueLabel: source-zuora
+ icon: zuora.svg
+ license: MIT
+ name: Zuora
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/zuora
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/third-party/farosai/airbyte-customer-io-source/metadata.yaml b/airbyte-integrations/connectors/third-party/farosai/airbyte-customer-io-source/metadata.yaml
new file mode 100644
index 000000000000..fb424a5b5afb
--- /dev/null
+++ b/airbyte-integrations/connectors/third-party/farosai/airbyte-customer-io-source/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: c47d6804-8b98-449f-970a-5ddb5cb5d7aa
+ dockerImageTag: 0.1.23
+ dockerRepository: farosai/airbyte-customer-io-source
+ githubIssueLabel: farosai/airbyte-customer-io-source
+ icon: customer-io.svg
+ license: MIT
+ name: Customer.io
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/customer-io
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/third-party/farosai/airbyte-harness-source/metadata.yaml b/airbyte-integrations/connectors/third-party/farosai/airbyte-harness-source/metadata.yaml
new file mode 100644
index 000000000000..d2280db91480
--- /dev/null
+++ b/airbyte-integrations/connectors/third-party/farosai/airbyte-harness-source/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 6fe89830-d04d-401b-aad6-6552ffa5c4af
+ dockerImageTag: 0.1.23
+ dockerRepository: farosai/airbyte-harness-source
+ githubIssueLabel: farosai/airbyte-harness-source
+ icon: harness.svg
+ license: MIT
+ name: Harness
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/harness
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/third-party/farosai/airbyte-jenkins-source/metadata.yaml b/airbyte-integrations/connectors/third-party/farosai/airbyte-jenkins-source/metadata.yaml
new file mode 100644
index 000000000000..b9e97211cb9a
--- /dev/null
+++ b/airbyte-integrations/connectors/third-party/farosai/airbyte-jenkins-source/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: d6f73702-d7a0-4e95-9758-b0fb1af0bfba
+ dockerImageTag: 0.1.23
+ dockerRepository: farosai/airbyte-jenkins-source
+ githubIssueLabel: farosai/airbyte-jenkins-source
+ icon: jenkins.svg
+ license: MIT
+ name: Jenkins
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/jenkins
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/third-party/farosai/airbyte-pagerduty-source/metadata.yaml b/airbyte-integrations/connectors/third-party/farosai/airbyte-pagerduty-source/metadata.yaml
new file mode 100644
index 000000000000..7734b975a0f8
--- /dev/null
+++ b/airbyte-integrations/connectors/third-party/farosai/airbyte-pagerduty-source/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 2817b3f0-04e4-4c7a-9f32-7a5e8a83db95
+ dockerImageTag: 0.1.23
+ dockerRepository: farosai/airbyte-pagerduty-source
+ githubIssueLabel: farosai/airbyte-pagerduty-source
+ icon: pagerduty.svg
+ license: MIT
+ name: PagerDuty
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/pagerduty
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/third-party/farosai/airbyte-victorops-source/metadata.yaml b/airbyte-integrations/connectors/third-party/farosai/airbyte-victorops-source/metadata.yaml
new file mode 100644
index 000000000000..0decfc42b940
--- /dev/null
+++ b/airbyte-integrations/connectors/third-party/farosai/airbyte-victorops-source/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 7e20ce3e-d820-4327-ad7a-88f3927fd97a
+ dockerImageTag: 0.1.23
+ dockerRepository: farosai/airbyte-victorops-source
+ githubIssueLabel: farosai/airbyte-victorops-source
+ icon: victorops.svg
+ license: MIT
+ name: VictorOps
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/sources/victorops
+metadataSpecVersion: "1.0"
diff --git a/airbyte-integrations/connectors/third-party/ghcr/streamr-airbyte-connector/metadata.yaml b/airbyte-integrations/connectors/third-party/ghcr/streamr-airbyte-connector/metadata.yaml
new file mode 100644
index 000000000000..925e5ac53207
--- /dev/null
+++ b/airbyte-integrations/connectors/third-party/ghcr/streamr-airbyte-connector/metadata.yaml
@@ -0,0 +1,18 @@
+data:
+ catalogs:
+ cloud:
+ enabled: false
+ oss:
+ enabled: true
+ connectorSubtype: api
+ connectorType: destination
+ definitionId: eebd85cf-60b2-4af6-9ba0-edeca01437b0
+ dockerImageTag: 0.0.1
+ dockerRepository: ghcr.io/devmate-cloud/streamr-airbyte-connectors
+ githubIssueLabel: ghcr.io/devmate-cloud/streamr-airbyte-connectors
+ icon: streamr.svg
+ license: MIT
+ name: Streamr
+ releaseStage: alpha
+ supportUrl: https://docs.airbyte.com/integrations/destinations/streamr
+metadataSpecVersion: "1.0"
From 2f0e8b19e5f0eac451600695d8303faa2d88765e Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Mon, 17 Apr 2023 23:11:51 +0530
Subject: [PATCH 041/187] fix date_from, optimize manifest, update docs
---
.../src/main/resources/seed/oss_catalog.json | 4 +-
.../src/main/resources/seed/source_specs.yaml | 4 +-
.../integration_tests/expected_records.jsonl | 2 +-
.../integration_tests/invalid_config.json | 5 +-
.../integration_tests/sample_config.json | 5 +-
.../source-yotpo/source_yotpo/manifest.yaml | 56 +++++++++----------
.../source_yotpo/schemas/privacy_data.json | 1 +
.../source_yotpo/schemas/privacy_user.json | 1 +
.../source_yotpo/schemas/reviews.json | 4 ++
.../schemas/reviews_bottomline.json | 1 +
.../source_yotpo/schemas/top_reviews.json | 1 +
.../source_yotpo/schemas/webhooks.json | 1 +
.../source-yotpo/source_yotpo/spec.yaml | 6 +-
docs/integrations/sources/yotpo.md | 8 +--
14 files changed, 55 insertions(+), 44 deletions(-)
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index 66dc718b5496..97364d507cb5 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -28416,7 +28416,7 @@
"$schema": "https://json-schema.org/draft-07/schema#",
"title": "Yotpo Spec",
"type": "object",
- "required": [ "access_token", "app_key", "date_from", "email" ],
+ "required": [ "access_token", "app_key", "start_date", "email" ],
"additionalProperties": true,
"properties": {
"access_token": {
@@ -28430,7 +28430,7 @@
"type": "string",
"description": "App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)"
},
- "date_from": {
+ "start_date": {
"title": "Date-From Filter",
"type": "string",
"description": "Date time filter for incremental filter, Specify which date to extract from.",
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
index 7581bb85df00..c72feec908da 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
@@ -18349,7 +18349,7 @@
required:
- access_token
- app_key
- - date_from
+ - start_date
- email
additionalProperties: true
properties:
@@ -18362,7 +18362,7 @@
title: App Key
type: string
description: App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)
- date_from:
+ start_date:
title: Date-From Filter
type: string
description: Date time filter for incremental filter, Specify which date to extract from.
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl
index f11f7ca46cb6..b4a93e4c2d9f 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl
@@ -1 +1 @@
-{"stream": "reviews", "data": {"id":460530094,"title":"Great Phone","content":"It’s really good","score":5,"votes_up":0,"votes_down":0,"created_at":"2023-04-13T05:06:00.000Z","updated_at":"2023-04-13T05:08:41.000Z","sentiment":0.960069,"sku":"19","name":"John S.","email":"moles57397@snowlash.com","reviewer_type":"verified_reviewer","deleted":false,"archived":false,"escalated":false,"is_incentivized":false}, "emitted_at": 1679051186833}
+{"stream": "reviews", "data":{"id":460312221,"title":"Great Phone","content":"It’s really good","score":5,"votes_up":0,"votes_down":0,"created_at":"2023-04-12T18:13:47.000Z","updated_at":"2023-04-17T17:10:34.000Z","sentiment":0.960069,"sku":"13","name":"John S.","email":"john@shop.com","reviewer_type":"anonymous_user","deleted":false,"archived":false,"escalated":false,"is_incentivized":false}, "emitted_at": 1679051186833}
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/invalid_config.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/invalid_config.json
index 34470dc18f00..c266c8bd0766 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/invalid_config.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/invalid_config.json
@@ -1,3 +1,6 @@
{
- "access_token": ""
+ "app_key": "",
+ "access_token": "",
+ "start_date": "2099-04-12T18:42:50.000Z",
+ "email": ""
}
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_config.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_config.json
index ccc9b992b901..11b1fda38bac 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_config.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_config.json
@@ -1,3 +1,6 @@
{
- "access_token": "XXXXXXXXXXXXXXXXXXXXXXXXXX"
+ "app_key": "XXXXXXXXXXXXXXXXXXX",
+ "access_token": "YYYYYYYYYYYYYYYY",
+ "start_date": "2020-04-12T18:42:50.000Z",
+ "email": "example@gmail.com"
}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index 251fef833a58..aaa1e147f66f 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -1,6 +1,27 @@
version: "0.29.0"
definitions:
+
+ yotpo_stream_requester:
+ type: HttpRequester
+ url_base: "https://api.yotpo.com/v1"
+ http_method: "GET"
+ request_parameters:
+ utoken: "{{ config['access_token'] }}"
+ authenticator:
+ type: BearerAuthenticator
+ api_token: "{{ config['access_token'] }}"
+
+ yotpo_stream_plain_requester:
+ type: HttpRequester
+ url_base: "https://api.yotpo.com"
+ http_method: "GET"
+ request_parameters:
+ utoken: "{{ config['access_token'] }}"
+ authenticator:
+ type: BearerAuthenticator
+ api_token: "{{ config['access_token'] }}"
+
privacy_stream_requester:
type: HttpRequester
url_base: "https://api.yotpo.com/privacy"
@@ -55,14 +76,7 @@ definitions:
paginator:
type: NoPagination
requester:
- type: HttpRequester
- url_base: "https://api.yotpo.com/v1"
- http_method: "GET"
- request_parameters:
- utoken: "{{ config['access_token'] }}"
- authenticator:
- type: BearerAuthenticator
- api_token: "{{ config['access_token'] }}"
+ $ref: "#/definitions/yotpo_stream_requester"
incremental_sync:
type: DatetimeBasedCursor
cursor_field: "updated_at"
@@ -70,7 +84,7 @@ definitions:
cursor_granularity: "PT0.000001S"
lookback_window: "P31D"
start_datetime:
- datetime: "{{ config['date_from'] }}"
+ datetime: "{{ config['start_date'] }}"
datetime_format: "%Y-%m-%dT%H:%M:%S.%f%z"
end_datetime:
datetime: "{{ today_utc() }}"
@@ -93,14 +107,7 @@ definitions:
paginator:
type: NoPagination
requester:
- type: HttpRequester
- url_base: "https://api.yotpo.com"
- http_method: "GET"
- request_parameters:
- utoken: "{{ config['access_token'] }}"
- authenticator:
- type: BearerAuthenticator
- api_token: "{{ config['access_token'] }}"
+ $ref: "#/definitions/yotpo_stream_plain_requester"
name: "reviews_bottomline"
$parameters:
path: "/products/{{ config['app_key'] }}/yotpo_site_reviews/bottomline"
@@ -118,14 +125,7 @@ definitions:
paginator:
type: NoPagination
requester:
- type: HttpRequester
- url_base: "https://api.yotpo.com/"
- http_method: "GET"
- request_parameters:
- utoken: "{{ config['access_token'] }}"
- authenticator:
- type: BearerAuthenticator
- api_token: "{{ config['access_token'] }}"
+ $ref: "#/definitions/yotpo_stream_plain_requester"
name: "top_reviews"
$parameters:
path: "/apps/{{ config['app_key'] }}/top_reviews"
@@ -142,11 +142,7 @@ definitions:
paginator:
type: NoPagination
requester:
- type: HttpRequester
- url_base: "https://api.yotpo.com/"
- http_method: "GET"
- request_parameters:
- utoken: "{{ config['access_token'] }}"
+ $ref: "#/definitions/yotpo_stream_plain_requester"
name: "webhooks"
$parameters:
path: "/apps/{{ config['app_key'] }}/webhooks"
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json
index 552feb4e7ef6..3d6ecf69ffac 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json
@@ -1,6 +1,7 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Privacy Data",
+ "additionalProperties": true,
"type": "object",
"properties": {
"has_data": {
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json
index 7e2817c09be2..3603d55f04da 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json
@@ -1,6 +1,7 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Privacy User",
+ "additionalProperties": true,
"type": "object",
"properties": {
"code": {
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews.json
index 6d4eac1f090f..3710a009987c 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews.json
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews.json
@@ -1,6 +1,7 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Reviews Schema",
+ "additionalProperties": true,
"type": "object",
"properties": {
"id": {
@@ -9,6 +10,9 @@
"title": {
"type": ["null", "string"]
},
+ "incentive_type": {
+ "type": ["null", "string"]
+ },
"content": {
"type": ["null", "string"]
},
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
index 8188f59bb5ae..796cda50d838 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
@@ -1,6 +1,7 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Reviews Bottomline",
+ "additionalProperties": true,
"type": "object",
"properties": {
"bottomline": {
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
index a5021d309b7a..a9048548d365 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
@@ -1,6 +1,7 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Top Reviews Schema",
+ "additionalProperties": true,
"type": "object",
"properties": {
"image_url": {
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json
index 6d7e0f0e0af9..e4fc677f852e 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json
@@ -1,6 +1,7 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Webhooks Schema",
+ "additionalProperties": true,
"type": "object",
"properties": {
"webhooks": {
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
index 8408215c011d..496dca04cc80 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
@@ -3,12 +3,12 @@ connectionSpecification:
$schema: http://json-schema.org/draft-07/schema#
title: Yotpo Spec
type: object
+ additionalProperties: true
required:
- access_token
- app_key
- - date_from
+ - start_date
- email
- additionalProperties: true
properties:
access_token:
title: Access Token
@@ -19,7 +19,7 @@ connectionSpecification:
title: App Key
type: string
description: App key found at settings (Ref- https://settings.yotpo.com/#/general_settings)
- date_from:
+ start_date:
title: Date-From Filter
type: string
description: Date time filter for incremental filter, Specify which date to extract from.
diff --git a/docs/integrations/sources/yotpo.md b/docs/integrations/sources/yotpo.md
index 63e6448c2f14..d4a6a19e42d1 100644
--- a/docs/integrations/sources/yotpo.md
+++ b/docs/integrations/sources/yotpo.md
@@ -15,8 +15,8 @@ Access Token (which acts as bearer token) is mandate for this connector to work,
- Available params
- access_token: The generated access token
- app_key: Seen at the yotpo settings (ref - https://settings.yotpo.com/#/general_settings)
- - date_from: Date filter for eligible streams, enter
- - email
+ - start_date: Date filter for eligible streams, enter
+ - email: Registered email address
## Step 2: Set up the Yotpo connector in Airbyte
@@ -25,14 +25,14 @@ Access Token (which acts as bearer token) is mandate for this connector to work,
1. [Log into your Airbyte Cloud](https://cloud.airbyte.io/workspaces) account.
2. In the left navigation bar, click **Sources**. In the top-right corner, click **+new source**.
3. On the Set up the source page, enter the name for the Yotpo connector and select **Yotpo** from the Source type dropdown.
-4. Enter your `access_token`.
+4. Enter your `access_token, app_key, start_date and email`.
5. Click **Set up source**.
### For Airbyte OSS:
1. Navigate to the Airbyte Open Source dashboard.
2. Set the name for your source.
-3. Enter your `access_token`.
+3. Enter your `access_token, app_key, start_date and email`.
5. Click **Set up source**.
## Supported sync modes
From a5f9e55544206b9beefc5e5dd5d5e82ecf05c007 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Sat, 15 Apr 2023 16:49:24 +0530
Subject: [PATCH 042/187] Update spec.yaml
---
.../connectors/source-yotpo/source_yotpo/spec.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
index 496dca04cc80..6e7d6441711a 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/spec.yaml
@@ -1,4 +1,4 @@
-documentationUrl: https://docs.airbyte.com/integrations/sources/pingdom
+documentationUrl: https://docs.airbyte.com/integrations/sources/yotpo
connectionSpecification:
$schema: http://json-schema.org/draft-07/schema#
title: Yotpo Spec
From fc8ddf8ffb7458fdc993493f50b266ea87d659b2 Mon Sep 17 00:00:00 2001
From: Artem Inzhyyants <36314070+artem1205@users.noreply.github.com>
Date: Thu, 13 Apr 2023 11:56:20 +0200
Subject: [PATCH 043/187] =?UTF-8?q?=F0=9F=9A=A8=F0=9F=9A=A8=20Source=20Amp?=
=?UTF-8?q?litude:=20migrate=20to=20YAML=20(#22362)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Source Amplitude: migrate to YAML
* Source Amplitude: enable high strictness level
* Source Amplitude: update docs
* Source Amplitude: update cursor field + expected records
* Source Amplitude: logging refactor
* Source Amplitude: refactor extractors
* Source Amplitude: refactor extractors
* Source Amplitude: migrate to beta low-code
* Source Amplitude: add docstring
* Source Amplitude: fix unit tests
* Source Amplitude: update expected records
* Source Amplitude: fix response filter action
* Source Amplitude: rename typo
* Source Amplitude: fix migration
* Source Amplitude: update docs
* Source Amplitude: fix migration
* Source Amplitude: update expected recrods
* Source Amplitude: bump manifest version
* Automated Change
* Source Amplitude: Update http -> https
* Source Amplitude: tests fix + pin cdk version
* auto-bump connector version
---------
Co-authored-by: artem1205
Co-authored-by: Octavia Squidington III
---
.../src/main/resources/seed/oss_catalog.json | 33 +-
.../resources/seed/source_definitions.yaml | 5 +-
.../src/main/resources/seed/source_specs.yaml | 36 +--
.../connectors/source-amplitude/Dockerfile | 36 ++-
.../connectors/source-amplitude/README.md | 64 +---
.../__init__.py} | 4 -
.../acceptance-test-config.yml | 53 ++--
.../acceptance-test-docker.sh | 0
.../integration_tests/abnormal_state.json | 6 +-
.../integration_tests/configured_catalog.json | 4 +-
.../integration_tests/expected_records.jsonl | 201 +++++++-----
.../connectors/source-amplitude/setup.py | 10 +-
.../source_amplitude/__init__.py | 23 +-
.../source-amplitude/source_amplitude/api.py | 297 ------------------
.../source_amplitude/components.py | 119 +++++++
.../source_amplitude/errors.py | 34 --
.../source_amplitude/manifest.yaml | 164 ++++++++++
.../schemas/active_users.json | 2 +-
.../source_amplitude/schemas/annotations.json | 2 +-
.../schemas/average_session_length.json | 2 +-
.../source_amplitude/schemas/cohorts.json | 2 +-
.../source_amplitude/schemas/events.json | 2 +-
.../source_amplitude/source.py | 69 +---
.../source_amplitude/spec.json | 64 ----
.../source_amplitude/spec.yaml | 47 +++
.../unit_tests/records.json.zip | Bin 0 -> 163 bytes
.../source-amplitude/unit_tests/test_api.py | 277 ----------------
.../unit_tests/test_custom_extractors.py | 114 +++++++
.../unit_tests/test_errors.py | 45 ---
.../unit_tests/test_source.py | 72 -----
.../{api_data/zipped.json => zipped.json.gz} | Bin
connectors.md | 2 +-
docs/integrations/sources/amplitude.md | 1 +
33 files changed, 682 insertions(+), 1108 deletions(-)
rename airbyte-integrations/connectors/{source-sendgrid/integration_tests/integration_test.py => source-amplitude/__init__.py} (61%)
mode change 100644 => 100755 airbyte-integrations/connectors/source-amplitude/acceptance-test-docker.sh
delete mode 100644 airbyte-integrations/connectors/source-amplitude/source_amplitude/api.py
create mode 100644 airbyte-integrations/connectors/source-amplitude/source_amplitude/components.py
delete mode 100644 airbyte-integrations/connectors/source-amplitude/source_amplitude/errors.py
create mode 100644 airbyte-integrations/connectors/source-amplitude/source_amplitude/manifest.yaml
delete mode 100644 airbyte-integrations/connectors/source-amplitude/source_amplitude/spec.json
create mode 100644 airbyte-integrations/connectors/source-amplitude/source_amplitude/spec.yaml
create mode 100644 airbyte-integrations/connectors/source-amplitude/unit_tests/records.json.zip
delete mode 100644 airbyte-integrations/connectors/source-amplitude/unit_tests/test_api.py
create mode 100644 airbyte-integrations/connectors/source-amplitude/unit_tests/test_custom_extractors.py
delete mode 100755 airbyte-integrations/connectors/source-amplitude/unit_tests/test_errors.py
delete mode 100644 airbyte-integrations/connectors/source-amplitude/unit_tests/test_source.py
rename airbyte-integrations/connectors/source-amplitude/unit_tests/{api_data/zipped.json => zipped.json.gz} (100%)
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index 97364d507cb5..99e0d82d61a2 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -8925,14 +8925,14 @@
"sourceDefinitionId": "fa9f58c6-2d03-4237-aaa4-07d75e0c1396",
"name": "Amplitude",
"dockerRepository": "airbyte/source-amplitude",
- "dockerImageTag": "0.1.24",
+ "dockerImageTag": "0.2.0",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/amplitude",
"icon": "amplitude.svg",
"sourceType": "api",
"spec": {
"documentationUrl": "https://docs.airbyte.com/integrations/sources/amplitude",
"connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "https://json-schema.org/draft-07/schema#",
"title": "Amplitude Spec",
"type": "object",
"required": [ "api_key", "secret_key", "start_date" ],
@@ -8964,26 +8964,13 @@
"description": "UTC date and time in the format 2021-01-25T00:00:00Z. Any data before this date will not be replicated.",
"examples": [ "2021-01-25T00:00:00Z" ]
},
- "event_time_interval": {
- "type": "object",
- "title": "Event Stream Time Interval",
- "description": "Amplitude event stream time interval",
- "required": [ "size_unit", "size" ],
- "properties": {
- "size_unit": {
- "type": "string",
- "title": "Events Time Interval Size Unit",
- "description": "Amplitude event stream's interval size unit",
- "enum": [ "days", "hours", "weeks", "months" ],
- "default": "days"
- },
- "size": {
- "type": "integer",
- "title": "Events Time Interval Size",
- "description": "Amplitude event stream's interval size unit",
- "default": 1
- }
- }
+ "request_time_range": {
+ "type": "integer",
+ "title": "Request time range",
+ "description": "According to Considerations too big time range in request can cause a timeout error. In this case, set shorter time interval in hours.",
+ "default": 24,
+ "minimum": 1,
+ "maximum": 8760
}
}
},
@@ -8996,7 +8983,7 @@
"custom": false,
"releaseStage": "generally_available",
"allowedHosts": {
- "hosts": [ "*.amplitude.com" ]
+ "hosts": [ "amplitude.com", "analytics.eu.amplitude.com" ]
}
}, {
"sourceDefinitionId": "47f17145-fe20-4ef5-a548-e29b048adf84",
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
index 8df1da73307a..ca4661532cbc 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
@@ -95,14 +95,15 @@
- name: Amplitude
sourceDefinitionId: fa9f58c6-2d03-4237-aaa4-07d75e0c1396
dockerRepository: airbyte/source-amplitude
- dockerImageTag: 0.1.24
+ dockerImageTag: 0.2.0
documentationUrl: https://docs.airbyte.com/integrations/sources/amplitude
icon: amplitude.svg
sourceType: api
releaseStage: generally_available
allowedHosts:
hosts:
- - "*.amplitude.com"
+ - amplitude.com
+ - analytics.eu.amplitude.com
- name: Apify Dataset
sourceDefinitionId: 47f17145-fe20-4ef5-a548-e29b048adf84
dockerRepository: airbyte/source-apify-dataset
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
index c72feec908da..7ea13d11b471 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
@@ -1314,11 +1314,11 @@
supportsNormalization: false
supportsDBT: false
supported_destination_sync_modes: []
-- dockerImage: "airbyte/source-amplitude:0.1.24"
+- dockerImage: "airbyte/source-amplitude:0.2.0"
spec:
documentationUrl: "https://docs.airbyte.com/integrations/sources/amplitude"
connectionSpecification:
- $schema: "http://json-schema.org/draft-07/schema#"
+ $schema: "https://json-schema.org/draft-07/schema#"
title: "Amplitude Spec"
type: "object"
required:
@@ -1355,29 +1355,15 @@
\ data before this date will not be replicated."
examples:
- "2021-01-25T00:00:00Z"
- event_time_interval:
- type: "object"
- title: "Event Stream Time Interval"
- description: "Amplitude event stream time interval"
- required:
- - "size_unit"
- - "size"
- properties:
- size_unit:
- type: "string"
- title: "Events Time Interval Size Unit"
- description: "Amplitude event stream's interval size unit"
- enum:
- - "days"
- - "hours"
- - "weeks"
- - "months"
- default: "days"
- size:
- type: "integer"
- title: "Events Time Interval Size"
- description: "Amplitude event stream's interval size unit"
- default: 1
+ request_time_range:
+ type: "integer"
+ title: "Request time range"
+ description: "According to Considerations too big time range in request can cause a timeout\
+ \ error. In this case, set shorter time interval in hours."
+ default: 24
+ minimum: 1
+ maximum: 8760
supportsNormalization: false
supportsDBT: false
supported_destination_sync_modes: []
diff --git a/airbyte-integrations/connectors/source-amplitude/Dockerfile b/airbyte-integrations/connectors/source-amplitude/Dockerfile
index 2f51d0ff3f12..450d0c50f4d9 100644
--- a/airbyte-integrations/connectors/source-amplitude/Dockerfile
+++ b/airbyte-integrations/connectors/source-amplitude/Dockerfile
@@ -1,16 +1,38 @@
-FROM python:3.9-slim
+FROM python:3.9.11-alpine3.15 as base
+
+# build and load all requirements
+FROM base as builder
+WORKDIR /airbyte/integration_code
+
+# upgrade pip to the latest version
+RUN apk --no-cache upgrade \
+ && pip install --upgrade pip \
+ && apk --no-cache add tzdata build-base
-# Bash is installed for more convenient debugging.
-RUN apt-get update && apt-get install -y bash && rm -rf /var/lib/apt/lists/*
+COPY setup.py ./
+# install necessary packages to a temporary folder
+RUN pip install --prefix=/install .
+
+# build a clean environment
+FROM base
WORKDIR /airbyte/integration_code
-COPY source_amplitude ./source_amplitude
+
+# copy all loaded and built libraries to a pure basic image
+COPY --from=builder /install /usr/local
+# add default timezone settings
+COPY --from=builder /usr/share/zoneinfo/Etc/UTC /etc/localtime
+RUN echo "Etc/UTC" > /etc/timezone
+
+# bash is installed for more convenient debugging.
+RUN apk --no-cache add bash
+
+# copy payload code only
COPY main.py ./
-COPY setup.py ./
-RUN pip install .
+COPY source_amplitude ./source_amplitude
ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
-LABEL io.airbyte.version=0.1.24
+LABEL io.airbyte.version=0.2.0
LABEL io.airbyte.name=airbyte/source-amplitude
diff --git a/airbyte-integrations/connectors/source-amplitude/README.md b/airbyte-integrations/connectors/source-amplitude/README.md
index 9bdf0b8c9f33..2318166113d0 100644
--- a/airbyte-integrations/connectors/source-amplitude/README.md
+++ b/airbyte-integrations/connectors/source-amplitude/README.md
@@ -1,32 +1,10 @@
# Amplitude Source
-This is the repository for the Amplitude source connector, written in Python.
-For information about how to use this connector within Airbyte, see [the documentation](https://docs.airbyte.io/integrations/sources/amplitude).
+This is the repository for the Amplitude configuration based source connector.
+For information about how to use this connector within Airbyte, see [the documentation](https://docs.airbyte.com/integrations/sources/amplitude).
## Local development
-### Prerequisites
-**To iterate on this connector, make sure to complete this prerequisites section.**
-
-#### Build & Activate Virtual Environment and install dependencies
-From this connector directory, create a virtual environment:
-```
-python -m venv .venv
-```
-
-This will generate a virtualenv for this module in `.venv/`. Make sure this venv is active in your
-development environment of choice. To activate it from the terminal, run:
-```
-source .venv/bin/activate
-pip install -r requirements.txt
-```
-If you are in an IDE, follow your IDE's instructions to activate the virtualenv.
-
-Note that while we are installing dependencies from `requirements.txt`, you should only edit `setup.py` for your dependencies. `requirements.txt` is
-used for editable installs (`pip install -e`) to pull in Python dependencies from the monorepo and will call `setup.py`.
-If this is mumbo jumbo to you, don't worry about it, just put your deps in `setup.py` but install using `pip install -r requirements.txt` and everything
-should work as you expect.
-
#### Building via Gradle
You can also build the connector in Gradle. This is typically used in CI and not needed for your development workflow.
@@ -36,22 +14,14 @@ To build using Gradle, from the Airbyte repository root, run:
```
#### Create credentials
-**If you are a community contributor**, follow the instructions in the [documentation](https://docs.airbyte.io/integrations/sources/amplitude)
-to generate the necessary credentials. Then create a file `secrets/config.json` conforming to the `source_amplitude/spec.json` file.
+**If you are a community contributor**, follow the instructions in the [documentation](https://docs.airbyte.com/integrations/sources/amplitude)
+to generate the necessary credentials. Then create a file `secrets/config.json` conforming to the `source_amplitude/spec.yaml` file.
Note that any directory named `secrets` is gitignored across the entire Airbyte repo, so there is no danger of accidentally checking in sensitive information.
See `integration_tests/sample_config.json` for a sample config file.
**If you are an Airbyte core member**, copy the credentials in Lastpass under the secret name `source amplitude test creds`
and place them into `secrets/config.json`.
-### Locally running the connector
-```
-python main.py spec
-python main.py check --config secrets/config.json
-python main.py discover --config secrets/config.json
-python main.py read --config secrets/config.json --catalog integration_tests/configured_catalog.json
-```
-
### Locally running the connector docker image
#### Build
@@ -76,33 +46,15 @@ docker run --rm -v $(pwd)/secrets:/secrets airbyte/source-amplitude:dev discover
docker run --rm -v $(pwd)/secrets:/secrets -v $(pwd)/integration_tests:/integration_tests airbyte/source-amplitude:dev read --config /secrets/config.json --catalog /integration_tests/configured_catalog.json
```
## Testing
-Make sure to familiarize yourself with [pytest test discovery](https://docs.pytest.org/en/latest/goodpractices.html#test-discovery) to know how your test files and methods should be named.
-First install test dependencies into your virtual environment:
-```
-pip install '.[tests]'
-```
-### Unit Tests
-To run unit tests locally, from the connector directory run:
-```
-python -m pytest unit_tests
-```
-### Integration Tests
-There are two types of integration tests: Acceptance Tests (Airbyte's test suite for all source connectors) and custom integration tests (which are specific to this connector).
-#### Custom Integration tests
-Place custom tests inside `integration_tests/` folder, then, from the connector root, run
-```
-python -m pytest integration_tests
-```
#### Acceptance Tests
-Customize `acceptance-test-config.yml` file to configure tests. See [Connector Acceptance Tests](https://docs.airbyte.io/connector-development/testing-connectors/connector-acceptance-tests-reference) for more information.
+Customize `acceptance-test-config.yml` file to configure tests. See [Connector Acceptance Tests](https://docs.airbyte.com/connector-development/testing-connectors/connector-acceptance-tests-reference) for more information.
If your connector requires to create or destroy resources for use during acceptance tests create fixtures for it and place them inside integration_tests/acceptance.py.
-To run your integration tests with acceptance tests, from the connector root, run
+
+To run your integration tests with Docker, run:
```
-docker build . --no-cache -t airbyte/source-amplitude:dev \
-&& python -m pytest -p connector_acceptance_test.plugin
+./acceptance-test-docker.sh
```
-To run your integration tests with docker
### Using gradle to run tests
All commands should be run from airbyte project root.
diff --git a/airbyte-integrations/connectors/source-sendgrid/integration_tests/integration_test.py b/airbyte-integrations/connectors/source-amplitude/__init__.py
similarity index 61%
rename from airbyte-integrations/connectors/source-sendgrid/integration_tests/integration_test.py
rename to airbyte-integrations/connectors/source-amplitude/__init__.py
index 5544269fad67..c941b3045795 100644
--- a/airbyte-integrations/connectors/source-sendgrid/integration_tests/integration_test.py
+++ b/airbyte-integrations/connectors/source-amplitude/__init__.py
@@ -1,7 +1,3 @@
#
# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
#
-
-
-def test_example():
- assert True
diff --git a/airbyte-integrations/connectors/source-amplitude/acceptance-test-config.yml b/airbyte-integrations/connectors/source-amplitude/acceptance-test-config.yml
index 3bcbe5347874..36d8829fa789 100644
--- a/airbyte-integrations/connectors/source-amplitude/acceptance-test-config.yml
+++ b/airbyte-integrations/connectors/source-amplitude/acceptance-test-config.yml
@@ -1,36 +1,43 @@
+# See [Connector Acceptance Tests](https://docs.airbyte.io/connector-development/testing-connectors/connector-acceptance-tests-reference)
+# for more information about how to configure these tests
connector_image: airbyte/source-amplitude:dev
test_strictness_level: high
acceptance_tests:
spec:
tests:
- - spec_path: "source_amplitude/spec.json"
+ - spec_path: "source_amplitude/spec.yaml"
connection:
tests:
- - config_path: "secrets/config.json"
- status: "succeed"
- - config_path: "integration_tests/invalid_config.json"
- status: "failed"
+ - config_path: "secrets/config.json"
+ status: "succeed"
+ - config_path: "integration_tests/invalid_config.json"
+ status: "failed"
discovery:
tests:
- - config_path: "secrets/config.json"
+ - config_path: "secrets/config.json"
+ backward_compatibility_tests_config:
+ disable_for_version: 0.1.24 # cursor field for stream events has been changed
basic_read:
tests:
- - config_path: "secrets/config.json"
- expect_records:
- path: "integration_tests/expected_records.jsonl"
- empty_streams:
- - name: "cohorts"
- bypass_reason: "This stream is empty due to free subscription plan for the sandbox."
- - name: "annotations"
- bypass_reason: "This stream is empty due to free subscription plan for the sandbox."
- fail_on_extra_columns: false
- full_refresh:
- tests:
- - config_path: "secrets/config.json"
- configured_catalog_path: "integration_tests/configured_catalog.json"
+ - config_path: "secrets/config.json"
+ empty_streams:
+ - name: "cohorts"
+ bypass_reason: "This stream is empty due to free subscription plan for the sandbox."
+ - name: "annotations"
+ bypass_reason: "This stream is empty due to free subscription plan for the sandbox."
+ expect_records:
+ path: "integration_tests/expected_records.jsonl"
+ extra_fields: no
+ exact_order: no
+ extra_records: yes
+ fail_on_extra_columns: false
incremental:
tests:
- - config_path: "secrets/config.json"
- configured_catalog_path: "integration_tests/configured_catalog.json"
- future_state:
- future_state_path: "integration_tests/abnormal_state.json"
+ - config_path: "secrets/config.json"
+ configured_catalog_path: "integration_tests/configured_catalog.json"
+ future_state:
+ future_state_path: "integration_tests/abnormal_state.json"
+ full_refresh:
+ tests:
+ - config_path: "secrets/config.json"
+ configured_catalog_path: "integration_tests/configured_catalog.json"
diff --git a/airbyte-integrations/connectors/source-amplitude/acceptance-test-docker.sh b/airbyte-integrations/connectors/source-amplitude/acceptance-test-docker.sh
old mode 100644
new mode 100755
diff --git a/airbyte-integrations/connectors/source-amplitude/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-amplitude/integration_tests/abnormal_state.json
index ad51d63cd699..d45d91157ecb 100644
--- a/airbyte-integrations/connectors/source-amplitude/integration_tests/abnormal_state.json
+++ b/airbyte-integrations/connectors/source-amplitude/integration_tests/abnormal_state.json
@@ -2,21 +2,21 @@
{
"type": "STREAM",
"stream": {
- "stream_state": { "event_time": "2025-02-15 08:00:00.000000" },
+ "stream_state": { "server_upload_time": "2100-01-01T00:00:00.00+00:00" },
"stream_descriptor": { "name": "events" }
}
},
{
"type": "STREAM",
"stream": {
- "stream_state": { "date": "2025-02-17" },
+ "stream_state": { "date": "2100-01-01" },
"stream_descriptor": { "name": "active_users" }
}
},
{
"type": "STREAM",
"stream": {
- "stream_state": { "date": "2025-02-17" },
+ "stream_state": { "date": "2100-01-01" },
"stream_descriptor": { "name": "average_session_length" }
}
}
diff --git a/airbyte-integrations/connectors/source-amplitude/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-amplitude/integration_tests/configured_catalog.json
index e333d27a8113..52bbd2410288 100644
--- a/airbyte-integrations/connectors/source-amplitude/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-amplitude/integration_tests/configured_catalog.json
@@ -52,12 +52,12 @@
"json_schema": {},
"supported_sync_modes": ["full_refresh", "incremental"],
"source_defined_cursor": true,
- "default_cursor_field": ["event_time"],
+ "default_cursor_field": ["server_upload_time"],
"source_defined_primary_key": [["uuid"]]
},
"sync_mode": "incremental",
"destination_sync_mode": "append",
- "cursor_field": ["event_time"]
+ "cursor_field": ["server_upload_time"]
}
]
}
diff --git a/airbyte-integrations/connectors/source-amplitude/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-amplitude/integration_tests/expected_records.jsonl
index cd564fc0d88d..412b5966b9bc 100644
--- a/airbyte-integrations/connectors/source-amplitude/integration_tests/expected_records.jsonl
+++ b/airbyte-integrations/connectors/source-amplitude/integration_tests/expected_records.jsonl
@@ -1,85 +1,116 @@
-{"stream": "active_users", "data": {"date": "2023-02-01", "statistics": {"(none)": 1, "Ukraine": 0}}, "emitted_at": 1676633494310}
-{"stream": "active_users", "data": {"date": "2023-02-02", "statistics": {"(none)": 1, "Ukraine": 0}}, "emitted_at": 1676633494310}
-{"stream": "active_users", "data": {"date": "2023-02-03", "statistics": {"(none)": 1, "Ukraine": 0}}, "emitted_at": 1676633494310}
-{"stream": "active_users", "data": {"date": "2023-02-04", "statistics": {"(none)": 1, "Ukraine": 0}}, "emitted_at": 1676633494310}
-{"stream": "active_users", "data": {"date": "2023-02-05", "statistics": {"(none)": 1, "Ukraine": 0}}, "emitted_at": 1676633494310}
-{"stream": "active_users", "data": {"date": "2023-02-06", "statistics": {"(none)": 1, "Ukraine": 0}}, "emitted_at": 1676633494311}
-{"stream": "active_users", "data": {"date": "2023-02-07", "statistics": {"(none)": 1, "Ukraine": 0}}, "emitted_at": 1676633494311}
-{"stream": "active_users", "data": {"date": "2023-02-08", "statistics": {"(none)": 1, "Ukraine": 0}}, "emitted_at": 1676633494311}
-{"stream": "active_users", "data": {"date": "2023-02-09", "statistics": {"(none)": 1, "Ukraine": 1}}, "emitted_at": 1676633494311}
-{"stream": "active_users", "data": {"date": "2023-02-10", "statistics": {"(none)": 1, "Ukraine": 0}}, "emitted_at": 1676633494311}
-{"stream": "active_users", "data": {"date": "2023-02-11", "statistics": {"(none)": 1, "Ukraine": 0}}, "emitted_at": 1676633494312}
-{"stream": "active_users", "data": {"date": "2023-02-12", "statistics": {"(none)": 1, "Ukraine": 0}}, "emitted_at": 1676633494312}
-{"stream": "active_users", "data": {"date": "2023-02-13", "statistics": {"(none)": 1, "Ukraine": 0}}, "emitted_at": 1676633494312}
-{"stream": "active_users", "data": {"date": "2023-02-14", "statistics": {"(none)": 1, "Ukraine": 0}}, "emitted_at": 1676633494312}
-{"stream": "active_users", "data": {"date": "2023-02-15", "statistics": {"(none)": 1, "Ukraine": 0}}, "emitted_at": 1676633494312}
-{"stream": "average_session_length", "data": {"date": "2023-02-01", "length": 0}, "emitted_at": 1676633495359}
-{"stream": "average_session_length", "data": {"date": "2023-02-02", "length": 0}, "emitted_at": 1676633495359}
-{"stream": "average_session_length", "data": {"date": "2023-02-03", "length": 0}, "emitted_at": 1676633495360}
-{"stream": "average_session_length", "data": {"date": "2023-02-04", "length": 0}, "emitted_at": 1676633495360}
-{"stream": "average_session_length", "data": {"date": "2023-02-05", "length": 0}, "emitted_at": 1676633495360}
-{"stream": "average_session_length", "data": {"date": "2023-02-06", "length": 0}, "emitted_at": 1676633495360}
-{"stream": "average_session_length", "data": {"date": "2023-02-07", "length": 0}, "emitted_at": 1676633495360}
-{"stream": "average_session_length", "data": {"date": "2023-02-08", "length": 0}, "emitted_at": 1676633495360}
-{"stream": "average_session_length", "data": {"date": "2023-02-09", "length": 0}, "emitted_at": 1676633495360}
-{"stream": "average_session_length", "data": {"date": "2023-02-10", "length": 0}, "emitted_at": 1676633495360}
-{"stream": "average_session_length", "data": {"date": "2023-02-11", "length": 0}, "emitted_at": 1676633495361}
-{"stream": "average_session_length", "data": {"date": "2023-02-12", "length": 0}, "emitted_at": 1676633495361}
-{"stream": "average_session_length", "data": {"date": "2023-02-13", "length": 0}, "emitted_at": 1676633495361}
-{"stream": "average_session_length", "data": {"date": "2023-02-14", "length": 0}, "emitted_at": 1676633495361}
-{"stream": "average_session_length", "data": {"date": "2023-02-15", "length": 0}, "emitted_at": 1676633495361}
-{"stream": "average_session_length", "data": {"date": "2023-02-16", "length": 0}, "emitted_at": 1676633495361}
-{"stream": "average_session_length", "data": {"date": "2023-02-16", "length": 0}, "emitted_at": 1676633496935}
-{"stream": "average_session_length", "data": {"date": "2023-02-17", "length": 0}, "emitted_at": 1676633496935}
-{"stream": "average_session_length", "data": {"date": "2023-02-16", "length": 0}, "emitted_at": 1676633497355}
-{"stream": "average_session_length", "data": {"date": "2023-02-17", "length": 0}, "emitted_at": 1676633497356}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-DESKTOP-2023-02-01", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-01T08:00:00+00:00", "client_upload_time": "2023-02-02T12:03:25.005000+00:00", "country": null, "data": {"user_properties_updated": true, "vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 579725194, "event_properties": {"ad_metrics.cost": 0.087394, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "DESKTOP", "ad_metrics.impressions": 258, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-01T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-02T12:03:52.152000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-02T12:03:25.005000+00:00", "server_upload_time": "2023-02-02T12:03:43.846000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "a8b6b648-a2f1-11ed-b981-774fa598444a", "version_name": null}, "emitted_at": 1676633500206}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-TABLET-2023-02-01", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-01T08:00:00+00:00", "client_upload_time": "2023-02-02T12:03:25.005000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 186292011, "event_properties": {"ad_metrics.cost": 0.237483, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "TABLET", "ad_metrics.impressions": 268, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-01T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-02T12:03:52.152000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-02T12:03:25.005000+00:00", "server_upload_time": "2023-02-02T12:03:43.846000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "a8b6c322-a2f1-11ed-9dbe-774fa598444a", "version_name": null}, "emitted_at": 1676633500207}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-MOBILE-2023-02-01", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-01T08:00:00+00:00", "client_upload_time": "2023-02-02T12:03:25.005000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 343534293, "event_properties": {"ad_metrics.cost": 1.913081, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "MOBILE", "ad_metrics.impressions": 2380, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 4, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 4, "campaign_id": 19410069806}, "event_time": "2023-02-01T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-02T12:03:52.152000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-02T12:03:25.005000+00:00", "server_upload_time": "2023-02-02T12:03:43.846000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "a8b6bd56-a2f1-11ed-84fd-774fa598444a", "version_name": null}, "emitted_at": 1676633500208}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-DESKTOP-2023-02-02", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-02T08:00:00+00:00", "client_upload_time": "2023-02-03T12:02:59.374000+00:00", "country": null, "data": {"user_properties_updated": true, "vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 444502983, "event_properties": {"ad_metrics.cost": 0.098846, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "DESKTOP", "ad_metrics.impressions": 260, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-02T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-03T12:03:14.894000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-03T12:02:59.374000+00:00", "server_upload_time": "2023-02-03T12:03:12.182000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "bcf76cb7-a3ba-11ed-bbc1-ef5367694578", "version_name": null}, "emitted_at": 1676633500606}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-TABLET-2023-02-02", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-02T08:00:00+00:00", "client_upload_time": "2023-02-03T12:02:59.374000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 540530303, "event_properties": {"ad_metrics.cost": 0.255795, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "TABLET", "ad_metrics.impressions": 318, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-02T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-03T12:03:14.894000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-03T12:02:59.374000+00:00", "server_upload_time": "2023-02-03T12:03:12.182000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "bcf77ba6-a3ba-11ed-b2f9-ef5367694578", "version_name": null}, "emitted_at": 1676633500607}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-MOBILE-2023-02-02", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-02T08:00:00+00:00", "client_upload_time": "2023-02-03T12:02:59.374000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 472999226, "event_properties": {"ad_metrics.cost": 1.91728, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "MOBILE", "ad_metrics.impressions": 2473, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 3, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 3, "campaign_id": 19410069806}, "event_time": "2023-02-02T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-03T12:03:14.894000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-03T12:02:59.374000+00:00", "server_upload_time": "2023-02-03T12:03:12.182000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "bcf77529-a3ba-11ed-9ee2-ef5367694578", "version_name": null}, "emitted_at": 1676633500607}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-DESKTOP-2023-02-03", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-03T08:00:00+00:00", "client_upload_time": "2023-02-04T12:02:25.436000+00:00", "country": null, "data": {"user_properties_updated": true, "vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 830727485, "event_properties": {"ad_metrics.cost": 0.075498, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "DESKTOP", "ad_metrics.impressions": 229, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-03T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-04T12:02:41.144000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-04T12:02:25.436000+00:00", "server_upload_time": "2023-02-04T12:02:37.836000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "d3388c42-a483-11ed-a241-a9a73855976a", "version_name": null}, "emitted_at": 1676633501850}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-TABLET-2023-02-03", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-03T08:00:00+00:00", "client_upload_time": "2023-02-04T12:02:25.436000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 738101948, "event_properties": {"ad_metrics.cost": 0.109966, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "TABLET", "ad_metrics.impressions": 166, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-03T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-04T12:02:41.144000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-04T12:02:25.436000+00:00", "server_upload_time": "2023-02-04T12:02:37.836000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "d3389906-a483-11ed-9a82-a9a73855976a", "version_name": null}, "emitted_at": 1676633501851}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-MOBILE-2023-02-03", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-03T08:00:00+00:00", "client_upload_time": "2023-02-04T12:02:25.436000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 181349706, "event_properties": {"ad_metrics.cost": 2.031292, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "MOBILE", "ad_metrics.impressions": 2580, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 5, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 5, "campaign_id": 19410069806}, "event_time": "2023-02-03T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-04T12:02:41.144000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-04T12:02:25.436000+00:00", "server_upload_time": "2023-02-04T12:02:37.836000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "d3389329-a483-11ed-90ec-a9a73855976a", "version_name": null}, "emitted_at": 1676633501852}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-DESKTOP-2023-02-04", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-04T08:00:00+00:00", "client_upload_time": "2023-02-05T12:04:06.941000+00:00", "country": null, "data": {"user_properties_updated": true, "vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 920042324, "event_properties": {"ad_metrics.cost": 0.077221, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "DESKTOP", "ad_metrics.impressions": 272, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-04T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-05T12:17:06.057000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-05T12:04:06.941000+00:00", "server_upload_time": "2023-02-05T12:15:52.509000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "01311b3f-a54f-11ed-bd6b-b9b1c4f00a9c", "version_name": null}, "emitted_at": 1676633502187}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-CONNECTED_TV-2023-02-04", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-04T08:00:00+00:00", "client_upload_time": "2023-02-05T12:04:06.941000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 323952360, "event_properties": {"ad_metrics.cost": 0.000117, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "CONNECTED_TV", "ad_metrics.impressions": 6, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-04T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-05T12:17:06.057000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-05T12:04:06.941000+00:00", "server_upload_time": "2023-02-05T12:15:52.509000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "01312d7f-a54f-11ed-b760-b9b1c4f00a9c", "version_name": null}, "emitted_at": 1676633502188}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-TABLET-2023-02-04", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-04T08:00:00+00:00", "client_upload_time": "2023-02-05T12:04:06.941000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 335634502, "event_properties": {"ad_metrics.cost": 0.180594, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "TABLET", "ad_metrics.impressions": 238, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 2, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 2, "campaign_id": 19410069806}, "event_time": "2023-02-04T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-05T12:17:06.057000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-05T12:04:06.941000+00:00", "server_upload_time": "2023-02-05T12:15:52.509000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "013127e4-a54f-11ed-94cb-b9b1c4f00a9c", "version_name": null}, "emitted_at": 1676633502189}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-MOBILE-2023-02-04", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-04T08:00:00+00:00", "client_upload_time": "2023-02-05T12:04:06.941000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 978891508, "event_properties": {"ad_metrics.cost": 1.956155, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "MOBILE", "ad_metrics.impressions": 2409, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 5, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 5, "campaign_id": 19410069806}, "event_time": "2023-02-04T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-05T12:17:06.057000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-05T12:04:06.941000+00:00", "server_upload_time": "2023-02-05T12:15:52.509000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "01312229-a54f-11ed-b0ff-b9b1c4f00a9c", "version_name": null}, "emitted_at": 1676633502190}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-DESKTOP-2023-02-05", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-05T08:00:00+00:00", "client_upload_time": "2023-02-06T12:01:06.017000+00:00", "country": null, "data": {"user_properties_updated": true, "vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 862973577, "event_properties": {"ad_metrics.cost": 0.071026, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "DESKTOP", "ad_metrics.impressions": 195, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-05T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-06T12:02:08.452000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-06T12:01:06.017000+00:00", "server_upload_time": "2023-02-06T12:01:17.335000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "14915d67-a616-11ed-b37b-1d24c3d1426b", "version_name": null}, "emitted_at": 1676633503419}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-TABLET-2023-02-05", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-05T08:00:00+00:00", "client_upload_time": "2023-02-06T12:01:06.017000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 183007151, "event_properties": {"ad_metrics.cost": 0.144935, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "TABLET", "ad_metrics.impressions": 188, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-05T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-06T12:02:08.452000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-06T12:01:06.017000+00:00", "server_upload_time": "2023-02-06T12:01:17.335000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "14916bdc-a616-11ed-abef-1d24c3d1426b", "version_name": null}, "emitted_at": 1676633503420}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-MOBILE-2023-02-05", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-05T08:00:00+00:00", "client_upload_time": "2023-02-06T12:01:06.017000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 681776226, "event_properties": {"ad_metrics.cost": 1.997995, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "MOBILE", "ad_metrics.impressions": 2583, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 3, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 3, "campaign_id": 19410069806}, "event_time": "2023-02-05T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-06T12:02:08.452000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-06T12:01:06.017000+00:00", "server_upload_time": "2023-02-06T12:01:17.335000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "149164c6-a616-11ed-b3e0-1d24c3d1426b", "version_name": null}, "emitted_at": 1676633503421}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-DESKTOP-2023-02-06", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-06T08:00:00+00:00", "client_upload_time": "2023-02-07T12:01:48.859000+00:00", "country": null, "data": {"user_properties_updated": true, "vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 970466740, "event_properties": {"ad_metrics.cost": 0.078221, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "DESKTOP", "ad_metrics.impressions": 278, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-06T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-07T12:02:07.033000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-07T12:01:48.859000+00:00", "server_upload_time": "2023-02-07T12:02:04.872000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "3e28db97-a6df-11ed-be64-5d7f35c3b01a", "version_name": null}, "emitted_at": 1676633503787}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-CONNECTED_TV-2023-02-06", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-06T08:00:00+00:00", "client_upload_time": "2023-02-07T12:01:48.859000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 567803347, "event_properties": {"ad_metrics.cost": 0.0, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "CONNECTED_TV", "ad_metrics.impressions": 4, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-06T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-07T12:02:07.033000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-07T12:01:48.859000+00:00", "server_upload_time": "2023-02-07T12:02:04.872000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "3e28ee9f-a6df-11ed-8c6f-5d7f35c3b01a", "version_name": null}, "emitted_at": 1676633503788}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-TABLET-2023-02-06", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-06T08:00:00+00:00", "client_upload_time": "2023-02-07T12:01:48.859000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 557070126, "event_properties": {"ad_metrics.cost": 0.192373, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "TABLET", "ad_metrics.impressions": 213, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-06T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-07T12:02:07.033000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-07T12:01:48.859000+00:00", "server_upload_time": "2023-02-07T12:02:04.872000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "3e28e905-a6df-11ed-b2b0-5d7f35c3b01a", "version_name": null}, "emitted_at": 1676633503789}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-MOBILE-2023-02-06", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-06T08:00:00+00:00", "client_upload_time": "2023-02-07T12:01:48.859000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 701875278, "event_properties": {"ad_metrics.cost": 2.018299, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "MOBILE", "ad_metrics.impressions": 2595, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 4, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 4, "campaign_id": 19410069806}, "event_time": "2023-02-06T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-07T12:02:07.033000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-07T12:01:48.859000+00:00", "server_upload_time": "2023-02-07T12:02:04.872000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "3e28e312-a6df-11ed-8dec-5d7f35c3b01a", "version_name": null}, "emitted_at": 1676633503789}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-DESKTOP-2023-02-07", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-07T08:00:00+00:00", "client_upload_time": "2023-02-08T12:02:25.066000+00:00", "country": null, "data": {"user_properties_updated": true, "vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 215560287, "event_properties": {"ad_metrics.cost": 0.049814, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "DESKTOP", "ad_metrics.impressions": 208, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 1, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 1, "campaign_id": 19410069806}, "event_time": "2023-02-07T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-08T12:02:39.178000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-08T12:02:25.066000+00:00", "server_upload_time": "2023-02-08T12:02:35.998000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "7bba250f-a7a8-11ed-9ce6-3718c73e0dcb", "version_name": null}, "emitted_at": 1676633505339}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-TABLET-2023-02-07", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-07T08:00:00+00:00", "client_upload_time": "2023-02-08T12:02:25.066000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 750045948, "event_properties": {"ad_metrics.cost": 0.145436, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "TABLET", "ad_metrics.impressions": 180, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-07T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-08T12:02:39.178000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-08T12:02:25.066000+00:00", "server_upload_time": "2023-02-08T12:02:35.998000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "7bba32f5-a7a8-11ed-a10d-3718c73e0dcb", "version_name": null}, "emitted_at": 1676633505340}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-MOBILE-2023-02-07", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-07T08:00:00+00:00", "client_upload_time": "2023-02-08T12:02:25.066000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 54427230, "event_properties": {"ad_metrics.cost": 2.093716, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "MOBILE", "ad_metrics.impressions": 2694, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 3, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 3, "campaign_id": 19410069806}, "event_time": "2023-02-07T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-08T12:02:39.178000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-08T12:02:25.066000+00:00", "server_upload_time": "2023-02-08T12:02:35.998000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {}, "uuid": "7bba2cff-a7a8-11ed-baf0-3718c73e0dcb", "version_name": null}, "emitted_at": 1676633505341}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-DESKTOP-2023-02-08", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-08T08:00:00+00:00", "client_upload_time": "2023-02-09T12:02:17.656000+00:00", "country": null, "data": {"user_properties_updated": true, "vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 500159953, "event_properties": {"ad_metrics.cost": 0.063632, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "DESKTOP", "ad_metrics.impressions": 275, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-08T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-09T12:02:40.173000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-09T12:02:17.656000+00:00", "server_upload_time": "2023-02-09T12:02:37.115000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "a6b63b9b-a871-11ed-8e0e-556bceaee760", "version_name": null}, "emitted_at": 1676633506774}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-CONNECTED_TV-2023-02-08", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-08T08:00:00+00:00", "client_upload_time": "2023-02-09T12:02:17.656000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 91323750, "event_properties": {"ad_metrics.cost": 2.4e-05, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "CONNECTED_TV", "ad_metrics.impressions": 2, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-08T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-09T12:02:40.173000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-09T12:02:17.656000+00:00", "server_upload_time": "2023-02-09T12:02:37.115000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "a6b65793-a871-11ed-9158-556bceaee760", "version_name": null}, "emitted_at": 1676633506774}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-TABLET-2023-02-08", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-08T08:00:00+00:00", "client_upload_time": "2023-02-09T12:02:17.656000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 248713684, "event_properties": {"ad_metrics.cost": 0.111586, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "TABLET", "ad_metrics.impressions": 188, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 1, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 1, "campaign_id": 19410069806}, "event_time": "2023-02-08T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-09T12:02:40.173000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-09T12:02:17.656000+00:00", "server_upload_time": "2023-02-09T12:02:37.115000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "a6b6514c-a871-11ed-963a-556bceaee760", "version_name": null}, "emitted_at": 1676633506775}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-MOBILE-2023-02-08", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-08T08:00:00+00:00", "client_upload_time": "2023-02-09T12:02:17.656000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 771697037, "event_properties": {"ad_metrics.cost": 2.075305, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "MOBILE", "ad_metrics.impressions": 2687, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 7, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 7, "campaign_id": 19410069806}, "event_time": "2023-02-08T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-09T12:02:40.173000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-09T12:02:17.656000+00:00", "server_upload_time": "2023-02-09T12:02:37.115000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "a6b64994-a871-11ed-bdac-556bceaee760", "version_name": null}, "emitted_at": 1676633506776}
-{"stream": "events", "data": {"$insert_id": "13648a56-a2bf-468d-89ce-af8148d5eb4b", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 568771836625, "app": 434735, "city": "Kyiv", "client_event_time": "2023-02-09T09:57:33+00:00", "client_upload_time": "2023-02-09T09:57:33+00:00", "country": "Ukraine", "data": {"user_properties_updated": true, "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "ff91a939-5a66-57f3-934c-6e58f7bd6da2", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 115597971, "event_properties": {"keyBool": true, "keyString": "valueString", "keyInt": 11}, "event_time": "2023-02-09T09:57:33+00:00", "event_type": "[Shopify] Connect Amplitude Test", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": "85.209.47.207", "is_attribution_event": null, "language": null, "library": "amplitude-node/1.10.0", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-09T09:57:35.351000+00:00", "region": "Kyiv City", "sample_rate": null, "server_received_time": "2023-02-09T09:57:33+00:00", "server_upload_time": "2023-02-09T09:57:33.014000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": "testuserEmail@gmail.com", "user_properties": {}, "uuid": "2d7ec4b1-a860-11ed-aae8-01da73a04a5b", "version_name": null}, "emitted_at": 1676633506777}
-{"stream": "events", "data": {"$insert_id": "ca3fb836-163b-4898-9d59-1586fe103693", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 568771836625, "app": 434735, "city": "Kyiv", "client_event_time": "2023-02-09T09:57:39.118000+00:00", "client_upload_time": "2023-02-09T09:57:39.118000+00:00", "country": "Ukraine", "data": {"group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "ff91a939-5a66-57f3-934c-6e58f7bd6da2", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 748377217, "event_properties": {"keyBool": true, "keyString": "valueString", "keyInt": 11}, "event_time": "2023-02-09T09:57:39.118000+00:00", "event_type": "[Shopify] Connect Amplitude Test", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": "85.209.47.207", "is_attribution_event": null, "language": null, "library": "amplitude-node/1.10.0", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-09T09:57:40.295000+00:00", "region": "Kyiv City", "sample_rate": null, "server_received_time": "2023-02-09T09:57:39.118000+00:00", "server_upload_time": "2023-02-09T09:57:39.123000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": "testuserEmail@gmail.com", "user_properties": {}, "uuid": "30869ad0-a860-11ed-a807-f949e6b8dfb8", "version_name": null}, "emitted_at": 1676633506777}
-{"stream": "events", "data": {"$insert_id": "6bf42abd-5033-4ea6-9574-c1c674a4d32d", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 568771836625, "app": 434735, "city": "Kyiv", "client_event_time": "2023-02-09T09:57:44.390000+00:00", "client_upload_time": "2023-02-09T09:57:44.390000+00:00", "country": "Ukraine", "data": {"group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "ff91a939-5a66-57f3-934c-6e58f7bd6da2", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 969823192, "event_properties": {"keyBool": true, "keyString": "valueString", "keyInt": 11}, "event_time": "2023-02-09T09:57:44.390000+00:00", "event_type": "[Shopify] Connect Amplitude Test", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": "85.209.47.207", "is_attribution_event": null, "language": null, "library": "amplitude-node/1.10.0", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-09T09:57:45.721000+00:00", "region": "Kyiv City", "sample_rate": null, "server_received_time": "2023-02-09T09:57:44.390000+00:00", "server_upload_time": "2023-02-09T09:57:44.394000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": "testuserEmail@gmail.com", "user_properties": {}, "uuid": "33c35984-a860-11ed-8460-f949e6b8dfb8", "version_name": null}, "emitted_at": 1676633506778}
-{"stream": "events", "data": {"$insert_id": "afb8f963-cae5-4232-b20d-9047440d29c9", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 568771836625, "app": 434735, "city": "Kyiv", "client_event_time": "2023-02-09T09:58:07.981000+00:00", "client_upload_time": "2023-02-09T09:58:07.981000+00:00", "country": "Ukraine", "data": {"group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "ff91a939-5a66-57f3-934c-6e58f7bd6da2", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 318819040, "event_properties": {"keyBool": true, "keyString": "valueString", "keyInt": 11}, "event_time": "2023-02-09T09:58:07.981000+00:00", "event_type": "[Shopify] Connect Amplitude Test", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": "85.209.47.207", "is_attribution_event": null, "language": null, "library": "amplitude-node/1.10.0", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-09T09:58:10.307000+00:00", "region": "Kyiv City", "sample_rate": null, "server_received_time": "2023-02-09T09:58:07.981000+00:00", "server_upload_time": "2023-02-09T09:58:07.987000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": "testuserEmail@gmail.com", "user_properties": {}, "uuid": "426b1ef9-a860-11ed-8868-f949e6b8dfb8", "version_name": null}, "emitted_at": 1676633506779}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-DESKTOP-2023-02-10", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-10T08:00:00+00:00", "client_upload_time": "2023-02-11T12:01:50.248000+00:00", "country": null, "data": {"user_properties_updated": true, "vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 782291950, "event_properties": {"ad_metrics.cost": 0.070298, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "DESKTOP", "ad_metrics.impressions": 250, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-10T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-11T12:02:19.794000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-11T12:01:50.248000+00:00", "server_upload_time": "2023-02-11T12:02:04.360000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "ef62e73e-aa03-11ed-ab60-21041b90b30e", "version_name": null}, "emitted_at": 1676633509080}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-TABLET-2023-02-10", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-10T08:00:00+00:00", "client_upload_time": "2023-02-11T12:01:50.248000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 660413772, "event_properties": {"ad_metrics.cost": 0.137032, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "TABLET", "ad_metrics.impressions": 184, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-10T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-11T12:02:19.794000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-11T12:01:50.248000+00:00", "server_upload_time": "2023-02-11T12:02:04.360000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "ef62f428-aa03-11ed-9aea-21041b90b30e", "version_name": null}, "emitted_at": 1676633509081}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-MOBILE-2023-02-10", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-10T08:00:00+00:00", "client_upload_time": "2023-02-11T12:01:50.248000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 345846795, "event_properties": {"ad_metrics.cost": 1.986076, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "MOBILE", "ad_metrics.impressions": 2366, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 3, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 3, "campaign_id": 19410069806}, "event_time": "2023-02-10T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-11T12:02:19.794000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-11T12:01:50.248000+00:00", "server_upload_time": "2023-02-11T12:02:04.360000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "ef62ee58-aa03-11ed-9470-21041b90b30e", "version_name": null}, "emitted_at": 1676633509082}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-DESKTOP-2023-02-11", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-11T08:00:00+00:00", "client_upload_time": "2023-02-12T12:02:28.595000+00:00", "country": null, "data": {"user_properties_updated": true, "vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 589830428, "event_properties": {"ad_metrics.cost": 0.069645, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "DESKTOP", "ad_metrics.impressions": 183, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-11T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-12T12:03:53.410000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-12T12:02:28.595000+00:00", "server_upload_time": "2023-02-12T12:02:39.319000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "518af7fe-aacd-11ed-9a80-43c1bac2ac7b", "version_name": null}, "emitted_at": 1676633510148}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-TABLET-2023-02-11", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-11T08:00:00+00:00", "client_upload_time": "2023-02-12T12:02:28.595000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 661524851, "event_properties": {"ad_metrics.cost": 0.100511, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "TABLET", "ad_metrics.impressions": 125, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-11T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-12T12:03:53.410000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-12T12:02:28.595000+00:00", "server_upload_time": "2023-02-12T12:02:39.319000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "518b0451-aacd-11ed-bf81-43c1bac2ac7b", "version_name": null}, "emitted_at": 1676633510148}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-MOBILE-2023-02-11", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-11T08:00:00+00:00", "client_upload_time": "2023-02-12T12:02:28.595000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 608278585, "event_properties": {"ad_metrics.cost": 2.019566, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "MOBILE", "ad_metrics.impressions": 2505, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 3, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 3, "campaign_id": 19410069806}, "event_time": "2023-02-11T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-12T12:03:53.410000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-12T12:02:28.595000+00:00", "server_upload_time": "2023-02-12T12:02:39.319000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "518afebd-aacd-11ed-a1be-43c1bac2ac7b", "version_name": null}, "emitted_at": 1676633510149}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-DESKTOP-2023-02-12", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-12T08:00:00+00:00", "client_upload_time": "2023-02-13T12:02:12.416000+00:00", "country": null, "data": {"user_properties_updated": true, "vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 756118159, "event_properties": {"ad_metrics.cost": 0.047594, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "DESKTOP", "ad_metrics.impressions": 228, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-12T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-13T12:02:26.981000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-13T12:02:12.416000+00:00", "server_upload_time": "2023-02-13T12:02:22.901000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "488ce6ab-ab96-11ed-a18e-516670498ef9", "version_name": null}, "emitted_at": 1676633510566}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-TABLET-2023-02-12", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-12T08:00:00+00:00", "client_upload_time": "2023-02-13T12:02:12.416000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 726820846, "event_properties": {"ad_metrics.cost": 0.094987, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "TABLET", "ad_metrics.impressions": 135, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-12T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-13T12:02:26.981000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-13T12:02:12.416000+00:00", "server_upload_time": "2023-02-13T12:02:22.901000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "488cf2ca-ab96-11ed-baad-516670498ef9", "version_name": null}, "emitted_at": 1676633510567}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-MOBILE-2023-02-12", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-12T08:00:00+00:00", "client_upload_time": "2023-02-13T12:02:12.416000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 30838997, "event_properties": {"ad_metrics.cost": 2.057797, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "MOBILE", "ad_metrics.impressions": 2555, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 7, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 7, "campaign_id": 19410069806}, "event_time": "2023-02-12T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-13T12:02:26.981000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-13T12:02:12.416000+00:00", "server_upload_time": "2023-02-13T12:02:22.901000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "488ced3a-ab96-11ed-9cc6-516670498ef9", "version_name": null}, "emitted_at": 1676633510568}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-DESKTOP-2023-02-13", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-13T08:00:00+00:00", "client_upload_time": "2023-02-14T12:02:09.474000+00:00", "country": null, "data": {"user_properties_updated": true, "vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 602281810, "event_properties": {"ad_metrics.cost": 0.084583, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "DESKTOP", "ad_metrics.impressions": 227, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-13T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-14T12:02:24.303000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-14T12:02:09.474000+00:00", "server_upload_time": "2023-02-14T12:02:20.979000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "7152006b-ac5f-11ed-bb6d-b95ddc26bbd1", "version_name": null}, "emitted_at": 1676633511090}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-TABLET-2023-02-13", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-13T08:00:00+00:00", "client_upload_time": "2023-02-14T12:02:09.474000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 204201377, "event_properties": {"ad_metrics.cost": 0.1489, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "TABLET", "ad_metrics.impressions": 191, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-13T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-14T12:02:24.303000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-14T12:02:09.474000+00:00", "server_upload_time": "2023-02-14T12:02:20.979000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "71520cd4-ac5f-11ed-8538-b95ddc26bbd1", "version_name": null}, "emitted_at": 1676633511091}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-MOBILE-2023-02-13", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-13T08:00:00+00:00", "client_upload_time": "2023-02-14T12:02:09.474000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 96617686, "event_properties": {"ad_metrics.cost": 2.033321, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "MOBILE", "ad_metrics.impressions": 2658, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 5, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 5, "campaign_id": 19410069806}, "event_time": "2023-02-13T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-14T12:02:24.303000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-14T12:02:09.474000+00:00", "server_upload_time": "2023-02-14T12:02:20.979000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "71520734-ac5f-11ed-bc4a-b95ddc26bbd1", "version_name": null}, "emitted_at": 1676633511092}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-DESKTOP-2023-02-14", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-14T08:00:00+00:00", "client_upload_time": "2023-02-15T12:02:02.211000+00:00", "country": null, "data": {"user_properties_updated": true, "vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 325453045, "event_properties": {"ad_metrics.cost": 0.065906, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "DESKTOP", "ad_metrics.impressions": 291, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-14T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-15T12:02:17.536000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-15T12:02:02.211000+00:00", "server_upload_time": "2023-02-15T12:02:15.558000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "97bd311f-ad28-11ed-a272-9937469197fb", "version_name": null}, "emitted_at": 1676633511617}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-TABLET-2023-02-14", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-14T08:00:00+00:00", "client_upload_time": "2023-02-15T12:02:02.211000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 579050854, "event_properties": {"ad_metrics.cost": 0.085808, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "TABLET", "ad_metrics.impressions": 166, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-14T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-15T12:02:17.536000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-15T12:02:02.211000+00:00", "server_upload_time": "2023-02-15T12:02:15.558000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "97bd3d80-ad28-11ed-9543-9937469197fb", "version_name": null}, "emitted_at": 1676633511618}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-MOBILE-2023-02-14", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-14T08:00:00+00:00", "client_upload_time": "2023-02-15T12:02:02.211000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 153980233, "event_properties": {"ad_metrics.cost": 2.036793, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "MOBILE", "ad_metrics.impressions": 2514, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 4, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 4, "campaign_id": 19410069806}, "event_time": "2023-02-14T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-15T12:02:17.536000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-15T12:02:02.211000+00:00", "server_upload_time": "2023-02-15T12:02:15.558000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "97bd37e1-ad28-11ed-a554-9937469197fb", "version_name": null}, "emitted_at": 1676633511619}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-DESKTOP-2023-02-15", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-15T08:00:00+00:00", "client_upload_time": "2023-02-16T12:01:18.942000+00:00", "country": null, "data": {"user_properties_updated": true, "vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 230240803, "event_properties": {"ad_metrics.cost": 0.043522, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "DESKTOP", "ad_metrics.impressions": 193, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-15T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-16T12:01:41.299000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-16T12:01:18.942000+00:00", "server_upload_time": "2023-02-16T12:01:39.526000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "ac8bae8d-adf1-11ed-b15b-91b6ce29e523", "version_name": null}, "emitted_at": 1676633512157}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-CONNECTED_TV-2023-02-15", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-15T08:00:00+00:00", "client_upload_time": "2023-02-16T12:01:18.942000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 324823220, "event_properties": {"ad_metrics.cost": 3e-05, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "CONNECTED_TV", "ad_metrics.impressions": 1, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 0, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 0, "campaign_id": 19410069806}, "event_time": "2023-02-15T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-16T12:01:41.299000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-16T12:01:18.942000+00:00", "server_upload_time": "2023-02-16T12:01:39.526000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "ac8bc13f-adf1-11ed-b15c-91b6ce29e523", "version_name": null}, "emitted_at": 1676633512158}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-TABLET-2023-02-15", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-15T08:00:00+00:00", "client_upload_time": "2023-02-16T12:01:18.942000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 427159891, "event_properties": {"ad_metrics.cost": 0.127895, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "TABLET", "ad_metrics.impressions": 173, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 1, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 1, "campaign_id": 19410069806}, "event_time": "2023-02-15T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-16T12:01:41.299000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-16T12:01:18.942000+00:00", "server_upload_time": "2023-02-16T12:01:39.526000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "ac8bbbc1-adf1-11ed-9548-91b6ce29e523", "version_name": null}, "emitted_at": 1676633512159}
-{"stream": "events", "data": {"$insert_id": "google-ad-4651612872-643022056303-MOBILE-2023-02-15", "$insert_key": null, "$schema": null, "adid": null, "amplitude_attribution_ids": null, "amplitude_event_type": null, "amplitude_id": 550106004607, "app": 434735, "city": null, "client_event_time": "2023-02-15T08:00:00+00:00", "client_upload_time": "2023-02-16T12:01:18.942000+00:00", "country": null, "data": {"vacuum_source_id": "5955", "group_first_event": {}, "group_ids": {}}, "data_type": "event", "device_brand": null, "device_carrier": null, "device_family": null, "device_id": "google-ad-4651612872-643022056303", "device_manufacturer": null, "device_model": null, "device_type": null, "dma": null, "event_id": 26870094, "event_properties": {"ad_metrics.cost": 2.069498, "campaign_advertising_channel_type": "DISPLAY", "ad_segment_device": "MOBILE", "ad_metrics.impressions": 2644, "ad_group_type": "DISPLAY_STANDARD", "campaign_name": "Brand awareness and reach-Display-1", "ad_group_name": "Ad group 1", "ad_id": 643022056303, "campaign_start_date": "2022-12-28", "final_url": "https://airbyte.com", "ad_platform": "google", "campaign_end_date": "2037-12-30", "ad_metrics.clicks": 5, "ad_group_id": 144799120517, "ad_metrics.conversions": 0.0, "ad_metrics.interactions": 5, "campaign_id": 19410069806}, "event_time": "2023-02-15T08:00:00+00:00", "event_type": "Daily Ad Metrics", "global_user_properties": null, "group_properties": {}, "groups": {}, "idfa": null, "ip_address": null, "is_attribution_event": null, "language": null, "library": "google_ads", "location_lat": null, "location_lng": null, "os_name": null, "os_version": null, "partner_id": null, "paying": null, "plan": {}, "platform": null, "processed_time": "2023-02-16T12:01:41.299000+00:00", "region": null, "sample_rate": null, "server_received_time": "2023-02-16T12:01:18.942000+00:00", "server_upload_time": "2023-02-16T12:01:39.526000+00:00", "session_id": -1, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": {"country": "test", "device_model": "test", "city": "test", "os_version": "test", "City": "London", "platform": "test", "device_manufacturer": "test", "carrier": "test", "device_brand": "test", "Region": "London", "DMA": "London", "Country": "UK", "os_name": "test", "region": "test"}, "uuid": "ac8bb5e3-adf1-11ed-b665-91b6ce29e523", "version_name": null}, "emitted_at": 1676633512160}
+{"stream":"active_users","data":{"date":"2023-02-01","statistics":{"(none)":1,"Ukraine":0}},"emitted_at":1676633494310}
+{"stream":"active_users","data":{"date":"2023-02-02","statistics":{"(none)":1,"Ukraine":0}},"emitted_at":1676633494310}
+{"stream":"active_users","data":{"date":"2023-02-03","statistics":{"(none)":1,"Ukraine":0}},"emitted_at":1676633494310}
+{"stream":"active_users","data":{"date":"2023-02-04","statistics":{"(none)":1,"Ukraine":0}},"emitted_at":1676633494310}
+{"stream":"active_users","data":{"date":"2023-02-05","statistics":{"(none)":1,"Ukraine":0}},"emitted_at":1676633494310}
+{"stream":"active_users","data":{"date":"2023-02-06","statistics":{"(none)":1,"Ukraine":0}},"emitted_at":1676633494311}
+{"stream":"active_users","data":{"date":"2023-02-07","statistics":{"(none)":1,"Ukraine":0}},"emitted_at":1676633494311}
+{"stream":"active_users","data":{"date":"2023-02-08","statistics":{"(none)":1,"Ukraine":0}},"emitted_at":1676633494311}
+{"stream":"active_users","data":{"date":"2023-02-09","statistics":{"(none)":1,"Ukraine":1}},"emitted_at":1676633494311}
+{"stream":"active_users","data":{"date":"2023-02-10","statistics":{"(none)":1,"Ukraine":0}},"emitted_at":1676633494311}
+{"stream":"active_users","data":{"date":"2023-02-11","statistics":{"(none)":1,"Ukraine":0}},"emitted_at":1676633494312}
+{"stream":"active_users","data":{"date":"2023-02-12","statistics":{"(none)":1,"Ukraine":0}},"emitted_at":1676633494312}
+{"stream":"active_users","data":{"date":"2023-02-13","statistics":{"(none)":1,"Ukraine":0}},"emitted_at":1676633494312}
+{"stream":"active_users","data":{"date":"2023-02-14","statistics":{"(none)":1,"Ukraine":0}},"emitted_at":1676633494312}
+{"stream":"active_users","data":{"date":"2023-02-15","statistics":{"(none)":1,"Ukraine":0}},"emitted_at":1676633494312}
+{"stream":"average_session_length","data":{"date":"2023-02-01","length":0},"emitted_at":1677160664431}
+{"stream":"average_session_length","data":{"date":"2023-02-02","length":0},"emitted_at":1677160664432}
+{"stream":"average_session_length","data":{"date":"2023-02-03","length":0},"emitted_at":1677160664434}
+{"stream":"average_session_length","data":{"date":"2023-02-04","length":0},"emitted_at":1677160664435}
+{"stream":"average_session_length","data":{"date":"2023-02-05","length":0},"emitted_at":1677160664436}
+{"stream":"average_session_length","data":{"date":"2023-02-06","length":0},"emitted_at":1677160664438}
+{"stream":"average_session_length","data":{"date":"2023-02-07","length":0},"emitted_at":1677160664439}
+{"stream":"average_session_length","data":{"date":"2023-02-08","length":0},"emitted_at":1677160664441}
+{"stream":"average_session_length","data":{"date":"2023-02-09","length":0},"emitted_at":1677160664442}
+{"stream":"average_session_length","data":{"date":"2023-02-10","length":0},"emitted_at":1677160664443}
+{"stream":"average_session_length","data":{"date":"2023-02-11","length":0},"emitted_at":1677160664445}
+{"stream":"average_session_length","data":{"date":"2023-02-12","length":0},"emitted_at":1677160664446}
+{"stream":"average_session_length","data":{"date":"2023-02-13","length":0},"emitted_at":1677160664447}
+{"stream":"average_session_length","data":{"date":"2023-02-14","length":0},"emitted_at":1677160664449}
+{"stream":"average_session_length","data":{"date":"2023-02-15","length":0},"emitted_at":1677160664450}
+{"stream":"average_session_length","data":{"date":"2023-02-16","length":0},"emitted_at":1677160664803}
+{"stream":"average_session_length","data":{"date":"2023-02-17","length":0},"emitted_at":1677160664805}
+{"stream":"average_session_length","data":{"date":"2023-02-18","length":0},"emitted_at":1677160664806}
+{"stream":"average_session_length","data":{"date":"2023-02-19","length":0},"emitted_at":1677160664812}
+{"stream":"average_session_length","data":{"date":"2023-02-20","length":0},"emitted_at":1677160664814}
+{"stream":"average_session_length","data":{"date":"2023-02-21","length":0},"emitted_at":1677160664815}
+{"stream":"average_session_length","data":{"date":"2023-02-22","length":0},"emitted_at":1677160664816}
+{"stream":"average_session_length","data":{"date":"2023-02-23","length":0},"emitted_at":1677160664818}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-01-31","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-01-31T08:00:00+00:00","client_upload_time":"2023-02-01T12:02:17.685000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":82672889,"event_properties":{"ad_metrics.cost":0.055104,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":202,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-01-31T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-01T12:02:40.918000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-01T12:02:17.685000+00:00","server_upload_time":"2023-02-01T12:02:36.650000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"53e385c4-a228-11ed-8e51-171d53d06523","version_name":null},"emitted_at":1677160703462}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-01-31","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-01-31T08:00:00+00:00","client_upload_time":"2023-02-01T12:02:17.685000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":273196606,"event_properties":{"ad_metrics.cost":0.10283,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":188,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-01-31T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-01T12:02:40.918000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-01T12:02:17.685000+00:00","server_upload_time":"2023-02-01T12:02:36.650000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"53e39277-a228-11ed-9400-171d53d06523","version_name":null},"emitted_at":1677160703465}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-01-31","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-01-31T08:00:00+00:00","client_upload_time":"2023-02-01T12:02:17.685000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":695784978,"event_properties":{"ad_metrics.cost":1.781222,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2406,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":3,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":3,"campaign_id":19410069806},"event_time":"2023-01-31T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-01T12:02:40.918000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-01T12:02:17.685000+00:00","server_upload_time":"2023-02-01T12:02:36.650000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"53e38ca8-a228-11ed-a707-171d53d06523","version_name":null},"emitted_at":1677160703491}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-01","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-01T08:00:00+00:00","client_upload_time":"2023-02-02T12:03:25.005000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":579725194,"event_properties":{"ad_metrics.cost":0.087394,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":258,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-01T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-02T12:03:52.152000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-02T12:03:25.005000+00:00","server_upload_time":"2023-02-02T12:03:43.846000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"a8b6b648-a2f1-11ed-b981-774fa598444a","version_name":null},"emitted_at":1677160704054}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-01","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-01T08:00:00+00:00","client_upload_time":"2023-02-02T12:03:25.005000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":186292011,"event_properties":{"ad_metrics.cost":0.237483,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":268,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-01T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-02T12:03:52.152000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-02T12:03:25.005000+00:00","server_upload_time":"2023-02-02T12:03:43.846000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"a8b6c322-a2f1-11ed-9dbe-774fa598444a","version_name":null},"emitted_at":1677160704057}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-01","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-01T08:00:00+00:00","client_upload_time":"2023-02-02T12:03:25.005000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":343534293,"event_properties":{"ad_metrics.cost":1.913081,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2380,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":4,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":4,"campaign_id":19410069806},"event_time":"2023-02-01T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-02T12:03:52.152000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-02T12:03:25.005000+00:00","server_upload_time":"2023-02-02T12:03:43.846000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"a8b6bd56-a2f1-11ed-84fd-774fa598444a","version_name":null},"emitted_at":1677160704059}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-02","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-02T08:00:00+00:00","client_upload_time":"2023-02-03T12:02:59.374000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":444502983,"event_properties":{"ad_metrics.cost":0.098846,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":260,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-02T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-03T12:03:14.894000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-03T12:02:59.374000+00:00","server_upload_time":"2023-02-03T12:03:12.182000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"bcf76cb7-a3ba-11ed-bbc1-ef5367694578","version_name":null},"emitted_at":1677160704734}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-02","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-02T08:00:00+00:00","client_upload_time":"2023-02-03T12:02:59.374000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":540530303,"event_properties":{"ad_metrics.cost":0.255795,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":318,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-02T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-03T12:03:14.894000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-03T12:02:59.374000+00:00","server_upload_time":"2023-02-03T12:03:12.182000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"bcf77ba6-a3ba-11ed-b2f9-ef5367694578","version_name":null},"emitted_at":1677160704736}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-02","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-02T08:00:00+00:00","client_upload_time":"2023-02-03T12:02:59.374000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":472999226,"event_properties":{"ad_metrics.cost":1.91728,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2473,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":3,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":3,"campaign_id":19410069806},"event_time":"2023-02-02T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-03T12:03:14.894000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-03T12:02:59.374000+00:00","server_upload_time":"2023-02-03T12:03:12.182000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"bcf77529-a3ba-11ed-9ee2-ef5367694578","version_name":null},"emitted_at":1677160704744}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-03","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-03T08:00:00+00:00","client_upload_time":"2023-02-04T12:02:25.436000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":830727485,"event_properties":{"ad_metrics.cost":0.075498,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":229,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-03T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-04T12:02:41.144000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-04T12:02:25.436000+00:00","server_upload_time":"2023-02-04T12:02:37.836000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"d3388c42-a483-11ed-a241-a9a73855976a","version_name":null},"emitted_at":1677160705252}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-03","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-03T08:00:00+00:00","client_upload_time":"2023-02-04T12:02:25.436000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":738101948,"event_properties":{"ad_metrics.cost":0.109966,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":166,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-03T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-04T12:02:41.144000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-04T12:02:25.436000+00:00","server_upload_time":"2023-02-04T12:02:37.836000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"d3389906-a483-11ed-9a82-a9a73855976a","version_name":null},"emitted_at":1677160705254}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-03","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-03T08:00:00+00:00","client_upload_time":"2023-02-04T12:02:25.436000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":181349706,"event_properties":{"ad_metrics.cost":2.031292,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2580,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":5,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":5,"campaign_id":19410069806},"event_time":"2023-02-03T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-04T12:02:41.144000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-04T12:02:25.436000+00:00","server_upload_time":"2023-02-04T12:02:37.836000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"d3389329-a483-11ed-90ec-a9a73855976a","version_name":null},"emitted_at":1677160705256}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-04","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-04T08:00:00+00:00","client_upload_time":"2023-02-05T12:04:06.941000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":920042324,"event_properties":{"ad_metrics.cost":0.077221,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":272,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-04T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-05T12:17:06.057000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-05T12:04:06.941000+00:00","server_upload_time":"2023-02-05T12:15:52.509000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"01311b3f-a54f-11ed-bd6b-b9b1c4f00a9c","version_name":null},"emitted_at":1677160705685}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-CONNECTED_TV-2023-02-04","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-04T08:00:00+00:00","client_upload_time":"2023-02-05T12:04:06.941000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":323952360,"event_properties":{"ad_metrics.cost":0.000117,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"CONNECTED_TV","ad_metrics.impressions":6,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-04T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-05T12:17:06.057000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-05T12:04:06.941000+00:00","server_upload_time":"2023-02-05T12:15:52.509000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"01312d7f-a54f-11ed-b760-b9b1c4f00a9c","version_name":null},"emitted_at":1677160705687}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-04","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-04T08:00:00+00:00","client_upload_time":"2023-02-05T12:04:06.941000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":335634502,"event_properties":{"ad_metrics.cost":0.180594,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":238,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":2,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":2,"campaign_id":19410069806},"event_time":"2023-02-04T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-05T12:17:06.057000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-05T12:04:06.941000+00:00","server_upload_time":"2023-02-05T12:15:52.509000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"013127e4-a54f-11ed-94cb-b9b1c4f00a9c","version_name":null},"emitted_at":1677160705689}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-04","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-04T08:00:00+00:00","client_upload_time":"2023-02-05T12:04:06.941000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":978891508,"event_properties":{"ad_metrics.cost":1.956155,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2409,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":5,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":5,"campaign_id":19410069806},"event_time":"2023-02-04T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-05T12:17:06.057000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-05T12:04:06.941000+00:00","server_upload_time":"2023-02-05T12:15:52.509000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"01312229-a54f-11ed-b0ff-b9b1c4f00a9c","version_name":null},"emitted_at":1677160705691}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-05","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-05T08:00:00+00:00","client_upload_time":"2023-02-06T12:01:06.017000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":862973577,"event_properties":{"ad_metrics.cost":0.071026,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":195,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-05T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-06T12:02:08.452000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-06T12:01:06.017000+00:00","server_upload_time":"2023-02-06T12:01:17.335000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"14915d67-a616-11ed-b37b-1d24c3d1426b","version_name":null},"emitted_at":1677160706263}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-05","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-05T08:00:00+00:00","client_upload_time":"2023-02-06T12:01:06.017000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":183007151,"event_properties":{"ad_metrics.cost":0.144935,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":188,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-05T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-06T12:02:08.452000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-06T12:01:06.017000+00:00","server_upload_time":"2023-02-06T12:01:17.335000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"14916bdc-a616-11ed-abef-1d24c3d1426b","version_name":null},"emitted_at":1677160706329}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-05","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-05T08:00:00+00:00","client_upload_time":"2023-02-06T12:01:06.017000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":681776226,"event_properties":{"ad_metrics.cost":1.997995,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2583,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":3,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":3,"campaign_id":19410069806},"event_time":"2023-02-05T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-06T12:02:08.452000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-06T12:01:06.017000+00:00","server_upload_time":"2023-02-06T12:01:17.335000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"149164c6-a616-11ed-b3e0-1d24c3d1426b","version_name":null},"emitted_at":1677160706331}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-06","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-06T08:00:00+00:00","client_upload_time":"2023-02-07T12:01:48.859000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":970466740,"event_properties":{"ad_metrics.cost":0.078221,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":278,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-06T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-07T12:02:07.033000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-07T12:01:48.859000+00:00","server_upload_time":"2023-02-07T12:02:04.872000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"3e28db97-a6df-11ed-be64-5d7f35c3b01a","version_name":null},"emitted_at":1677160706837}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-CONNECTED_TV-2023-02-06","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-06T08:00:00+00:00","client_upload_time":"2023-02-07T12:01:48.859000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":567803347,"event_properties":{"ad_metrics.cost":0,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"CONNECTED_TV","ad_metrics.impressions":4,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-06T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-07T12:02:07.033000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-07T12:01:48.859000+00:00","server_upload_time":"2023-02-07T12:02:04.872000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"3e28ee9f-a6df-11ed-8c6f-5d7f35c3b01a","version_name":null},"emitted_at":1677160706848}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-06","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-06T08:00:00+00:00","client_upload_time":"2023-02-07T12:01:48.859000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":557070126,"event_properties":{"ad_metrics.cost":0.192373,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":213,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-06T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-07T12:02:07.033000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-07T12:01:48.859000+00:00","server_upload_time":"2023-02-07T12:02:04.872000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"3e28e905-a6df-11ed-b2b0-5d7f35c3b01a","version_name":null},"emitted_at":1677160706851}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-06","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-06T08:00:00+00:00","client_upload_time":"2023-02-07T12:01:48.859000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":701875278,"event_properties":{"ad_metrics.cost":2.018299,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2595,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":4,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":4,"campaign_id":19410069806},"event_time":"2023-02-06T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-07T12:02:07.033000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-07T12:01:48.859000+00:00","server_upload_time":"2023-02-07T12:02:04.872000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"3e28e312-a6df-11ed-8dec-5d7f35c3b01a","version_name":null},"emitted_at":1677160706995}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-07","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-07T08:00:00+00:00","client_upload_time":"2023-02-08T12:02:25.066000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":215560287,"event_properties":{"ad_metrics.cost":0.049814,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":208,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":1,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":1,"campaign_id":19410069806},"event_time":"2023-02-07T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-08T12:02:39.178000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-08T12:02:25.066000+00:00","server_upload_time":"2023-02-08T12:02:35.998000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"7bba250f-a7a8-11ed-9ce6-3718c73e0dcb","version_name":null},"emitted_at":1677160707555}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-07","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-07T08:00:00+00:00","client_upload_time":"2023-02-08T12:02:25.066000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":750045948,"event_properties":{"ad_metrics.cost":0.145436,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":180,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-07T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-08T12:02:39.178000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-08T12:02:25.066000+00:00","server_upload_time":"2023-02-08T12:02:35.998000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"7bba32f5-a7a8-11ed-a10d-3718c73e0dcb","version_name":null},"emitted_at":1677160707557}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-07","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-07T08:00:00+00:00","client_upload_time":"2023-02-08T12:02:25.066000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":54427230,"event_properties":{"ad_metrics.cost":2.093716,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2694,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":3,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":3,"campaign_id":19410069806},"event_time":"2023-02-07T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-08T12:02:39.178000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-08T12:02:25.066000+00:00","server_upload_time":"2023-02-08T12:02:35.998000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{},"uuid":"7bba2cff-a7a8-11ed-baf0-3718c73e0dcb","version_name":null},"emitted_at":1677160707559}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-08","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-08T08:00:00+00:00","client_upload_time":"2023-02-09T12:02:17.656000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":500159953,"event_properties":{"ad_metrics.cost":0.063632,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":275,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-08T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-09T12:02:40.173000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-09T12:02:17.656000+00:00","server_upload_time":"2023-02-09T12:02:37.115000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"a6b63b9b-a871-11ed-8e0e-556bceaee760","version_name":null},"emitted_at":1677160708339}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-CONNECTED_TV-2023-02-08","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-08T08:00:00+00:00","client_upload_time":"2023-02-09T12:02:17.656000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":91323750,"event_properties":{"ad_metrics.cost":2.4e-05,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"CONNECTED_TV","ad_metrics.impressions":2,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-08T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-09T12:02:40.173000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-09T12:02:17.656000+00:00","server_upload_time":"2023-02-09T12:02:37.115000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"a6b65793-a871-11ed-9158-556bceaee760","version_name":null},"emitted_at":1677160708341}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-08","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-08T08:00:00+00:00","client_upload_time":"2023-02-09T12:02:17.656000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":248713684,"event_properties":{"ad_metrics.cost":0.111586,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":188,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":1,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":1,"campaign_id":19410069806},"event_time":"2023-02-08T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-09T12:02:40.173000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-09T12:02:17.656000+00:00","server_upload_time":"2023-02-09T12:02:37.115000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"a6b6514c-a871-11ed-963a-556bceaee760","version_name":null},"emitted_at":1677160708344}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-08","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-08T08:00:00+00:00","client_upload_time":"2023-02-09T12:02:17.656000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":771697037,"event_properties":{"ad_metrics.cost":2.075305,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2687,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":7,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":7,"campaign_id":19410069806},"event_time":"2023-02-08T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-09T12:02:40.173000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-09T12:02:17.656000+00:00","server_upload_time":"2023-02-09T12:02:37.115000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"a6b64994-a871-11ed-bdac-556bceaee760","version_name":null},"emitted_at":1677160708346}
+{"stream":"events","data":{"$insert_id":"13648a56-a2bf-468d-89ce-af8148d5eb4b","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":568771836625,"app":434735,"city":"Kyiv","client_event_time":"2023-02-09T09:57:33+00:00","client_upload_time":"2023-02-09T09:57:33+00:00","country":"Ukraine","data":{"user_properties_updated":true,"group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"ff91a939-5a66-57f3-934c-6e58f7bd6da2","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":115597971,"event_properties":{"keyBool":true,"keyString":"valueString","keyInt":11},"event_time":"2023-02-09T09:57:33+00:00","event_type":"[Shopify] Connect Amplitude Test","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":"85.209.47.207","is_attribution_event":null,"language":null,"library":"amplitude-node/1.10.0","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-09T09:57:35.351000+00:00","region":"Kyiv City","sample_rate":null,"server_received_time":"2023-02-09T09:57:33+00:00","server_upload_time":"2023-02-09T09:57:33.014000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":"testuserEmail@gmail.com","user_properties":{},"uuid":"2d7ec4b1-a860-11ed-aae8-01da73a04a5b","version_name":null},"emitted_at":1677160708348}
+{"stream":"events","data":{"$insert_id":"ca3fb836-163b-4898-9d59-1586fe103693","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":568771836625,"app":434735,"city":"Kyiv","client_event_time":"2023-02-09T09:57:39.118000+00:00","client_upload_time":"2023-02-09T09:57:39.118000+00:00","country":"Ukraine","data":{"group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"ff91a939-5a66-57f3-934c-6e58f7bd6da2","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":748377217,"event_properties":{"keyBool":true,"keyString":"valueString","keyInt":11},"event_time":"2023-02-09T09:57:39.118000+00:00","event_type":"[Shopify] Connect Amplitude Test","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":"85.209.47.207","is_attribution_event":null,"language":null,"library":"amplitude-node/1.10.0","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-09T09:57:40.295000+00:00","region":"Kyiv City","sample_rate":null,"server_received_time":"2023-02-09T09:57:39.118000+00:00","server_upload_time":"2023-02-09T09:57:39.123000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":"testuserEmail@gmail.com","user_properties":{},"uuid":"30869ad0-a860-11ed-a807-f949e6b8dfb8","version_name":null},"emitted_at":1677160708350}
+{"stream":"events","data":{"$insert_id":"6bf42abd-5033-4ea6-9574-c1c674a4d32d","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":568771836625,"app":434735,"city":"Kyiv","client_event_time":"2023-02-09T09:57:44.390000+00:00","client_upload_time":"2023-02-09T09:57:44.390000+00:00","country":"Ukraine","data":{"group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"ff91a939-5a66-57f3-934c-6e58f7bd6da2","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":969823192,"event_properties":{"keyBool":true,"keyString":"valueString","keyInt":11},"event_time":"2023-02-09T09:57:44.390000+00:00","event_type":"[Shopify] Connect Amplitude Test","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":"85.209.47.207","is_attribution_event":null,"language":null,"library":"amplitude-node/1.10.0","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-09T09:57:45.721000+00:00","region":"Kyiv City","sample_rate":null,"server_received_time":"2023-02-09T09:57:44.390000+00:00","server_upload_time":"2023-02-09T09:57:44.394000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":"testuserEmail@gmail.com","user_properties":{},"uuid":"33c35984-a860-11ed-8460-f949e6b8dfb8","version_name":null},"emitted_at":1677160708352}
+{"stream":"events","data":{"$insert_id":"afb8f963-cae5-4232-b20d-9047440d29c9","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":568771836625,"app":434735,"city":"Kyiv","client_event_time":"2023-02-09T09:58:07.981000+00:00","client_upload_time":"2023-02-09T09:58:07.981000+00:00","country":"Ukraine","data":{"group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"ff91a939-5a66-57f3-934c-6e58f7bd6da2","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":318819040,"event_properties":{"keyBool":true,"keyString":"valueString","keyInt":11},"event_time":"2023-02-09T09:58:07.981000+00:00","event_type":"[Shopify] Connect Amplitude Test","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":"85.209.47.207","is_attribution_event":null,"language":null,"library":"amplitude-node/1.10.0","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-09T09:58:10.307000+00:00","region":"Kyiv City","sample_rate":null,"server_received_time":"2023-02-09T09:58:07.981000+00:00","server_upload_time":"2023-02-09T09:58:07.987000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":"testuserEmail@gmail.com","user_properties":{},"uuid":"426b1ef9-a860-11ed-8868-f949e6b8dfb8","version_name":null},"emitted_at":1677160708354}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-09","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-09T08:00:00+00:00","client_upload_time":"2023-02-10T12:03:21.518000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":549198577,"event_properties":{"ad_metrics.cost":0.091194,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":240,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-09T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-10T12:03:43.615000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-10T12:03:21.518000+00:00","server_upload_time":"2023-02-10T12:03:42.091000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"f6f54177-a93a-11ed-9aef-65efbbbc3a1e","version_name":null},"emitted_at":1677160708954}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-CONNECTED_TV-2023-02-09","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-09T08:00:00+00:00","client_upload_time":"2023-02-10T12:03:21.518000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":970373985,"event_properties":{"ad_metrics.cost":0.000757,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"CONNECTED_TV","ad_metrics.impressions":4,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-09T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-10T12:03:43.615000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-10T12:03:21.518000+00:00","server_upload_time":"2023-02-10T12:03:42.091000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"f6f553c2-a93a-11ed-bc53-65efbbbc3a1e","version_name":null},"emitted_at":1677160708956}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-09","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-09T08:00:00+00:00","client_upload_time":"2023-02-10T12:03:21.518000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":574382501,"event_properties":{"ad_metrics.cost":0.109206,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":158,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":2,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":2,"campaign_id":19410069806},"event_time":"2023-02-09T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-10T12:03:43.615000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-10T12:03:21.518000+00:00","server_upload_time":"2023-02-10T12:03:42.091000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"f6f54e4b-a93a-11ed-8085-65efbbbc3a1e","version_name":null},"emitted_at":1677160708958}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-09","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-09T08:00:00+00:00","client_upload_time":"2023-02-10T12:03:21.518000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":557690644,"event_properties":{"ad_metrics.cost":2.006873,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2565,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":6,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":6,"campaign_id":19410069806},"event_time":"2023-02-09T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-10T12:03:43.615000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-10T12:03:21.518000+00:00","server_upload_time":"2023-02-10T12:03:42.091000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"f6f54886-a93a-11ed-b598-65efbbbc3a1e","version_name":null},"emitted_at":1677160708961}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-10","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-10T08:00:00+00:00","client_upload_time":"2023-02-11T12:01:50.248000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":782291950,"event_properties":{"ad_metrics.cost":0.070298,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":250,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-10T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-11T12:02:19.794000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-11T12:01:50.248000+00:00","server_upload_time":"2023-02-11T12:02:04.360000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"ef62e73e-aa03-11ed-ab60-21041b90b30e","version_name":null},"emitted_at":1677160709463}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-10","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-10T08:00:00+00:00","client_upload_time":"2023-02-11T12:01:50.248000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":660413772,"event_properties":{"ad_metrics.cost":0.137032,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":184,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-10T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-11T12:02:19.794000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-11T12:01:50.248000+00:00","server_upload_time":"2023-02-11T12:02:04.360000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"ef62f428-aa03-11ed-9aea-21041b90b30e","version_name":null},"emitted_at":1677160709465}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-10","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-10T08:00:00+00:00","client_upload_time":"2023-02-11T12:01:50.248000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":345846795,"event_properties":{"ad_metrics.cost":1.986076,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2366,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":3,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":3,"campaign_id":19410069806},"event_time":"2023-02-10T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-11T12:02:19.794000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-11T12:01:50.248000+00:00","server_upload_time":"2023-02-11T12:02:04.360000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"ef62ee58-aa03-11ed-9470-21041b90b30e","version_name":null},"emitted_at":1677160709468}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-11","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-11T08:00:00+00:00","client_upload_time":"2023-02-12T12:02:28.595000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":589830428,"event_properties":{"ad_metrics.cost":0.069645,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":183,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-11T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-12T12:03:53.410000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-12T12:02:28.595000+00:00","server_upload_time":"2023-02-12T12:02:39.319000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"518af7fe-aacd-11ed-9a80-43c1bac2ac7b","version_name":null},"emitted_at":1677160709960}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-11","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-11T08:00:00+00:00","client_upload_time":"2023-02-12T12:02:28.595000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":661524851,"event_properties":{"ad_metrics.cost":0.100511,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":125,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-11T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-12T12:03:53.410000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-12T12:02:28.595000+00:00","server_upload_time":"2023-02-12T12:02:39.319000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"518b0451-aacd-11ed-bf81-43c1bac2ac7b","version_name":null},"emitted_at":1677160709962}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-11","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-11T08:00:00+00:00","client_upload_time":"2023-02-12T12:02:28.595000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":608278585,"event_properties":{"ad_metrics.cost":2.019566,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2505,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":3,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":3,"campaign_id":19410069806},"event_time":"2023-02-11T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-12T12:03:53.410000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-12T12:02:28.595000+00:00","server_upload_time":"2023-02-12T12:02:39.319000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"518afebd-aacd-11ed-a1be-43c1bac2ac7b","version_name":null},"emitted_at":1677160709964}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-12","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-12T08:00:00+00:00","client_upload_time":"2023-02-13T12:02:12.416000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":756118159,"event_properties":{"ad_metrics.cost":0.047594,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":228,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-12T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-13T12:02:26.981000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-13T12:02:12.416000+00:00","server_upload_time":"2023-02-13T12:02:22.901000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"488ce6ab-ab96-11ed-a18e-516670498ef9","version_name":null},"emitted_at":1677160710459}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-12","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-12T08:00:00+00:00","client_upload_time":"2023-02-13T12:02:12.416000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":726820846,"event_properties":{"ad_metrics.cost":0.094987,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":135,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-12T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-13T12:02:26.981000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-13T12:02:12.416000+00:00","server_upload_time":"2023-02-13T12:02:22.901000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"488cf2ca-ab96-11ed-baad-516670498ef9","version_name":null},"emitted_at":1677160710461}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-12","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-12T08:00:00+00:00","client_upload_time":"2023-02-13T12:02:12.416000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":30838997,"event_properties":{"ad_metrics.cost":2.057797,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2555,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":7,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":7,"campaign_id":19410069806},"event_time":"2023-02-12T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-13T12:02:26.981000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-13T12:02:12.416000+00:00","server_upload_time":"2023-02-13T12:02:22.901000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"488ced3a-ab96-11ed-9cc6-516670498ef9","version_name":null},"emitted_at":1677160710463}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-13","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-13T08:00:00+00:00","client_upload_time":"2023-02-14T12:02:09.474000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":602281810,"event_properties":{"ad_metrics.cost":0.084583,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":227,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-13T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-14T12:02:24.303000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-14T12:02:09.474000+00:00","server_upload_time":"2023-02-14T12:02:20.979000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"7152006b-ac5f-11ed-bb6d-b95ddc26bbd1","version_name":null},"emitted_at":1677160710878}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-13","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-13T08:00:00+00:00","client_upload_time":"2023-02-14T12:02:09.474000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":204201377,"event_properties":{"ad_metrics.cost":0.1489,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":191,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-13T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-14T12:02:24.303000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-14T12:02:09.474000+00:00","server_upload_time":"2023-02-14T12:02:20.979000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"71520cd4-ac5f-11ed-8538-b95ddc26bbd1","version_name":null},"emitted_at":1677160710880}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-13","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-13T08:00:00+00:00","client_upload_time":"2023-02-14T12:02:09.474000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":96617686,"event_properties":{"ad_metrics.cost":2.033321,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2658,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":5,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":5,"campaign_id":19410069806},"event_time":"2023-02-13T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-14T12:02:24.303000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-14T12:02:09.474000+00:00","server_upload_time":"2023-02-14T12:02:20.979000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"71520734-ac5f-11ed-bc4a-b95ddc26bbd1","version_name":null},"emitted_at":1677160710882}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-14","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-14T08:00:00+00:00","client_upload_time":"2023-02-15T12:02:02.211000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":325453045,"event_properties":{"ad_metrics.cost":0.065906,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":291,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-14T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-15T12:02:17.536000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-15T12:02:02.211000+00:00","server_upload_time":"2023-02-15T12:02:15.558000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"97bd311f-ad28-11ed-a272-9937469197fb","version_name":null},"emitted_at":1677160711338}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-14","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-14T08:00:00+00:00","client_upload_time":"2023-02-15T12:02:02.211000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":579050854,"event_properties":{"ad_metrics.cost":0.085808,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":166,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-14T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-15T12:02:17.536000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-15T12:02:02.211000+00:00","server_upload_time":"2023-02-15T12:02:15.558000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"97bd3d80-ad28-11ed-9543-9937469197fb","version_name":null},"emitted_at":1677160711340}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-14","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-14T08:00:00+00:00","client_upload_time":"2023-02-15T12:02:02.211000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":153980233,"event_properties":{"ad_metrics.cost":2.036793,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2514,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":4,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":4,"campaign_id":19410069806},"event_time":"2023-02-14T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-15T12:02:17.536000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-15T12:02:02.211000+00:00","server_upload_time":"2023-02-15T12:02:15.558000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"97bd37e1-ad28-11ed-a554-9937469197fb","version_name":null},"emitted_at":1677160711342}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-15","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-15T08:00:00+00:00","client_upload_time":"2023-02-16T12:01:18.942000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":230240803,"event_properties":{"ad_metrics.cost":0.043522,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":193,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-15T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-16T12:01:41.299000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-16T12:01:18.942000+00:00","server_upload_time":"2023-02-16T12:01:39.526000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"ac8bae8d-adf1-11ed-b15b-91b6ce29e523","version_name":null},"emitted_at":1677160711799}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-CONNECTED_TV-2023-02-15","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-15T08:00:00+00:00","client_upload_time":"2023-02-16T12:01:18.942000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":324823220,"event_properties":{"ad_metrics.cost":3e-05,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"CONNECTED_TV","ad_metrics.impressions":1,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-15T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-16T12:01:41.299000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-16T12:01:18.942000+00:00","server_upload_time":"2023-02-16T12:01:39.526000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"ac8bc13f-adf1-11ed-b15c-91b6ce29e523","version_name":null},"emitted_at":1677160711801}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-15","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-15T08:00:00+00:00","client_upload_time":"2023-02-16T12:01:18.942000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":427159891,"event_properties":{"ad_metrics.cost":0.127895,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":173,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":1,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":1,"campaign_id":19410069806},"event_time":"2023-02-15T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-16T12:01:41.299000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-16T12:01:18.942000+00:00","server_upload_time":"2023-02-16T12:01:39.526000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"ac8bbbc1-adf1-11ed-9548-91b6ce29e523","version_name":null},"emitted_at":1677160711803}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-15","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-15T08:00:00+00:00","client_upload_time":"2023-02-16T12:01:18.942000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":26870094,"event_properties":{"ad_metrics.cost":2.069498,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2644,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":5,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":5,"campaign_id":19410069806},"event_time":"2023-02-15T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-16T12:01:41.299000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-16T12:01:18.942000+00:00","server_upload_time":"2023-02-16T12:01:39.526000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"ac8bb5e3-adf1-11ed-b665-91b6ce29e523","version_name":null},"emitted_at":1677160711805}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-16","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-16T08:00:00+00:00","client_upload_time":"2023-02-17T12:03:01.224000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":285988082,"event_properties":{"ad_metrics.cost":0.032337,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":130,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-16T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-17T12:03:21.797000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-17T12:03:01.224000+00:00","server_upload_time":"2023-02-17T12:03:12.561000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"12ad685e-aebb-11ed-85a1-f5fef6fa6c3e","version_name":null},"emitted_at":1677160712406}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-16","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-16T08:00:00+00:00","client_upload_time":"2023-02-17T12:03:01.224000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":945641623,"event_properties":{"ad_metrics.cost":0.177236,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":215,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-16T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-17T12:03:21.797000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-17T12:03:01.224000+00:00","server_upload_time":"2023-02-17T12:03:12.561000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"12ad74f4-aebb-11ed-af5e-f5fef6fa6c3e","version_name":null},"emitted_at":1677160712408}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-16","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-16T08:00:00+00:00","client_upload_time":"2023-02-17T12:03:01.224000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":684001950,"event_properties":{"ad_metrics.cost":2.002117,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2518,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":5,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":5,"campaign_id":19410069806},"event_time":"2023-02-16T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-17T12:03:21.797000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-17T12:03:01.224000+00:00","server_upload_time":"2023-02-17T12:03:12.561000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"12ad6f4f-aebb-11ed-849c-f5fef6fa6c3e","version_name":null},"emitted_at":1677160712411}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-18","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-18T08:00:00+00:00","client_upload_time":"2023-02-19T12:03:29.271000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":131262759,"event_properties":{"ad_metrics.cost":0.029716,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":142,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-18T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-19T12:03:51.321000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-19T12:03:29.271000+00:00","server_upload_time":"2023-02-19T12:03:48.945000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"7948776d-b04d-11ed-9e25-0d3650f391bb","version_name":null},"emitted_at":1677160713566}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-18","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-18T08:00:00+00:00","client_upload_time":"2023-02-19T12:03:29.271000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":297590864,"event_properties":{"ad_metrics.cost":0.095908,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":105,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-18T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-19T12:03:51.321000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-19T12:03:29.271000+00:00","server_upload_time":"2023-02-19T12:03:48.945000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"794883a6-b04d-11ed-aa23-0d3650f391bb","version_name":null},"emitted_at":1677160713568}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-18","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-18T08:00:00+00:00","client_upload_time":"2023-02-19T12:03:29.271000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":275214096,"event_properties":{"ad_metrics.cost":2.043589,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2421,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":5,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":5,"campaign_id":19410069806},"event_time":"2023-02-18T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-19T12:03:51.321000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-19T12:03:29.271000+00:00","server_upload_time":"2023-02-19T12:03:48.945000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"79487e0a-b04d-11ed-92e7-0d3650f391bb","version_name":null},"emitted_at":1677160713570}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-17","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-17T08:00:00+00:00","client_upload_time":"2023-02-19T13:01:25.998000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":592568898,"event_properties":{"ad_metrics.cost":0.070942,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":225,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-17T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-19T13:01:40.473000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-19T13:01:25.998000+00:00","server_upload_time":"2023-02-19T13:01:37.076000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"8d1b530d-b055-11ed-b3db-113a8bccd94d","version_name":null},"emitted_at":1677160713572}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-17","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-17T08:00:00+00:00","client_upload_time":"2023-02-19T13:01:25.998000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":921057594,"event_properties":{"ad_metrics.cost":0.082843,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":101,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-17T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-19T13:01:40.473000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-19T13:01:25.998000+00:00","server_upload_time":"2023-02-19T13:01:37.076000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"8d1b605e-b055-11ed-8e2a-113a8bccd94d","version_name":null},"emitted_at":1677160713574}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-17","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-17T08:00:00+00:00","client_upload_time":"2023-02-19T13:01:25.998000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":771686719,"event_properties":{"ad_metrics.cost":2.034163,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2612,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":2,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":2,"campaign_id":19410069806},"event_time":"2023-02-17T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-19T13:01:40.473000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-19T13:01:25.998000+00:00","server_upload_time":"2023-02-19T13:01:37.076000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"8d1b59c4-b055-11ed-a1df-113a8bccd94d","version_name":null},"emitted_at":1677160713656}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-19","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-19T08:00:00+00:00","client_upload_time":"2023-02-20T12:03:35.170000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":664632971,"event_properties":{"ad_metrics.cost":0.031298,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":139,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-19T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-20T12:04:00.393000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-20T12:03:35.170000+00:00","server_upload_time":"2023-02-20T12:03:46.062000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"a907cef2-b116-11ed-87dd-bdba20a14ceb","version_name":null},"emitted_at":1677160714816}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-19","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-19T08:00:00+00:00","client_upload_time":"2023-02-20T12:03:35.170000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":600181548,"event_properties":{"ad_metrics.cost":0.112333,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":154,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-19T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-20T12:04:00.393000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-20T12:03:35.170000+00:00","server_upload_time":"2023-02-20T12:03:46.062000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"a907db97-b116-11ed-9271-bdba20a14ceb","version_name":null},"emitted_at":1677160714819}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-19","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-19T08:00:00+00:00","client_upload_time":"2023-02-20T12:03:35.170000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":780220200,"event_properties":{"ad_metrics.cost":2.061574,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2389,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":4,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":4,"campaign_id":19410069806},"event_time":"2023-02-19T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-20T12:04:00.393000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-20T12:03:35.170000+00:00","server_upload_time":"2023-02-20T12:03:46.062000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"a907d5dc-b116-11ed-8b8e-bdba20a14ceb","version_name":null},"emitted_at":1677160714821}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-20","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-20T08:00:00+00:00","client_upload_time":"2023-02-21T12:01:29.891000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":801727177,"event_properties":{"ad_metrics.cost":0.045563,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":188,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-20T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-21T12:01:48.145000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-21T12:01:29.891000+00:00","server_upload_time":"2023-02-21T12:01:45.796000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"84ad0ece-b1df-11ed-8b09-bdc83361662a","version_name":null},"emitted_at":1677160715235}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-20","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-20T08:00:00+00:00","client_upload_time":"2023-02-21T12:01:29.891000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":847817114,"event_properties":{"ad_metrics.cost":0.153187,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":191,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-20T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-21T12:01:48.145000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-21T12:01:29.891000+00:00","server_upload_time":"2023-02-21T12:01:45.796000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"84ad1bde-b1df-11ed-ab01-bdc83361662a","version_name":null},"emitted_at":1677160715237}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-20","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-20T08:00:00+00:00","client_upload_time":"2023-02-21T12:01:29.891000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":795787975,"event_properties":{"ad_metrics.cost":2.096516,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2720,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":3,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":3,"campaign_id":19410069806},"event_time":"2023-02-20T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-21T12:01:48.145000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-21T12:01:29.891000+00:00","server_upload_time":"2023-02-21T12:01:45.796000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"84ad15c9-b1df-11ed-b84e-bdc83361662a","version_name":null},"emitted_at":1677160715263}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-21","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-21T08:00:00+00:00","client_upload_time":"2023-02-22T12:02:15.518000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":354116550,"event_properties":{"ad_metrics.cost":0.057382,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":186,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-21T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-22T12:02:37.973000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-22T12:02:15.518000+00:00","server_upload_time":"2023-02-22T12:02:34.242000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"ccc51943-b2a8-11ed-ac61-871718cb9747","version_name":null},"emitted_at":1677160715762}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-21","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-21T08:00:00+00:00","client_upload_time":"2023-02-22T12:02:15.518000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":541365877,"event_properties":{"ad_metrics.cost":0.118621,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":141,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-21T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-22T12:02:37.973000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-22T12:02:15.518000+00:00","server_upload_time":"2023-02-22T12:02:34.242000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"ccc525c9-b2a8-11ed-850f-871718cb9747","version_name":null},"emitted_at":1677160715764}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-21","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-21T08:00:00+00:00","client_upload_time":"2023-02-22T12:02:15.518000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":562697441,"event_properties":{"ad_metrics.cost":2.088394,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2726,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":9,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":9,"campaign_id":19410069806},"event_time":"2023-02-21T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-22T12:02:37.973000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-22T12:02:15.518000+00:00","server_upload_time":"2023-02-22T12:02:34.242000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"ccc52020-b2a8-11ed-abd4-871718cb9747","version_name":null},"emitted_at":1677160715767}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-DESKTOP-2023-02-22","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-22T08:00:00+00:00","client_upload_time":"2023-02-23T12:04:28.073000+00:00","country":null,"data":{"user_properties_updated":true,"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":216489823,"event_properties":{"ad_metrics.cost":0.030981,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"DESKTOP","ad_metrics.impressions":137,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-22T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-23T12:04:44.116000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-23T12:04:28.073000+00:00","server_upload_time":"2023-02-23T12:04:40.311000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"426992d9-b372-11ed-8ac0-137abd2e6743","version_name":null},"emitted_at":1677160717689}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-TABLET-2023-02-22","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-22T08:00:00+00:00","client_upload_time":"2023-02-23T12:04:28.073000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":910022464,"event_properties":{"ad_metrics.cost":0.080812,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"TABLET","ad_metrics.impressions":118,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":0,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":0,"campaign_id":19410069806},"event_time":"2023-02-22T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-23T12:04:44.116000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-23T12:04:28.073000+00:00","server_upload_time":"2023-02-23T12:04:40.311000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"4269a22c-b372-11ed-84ce-137abd2e6743","version_name":null},"emitted_at":1677160717691}
+{"stream":"events","data":{"$insert_id":"google-ad-4651612872-643022056303-MOBILE-2023-02-22","$insert_key":null,"$schema":null,"adid":null,"amplitude_attribution_ids":null,"amplitude_event_type":null,"amplitude_id":550106004607,"app":434735,"city":null,"client_event_time":"2023-02-22T08:00:00+00:00","client_upload_time":"2023-02-23T12:04:28.073000+00:00","country":null,"data":{"vacuum_source_id":"5955","group_first_event":{},"group_ids":{}},"data_type":"event","device_brand":null,"device_carrier":null,"device_family":null,"device_id":"google-ad-4651612872-643022056303","device_manufacturer":null,"device_model":null,"device_type":null,"dma":null,"event_id":119391830,"event_properties":{"ad_metrics.cost":2.106073,"campaign_advertising_channel_type":"DISPLAY","ad_segment_device":"MOBILE","ad_metrics.impressions":2741,"ad_group_type":"DISPLAY_STANDARD","campaign_name":"Brand awareness and reach-Display-1","ad_group_name":"Ad group 1","ad_id":643022056303,"campaign_start_date":"2022-12-28","final_url":"https://airbyte.com","ad_platform":"google","campaign_end_date":"2037-12-30","ad_metrics.clicks":1,"ad_group_id":144799120517,"ad_metrics.conversions":0,"ad_metrics.interactions":1,"campaign_id":19410069806},"event_time":"2023-02-22T08:00:00+00:00","event_type":"Daily Ad Metrics","global_user_properties":null,"group_properties":{},"groups":{},"idfa":null,"ip_address":null,"is_attribution_event":null,"language":null,"library":"google_ads","location_lat":null,"location_lng":null,"os_name":null,"os_version":null,"partner_id":null,"paying":null,"plan":{},"platform":null,"processed_time":"2023-02-23T12:04:44.116000+00:00","region":null,"sample_rate":null,"server_received_time":"2023-02-23T12:04:28.073000+00:00","server_upload_time":"2023-02-23T12:04:40.311000+00:00","session_id":-1,"source_id":null,"start_version":null,"user_creation_time":null,"user_id":null,"user_properties":{"country":"test","device_model":"test","city":"test","os_version":"test","City":"London","platform":"test","device_manufacturer":"test","carrier":"test","device_brand":"test","Region":"London","DMA":"London","Country":"UK","os_name":"test","region":"test"},"uuid":"42699ba5-b372-11ed-8487-137abd2e6743","version_name":null},"emitted_at":1677160717693}
diff --git a/airbyte-integrations/connectors/source-amplitude/setup.py b/airbyte-integrations/connectors/source-amplitude/setup.py
index 57bcae269855..727c043aa667 100644
--- a/airbyte-integrations/connectors/source-amplitude/setup.py
+++ b/airbyte-integrations/connectors/source-amplitude/setup.py
@@ -6,10 +6,14 @@
from setuptools import find_packages, setup
MAIN_REQUIREMENTS = [
- "airbyte-cdk",
+ "airbyte-cdk==0.33.0",
]
-TEST_REQUIREMENTS = ["pytest~=6.1", "pytest-mock~=3.6.1", "requests-mock"]
+TEST_REQUIREMENTS = [
+ "pytest~=6.2",
+ "pytest-mock~=3.6.1",
+ "connector-acceptance-test",
+]
setup(
name="source_amplitude",
@@ -18,7 +22,7 @@
author_email="contact@airbyte.io",
packages=find_packages(),
install_requires=MAIN_REQUIREMENTS,
- package_data={"": ["*.json", "schemas/*.json", "schemas/shared/*.json"]},
+ package_data={"": ["*.json", "*.yaml", "schemas/*.json", "schemas/shared/*.json"]},
extras_require={
"tests": TEST_REQUIREMENTS,
},
diff --git a/airbyte-integrations/connectors/source-amplitude/source_amplitude/__init__.py b/airbyte-integrations/connectors/source-amplitude/source_amplitude/__init__.py
index 2c519b869478..e6007dcb1a3b 100644
--- a/airbyte-integrations/connectors/source-amplitude/source_amplitude/__init__.py
+++ b/airbyte-integrations/connectors/source-amplitude/source_amplitude/__init__.py
@@ -1,27 +1,8 @@
#
-# MIT License
-#
-# Copyright (c) 2020 Airbyte
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
+# Copyright (c) 2022 Airbyte, Inc., all rights reserved.
#
+
from .source import SourceAmplitude
__all__ = ["SourceAmplitude"]
diff --git a/airbyte-integrations/connectors/source-amplitude/source_amplitude/api.py b/airbyte-integrations/connectors/source-amplitude/source_amplitude/api.py
deleted file mode 100644
index dd0eed85ceec..000000000000
--- a/airbyte-integrations/connectors/source-amplitude/source_amplitude/api.py
+++ /dev/null
@@ -1,297 +0,0 @@
-#
-# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
-#
-
-
-import gzip
-import io
-import json
-import urllib.parse as urlparse
-import zipfile
-from abc import ABC, abstractmethod
-from typing import IO, Any, Iterable, List, Mapping, MutableMapping, Optional
-from urllib.parse import parse_qs
-
-import pendulum
-import requests
-from airbyte_cdk.models import SyncMode
-from airbyte_cdk.sources.streams.availability_strategy import AvailabilityStrategy
-from airbyte_cdk.sources.streams.http import HttpStream
-
-from .errors import HTTP_ERROR_CODES, error_msg_from_status
-
-
-class AmplitudeStream(HttpStream, ABC):
- api_version = 2
-
- def __init__(self, data_region: str, event_time_interval: dict = None, **kwargs):
- if event_time_interval is None:
- event_time_interval = {"size_unit": "days", "size": 1}
- self.data_region = data_region
- self.event_time_interval = event_time_interval
- super().__init__(**kwargs)
-
- @property
- def url_base(self) -> str:
- subdomain = "analytics.eu." if self.data_region == "EU Residency Server" else ""
- return f"https://{subdomain}amplitude.com/api/"
-
- @property
- def availability_strategy(self) -> Optional["AvailabilityStrategy"]:
- return None
-
- def next_page_token(self, response: requests.Response) -> Optional[Mapping[str, Any]]:
- return None
-
- def parse_response(self, response: requests.Response, **kwargs) -> Iterable[Mapping]:
- status = response.status_code
- if status in HTTP_ERROR_CODES.keys():
- error_msg_from_status(status)
- yield from []
- else:
- yield from response.json().get(self.data_field, [])
-
- def path(self, **kwargs) -> str:
- return f"{self.api_version}/{self.name}"
-
-
-class Cohorts(AmplitudeStream):
- primary_key = "id"
- api_version = 3
- data_field = "cohorts"
-
-
-class Annotations(AmplitudeStream):
- primary_key = "id"
- data_field = "data"
-
-
-class IncrementalAmplitudeStream(AmplitudeStream, ABC):
- state_checkpoint_interval = 10
- base_params = {}
- cursor_field = "date"
- date_template = "%Y%m%d"
- compare_date_template = None
-
- def __init__(self, start_date: str, **kwargs):
- super().__init__(**kwargs)
- self._start_date = pendulum.parse(start_date) if isinstance(start_date, str) else start_date
-
- @property
- @abstractmethod
- def time_interval(self) -> dict:
- """
- Defining the time interval to determine the difference between the end date and the start date.
- """
- pass
-
- def _get_date_time_items_from_schema(self):
- """
- Get all properties from schema with format: 'date-time'
- """
- result = []
- schema = self.get_json_schema()["properties"]
- for key, value in schema.items():
- if value.get("format") == "date-time":
- result.append(key)
- return result
-
- def _date_time_to_rfc3339(self, record: MutableMapping[str, Any]) -> MutableMapping[str, Any]:
- """
- Transform 'date-time' items to RFC3339 format
- """
- date_time_fields = self._get_date_time_items_from_schema()
- for item in record:
- if item in date_time_fields:
- dt_value = record[item]
- if not dt_value:
- # either null or empty string, leave it as it
- record[item] = dt_value
- else:
- record[item] = pendulum.parse(dt_value).to_rfc3339_string()
- return record
-
- def _get_end_date(self, current_date: pendulum, end_date: pendulum = pendulum.now()):
- if current_date.add(**self.time_interval).date() < end_date.date():
- end_date = current_date.add(**self.time_interval)
- return end_date
-
- def get_updated_state(self, current_stream_state: MutableMapping[str, Any], latest_record: Mapping[str, Any]) -> Mapping[str, Any]:
- # save state value in source native format
- if self.compare_date_template:
- latest_state = pendulum.parse(latest_record[self.cursor_field]).strftime(self.compare_date_template)
- else:
- latest_state = latest_record.get(self.cursor_field, "")
- return {self.cursor_field: max(latest_state, current_stream_state.get(self.cursor_field, ""))}
-
- def next_page_token(self, response: requests.Response) -> Optional[Mapping[str, Any]]:
- parsed = urlparse.urlparse(response.url)
- end = parse_qs(parsed.query).get("end", None)
- if end:
- end_time = pendulum.parse(end[0])
- now = pendulum.now()
- if end_time.date() < now.date():
- return {"start": end[0], "end": self._get_end_date(end_time).strftime(self.date_template)}
- return None
-
- def request_params(
- self, stream_state: Mapping[str, Any], stream_slice: Mapping[str, any] = None, next_page_token: Mapping[str, Any] = None
- ) -> MutableMapping[str, Any]:
- params = self.base_params
- if next_page_token:
- params.update(next_page_token)
- else:
- params.update({"start": stream_slice.get("start"), "end": stream_slice.get("end")})
- return params
-
- def stream_slices(self, stream_state: Mapping[str, Any] = None, **kwargs) -> Iterable[Optional[Mapping[str, Any]]]:
- slices = []
- start = pendulum.parse(stream_state.get(self.cursor_field)) if stream_state else self._start_date
- end = pendulum.now()
- if start > end:
- self.logger.info("The data cannot be requested in the future. Skipping stream.")
- return []
-
- while start <= end:
- slices.append(
- {
- "start": start.strftime(self.date_template),
- "end": self._get_end_date(start).strftime(self.date_template),
- }
- )
- start = start.add(**self.time_interval)
- return slices
-
-
-class Events(IncrementalAmplitudeStream):
- cursor_field = "event_time"
- date_template = "%Y%m%dT%H"
- compare_date_template = "%Y-%m-%d %H:%M:%S.%f"
- primary_key = "uuid"
- state_checkpoint_interval = 1000
-
- @property
- def time_interval(self) -> dict:
- return {self.event_time_interval.get("size_unit"): self.event_time_interval.get("size")}
-
- def parse_response(self, response: requests.Response, stream_state: Mapping[str, Any] = None, **kwargs) -> Iterable[Mapping]:
- state_value = stream_state[self.cursor_field] if stream_state else self._start_date.strftime(self.compare_date_template)
- try:
- zip_file = zipfile.ZipFile(io.BytesIO(response.content))
- except zipfile.BadZipFile as e:
- self.logger.exception(e)
- self.logger.error(
- f"Received an invalid zip file in response to URL: {response.request.url}."
- f"The size of the response body is: {len(response.content)}"
- )
- return []
-
- for gzip_filename in zip_file.namelist():
- with zip_file.open(gzip_filename) as file:
- for record in self._parse_zip_file(file):
- if record[self.cursor_field] >= state_value:
- yield self._date_time_to_rfc3339(record) # transform all `date-time` to RFC3339
-
- def _parse_zip_file(self, zip_file: IO[bytes]) -> Iterable[MutableMapping]:
- with gzip.open(zip_file) as file:
- for record in file:
- yield json.loads(record)
-
- def stream_slices(self, stream_state: Mapping[str, Any] = None, **kwargs) -> Iterable[Optional[Mapping[str, Any]]]:
- slices = []
- start = pendulum.parse(stream_state.get(self.cursor_field)) if stream_state else self._start_date
- end = pendulum.now()
- if start > end:
- self.logger.info("The data cannot be requested in the future. Skipping stream.")
- return []
-
- while start <= end:
- slices.append(
- {
- "start": start.strftime(self.date_template),
- "end": start.add(**self.time_interval).subtract(hours=1).strftime(self.date_template),
- }
- )
- start = start.add(**self.time_interval)
-
- return slices
-
- def read_records(
- self,
- sync_mode: SyncMode,
- cursor_field: List[str] = None,
- stream_slice: Mapping[str, Any] = None,
- stream_state: Mapping[str, Any] = None,
- ) -> Iterable[Mapping[str, Any]]:
- stream_state = stream_state or {}
- start = pendulum.parse(stream_slice["start"])
- end = pendulum.parse(stream_slice["end"])
- if start > end:
- yield from []
- # sometimes the API throws a 404 error for not obvious reasons, we have to handle it and log it.
- # for example, if there is no data from the specified time period, a 404 exception is thrown
- # https://developers.amplitude.com/docs/export-api#status-codes
- try:
- self.logger.info(f"Fetching {self.name} time range: {start.strftime('%Y-%m-%dT%H')} - {end.strftime('%Y-%m-%dT%H')}")
- records = super().read_records(sync_mode, cursor_field, stream_slice, stream_state)
- yield from records
- except requests.exceptions.HTTPError as error:
- status = error.response.status_code
- if status in HTTP_ERROR_CODES.keys():
- error_msg_from_status(status)
- yield from []
- else:
- self.logger.error(f"Error during syncing {self.name} stream - {error}")
- raise
-
- def request_params(self, stream_slice: Mapping[str, Any], **kwargs) -> MutableMapping[str, Any]:
- params = self.base_params
- params["start"] = pendulum.parse(stream_slice["start"]).strftime(self.date_template)
- params["end"] = pendulum.parse(stream_slice["end"]).strftime(self.date_template)
- return params
-
- def next_page_token(self, response: requests.Response) -> Optional[Mapping[str, Any]]:
- return None
-
- def path(self, **kwargs) -> str:
- return f"{self.api_version}/export"
-
-
-class ActiveUsers(IncrementalAmplitudeStream):
- base_params = {"m": "active", "i": 1, "g": "country"}
- name = "active_users"
- primary_key = "date"
- time_interval = {"months": 1}
- data_field = "data"
-
- def parse_response(self, response: requests.Response, **kwargs) -> Iterable[Mapping]:
- response_data = response.json().get(self.data_field, [])
- if response_data:
- series = list(map(list, zip(*response_data["series"])))
- for i, date in enumerate(response_data["xValues"]):
- yield from [{"date": date, "statistics": dict(zip(response_data["seriesLabels"], series[i]))}] if series else []
-
- def path(self, **kwargs) -> str:
- return f"{self.api_version}/users"
-
-
-class AverageSessionLength(IncrementalAmplitudeStream):
- name = "average_session_length"
- primary_key = "date"
- time_interval = {"days": 15}
- data_field = "data"
-
- def parse_response(self, response: requests.Response, **kwargs) -> Iterable[Mapping]:
- response_data = response.json().get(self.data_field, [])
- if response_data:
- # From the Amplitude documentation it follows that "series" is an array with one element which is itself
- # an array that contains the average session length for each day.
- # https://developers.amplitude.com/docs/dashboard-rest-api#returns-2
- series = response_data.get("series", [])
- if len(series) > 0:
- series = series[0] # get the nested list
- for i, date in enumerate(response_data["xValues"]):
- yield {"date": date, "length": series[i]}
-
- def path(self, **kwargs) -> str:
- return f"{self.api_version}/sessions/average"
diff --git a/airbyte-integrations/connectors/source-amplitude/source_amplitude/components.py b/airbyte-integrations/connectors/source-amplitude/source_amplitude/components.py
new file mode 100644
index 000000000000..3780fc77114f
--- /dev/null
+++ b/airbyte-integrations/connectors/source-amplitude/source_amplitude/components.py
@@ -0,0 +1,119 @@
+#
+# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
+#
+
+import gzip
+import io
+import json
+import logging
+import zipfile
+from dataclasses import InitVar, dataclass
+from typing import IO, Any, Iterable, List, Mapping, MutableMapping, Union
+
+import pendulum
+import requests
+from airbyte_cdk.sources.declarative.extractors.record_extractor import RecordExtractor
+from airbyte_cdk.sources.declarative.schema.json_file_schema_loader import JsonFileSchemaLoader
+from airbyte_cdk.sources.declarative.types import Config, Record
+
+logger = logging.getLogger("airbyte")
+
+
+class AverageSessionLengthRecordExtractor(RecordExtractor):
+ """
+ Create records from complex response structure
+ Issue: https://github.com/airbytehq/airbyte/issues/23145
+ """
+
+ def extract_records(self, response: requests.Response) -> List[Record]:
+ response_data = response.json().get("data", [])
+ if response_data:
+ # From the Amplitude documentation it follows that "series" is an array with one element which is itself
+ # an array that contains the average session length for each day.
+ # https://developers.amplitude.com/docs/dashboard-rest-api#returns-2
+ series = response_data.get("series", [])
+ if len(series) > 0:
+ series = series[0] # get the nested list
+ return [{"date": date, "length": length} for date, length in zip(response_data["xValues"], series)]
+ return []
+
+
+class ActiveUsersRecordExtractor(RecordExtractor):
+ """
+ Create records from complex response structure
+ Issue: https://github.com/airbytehq/airbyte/issues/23145
+ """
+
+ def extract_records(self, response: requests.Response) -> List[Record]:
+ response_data = response.json().get("data", [])
+ if response_data:
+ series = list(zip(*response_data["series"]))
+ if series:
+ return [
+ {"date": date, "statistics": dict(zip(response_data["seriesLabels"], users))}
+ for date, users in zip(response_data["xValues"], series)
+ ]
+ return []
+
+
+@dataclass
+class EventsExtractor(RecordExtractor):
+ """
+ Response for event stream is a zip file with a list of gziped json files inside it.
+ Issue: https://github.com/airbytehq/airbyte/issues/23144
+ """
+
+ config: Config
+ parameters: InitVar[Mapping[str, Any]]
+
+ def __post_init__(self, parameters: Mapping[str, Any]):
+ self.name = parameters.get("name")
+
+ def _get_schema_root_properties(self):
+ schema_loader = JsonFileSchemaLoader(config=self.config, parameters={"name": self.name})
+ schema = schema_loader.get_json_schema()
+ return schema["properties"]
+
+ def _get_date_time_items_from_schema(self):
+ """
+ Get all properties from schema with format: 'date-time'
+ """
+ result = []
+ schema = self._get_schema_root_properties()
+ for key, value in schema.items():
+ if value.get("format") == "date-time":
+ result.append(key)
+ return result
+
+ def _date_time_to_rfc3339(self, record: MutableMapping[str, Any]) -> MutableMapping[str, Any]:
+ """
+ Transform 'date-time' items to RFC3339 format
+ """
+ date_time_fields = self._get_date_time_items_from_schema()
+ for item in record:
+ if item in date_time_fields and record[item]:
+ record[item] = pendulum.parse(record[item]).to_rfc3339_string()
+ return record
+
+ def extract_records(
+ self,
+ response: requests.Response,
+ ) -> List[Record]:
+ try:
+ zip_file = zipfile.ZipFile(io.BytesIO(response.content))
+ except zipfile.BadZipFile:
+ logger.exception(
+ f"Received an invalid zip file in response to URL: {response.request.url}."
+ f"The size of the response body is: {len(response.content)}"
+ )
+ return []
+
+ for gzip_filename in zip_file.namelist():
+ with zip_file.open(gzip_filename) as file:
+ for record in self._parse_zip_file(file):
+ yield self._date_time_to_rfc3339(record) # transform all `date-time` fields to RFC3339
+
+ def _parse_zip_file(self, zip_file: Union[IO[bytes], str]) -> Iterable[MutableMapping]:
+ with gzip.open(zip_file) as file:
+ for record in file:
+ yield json.loads(record)
diff --git a/airbyte-integrations/connectors/source-amplitude/source_amplitude/errors.py b/airbyte-integrations/connectors/source-amplitude/source_amplitude/errors.py
deleted file mode 100644
index abba9cb06ed6..000000000000
--- a/airbyte-integrations/connectors/source-amplitude/source_amplitude/errors.py
+++ /dev/null
@@ -1,34 +0,0 @@
-#
-# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
-#
-
-import logging
-
-LOGGER = logging.getLogger("airbyte")
-
-HTTP_ERROR_CODES = {
- 400: {
- "msg": "The file size of the exported data is too large. Shorten the time ranges and try again. The limit size is 4GB.",
- "lvl": "ERROR",
- },
- 404: {
- "msg": "No data collected",
- "lvl": "WARN",
- },
- 504: {
- "msg": "The amount of data is large causing a timeout. For large amounts of data, the Amazon S3 destination is recommended.",
- "lvl": "ERROR",
- },
-}
-
-
-def error_msg_from_status(status: int = None):
- if status:
- level = HTTP_ERROR_CODES[status]["lvl"]
- message = HTTP_ERROR_CODES[status]["msg"]
- if level == "ERROR":
- LOGGER.error(message)
- elif level == "WARN":
- LOGGER.warn(message)
- else:
- LOGGER.error(f"Unknown error occured: code {status}")
diff --git a/airbyte-integrations/connectors/source-amplitude/source_amplitude/manifest.yaml b/airbyte-integrations/connectors/source-amplitude/source_amplitude/manifest.yaml
new file mode 100644
index 000000000000..a6625ad47e64
--- /dev/null
+++ b/airbyte-integrations/connectors/source-amplitude/source_amplitude/manifest.yaml
@@ -0,0 +1,164 @@
+version: "0.29.0"
+
+definitions:
+ selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: [ "{{ parameters.get('data_field') }}" ]
+ requester:
+ type: HttpRequester
+ url_base: "https://{{'analytics.eu.' if config['data_region'] == 'EU Residency Server' else '' }}amplitude.com/api"
+ http_method: "GET"
+ authenticator:
+ type: BasicHttpAuthenticator
+ username: "{{ config['api_key'] }}"
+ password: "{{ config['secret_key'] }}"
+ error_handler:
+ type: DefaultErrorHandler
+ response_filters:
+ - http_codes: [ 400 ]
+ action: FAIL
+ error_message: The file size of the exported data is too large. Shorten the time ranges and try again. The limit size is 4GB.
+ - http_codes: [ 404 ]
+ action: IGNORE
+ error_message: No data collected
+ - http_codes: [ 504 ]
+ action: FAIL
+ error_message: The amount of data is large causing a timeout. For large amounts of data, the Amazon S3 destination is recommended.
+
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ $ref: "#/definitions/selector"
+ paginator:
+ type: NoPagination
+ requester:
+ $ref: "#/definitions/requester"
+
+ datetime_incremental_sync:
+ type: DatetimeBasedCursor
+ start_datetime:
+ datetime: "{{ format_datetime(config['start_date'], '%Y-%m-%d') }}"
+ end_datetime:
+ datetime: "{{ now_utc().strftime('%Y-%m-%d') }}"
+ datetime_format: "%Y-%m-%d"
+ cursor_granularity: P1D
+ step: P15D
+ cursor_field: "{{ parameters['stream_cursor_field'] }}"
+
+ base_stream:
+ retriever:
+ $ref: "#/definitions/retriever"
+
+ annotations_stream:
+ $ref: "#/definitions/base_stream"
+ $parameters:
+ name: "annotations"
+ primary_key: "id"
+ path: "/2/annotations"
+ data_field: "data"
+
+ cohorts_stream:
+ $ref: "#/definitions/base_stream"
+ $parameters:
+ name: "cohorts"
+ primary_key: "id"
+ path: "/3/cohorts"
+ data_field: "cohorts"
+
+ base_incremental_stream:
+ retriever:
+ $ref: "#/definitions/retriever"
+ requester:
+ $ref: "#/definitions/requester"
+ request_parameters:
+ start: "{{format_datetime(stream_slice.start_time, '%Y%m%d') }}"
+ end: "{{format_datetime(stream_slice.end_time, '%Y%m%d') }}"
+ incremental_sync:
+ $ref: "#/definitions/datetime_incremental_sync"
+
+ average_session_length_stream:
+ $ref: "#/definitions/base_incremental_stream"
+ retriever:
+ $ref: "#/definitions/base_incremental_stream/retriever"
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: CustomRecordExtractor
+ class_name: source_amplitude.components.AverageSessionLengthRecordExtractor
+ $parameters:
+ name: "average_session_length"
+ primary_key: "date"
+ path: "/2/sessions/average"
+ stream_cursor_field: "date"
+
+ active_users_stream:
+ $ref: "#/definitions/base_incremental_stream"
+ retriever:
+ $ref: "#/definitions/base_incremental_stream/retriever"
+ requester:
+ $ref: "#/definitions/base_incremental_stream/retriever/requester"
+ request_parameters:
+ start: "{{format_datetime(stream_slice.start_time, '%Y%m%d') }}"
+ end: "{{format_datetime(stream_slice.end_time, '%Y%m%d') }}"
+ m: "active"
+ i: "1"
+ g: "country"
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: CustomRecordExtractor
+ class_name: source_amplitude.components.ActiveUsersRecordExtractor
+ incremental_sync:
+ $ref: "#/definitions/datetime_incremental_sync"
+ step: P1M
+ cursor_field: "date"
+ $parameters:
+ name: "active_users"
+ primary_key: "date"
+ path: "/2/users"
+
+ events_stream:
+ $ref: "#/definitions/base_incremental_stream"
+ retriever:
+ paginator:
+ type: NoPagination
+ requester:
+ $ref: "#/definitions/requester"
+ request_parameters:
+ start: "{{format_datetime(stream_slice.start_time, '%Y%m%dT%H') }}"
+ end: "{{format_datetime(stream_slice.end_time, '%Y%m%dT%H') }}"
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: CustomRecordExtractor
+ class_name: source_amplitude.components.EventsExtractor
+ record_filter:
+ condition: "{{ record[parameters['stream_cursor_field']] > stream_state.get(parameters['stream_cursor_field'],config['start_date']) }}"
+ incremental_sync:
+ $ref: "#/definitions/datetime_incremental_sync"
+ step: "PT{{config.get('request_time_range', 24)}}H"
+ cursor_field: "{{ parameters.get('stream_cursor_field') }}"
+ cursor_granularity: PT1H
+ start_datetime:
+ datetime: "{{ format_datetime(config['start_date'], '%Y-%m-%dT%H:%M:%S.%f%z') }}"
+ end_datetime:
+ datetime: "{{ now_utc().strftime('%Y-%m-%dT%H:%M:%S.%f%z') }}"
+ datetime_format: "%Y-%m-%dT%H:%M:%S.%f%z"
+ $parameters:
+ name: "events"
+ primary_key: "uuid"
+ path: "/2/export"
+ stream_cursor_field: "server_upload_time"
+
+streams:
+ - "#/definitions/annotations_stream"
+ - "#/definitions/cohorts_stream"
+ - "#/definitions/average_session_length_stream"
+ - "#/definitions/active_users_stream"
+ - "#/definitions/events_stream"
+
+check:
+ stream_names:
+ - "active_users"
diff --git a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/active_users.json b/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/active_users.json
index fe21f00a5124..0bbda9452bd2 100644
--- a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/active_users.json
+++ b/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/active_users.json
@@ -1,5 +1,5 @@
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "https://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"date": {
diff --git a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/annotations.json b/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/annotations.json
index c58f3073d47c..420e65bc4412 100644
--- a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/annotations.json
+++ b/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/annotations.json
@@ -1,5 +1,5 @@
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "https://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"date": {
diff --git a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/average_session_length.json b/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/average_session_length.json
index 7f0e80192f55..0f13484727d3 100644
--- a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/average_session_length.json
+++ b/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/average_session_length.json
@@ -1,5 +1,5 @@
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "https://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"date": {
diff --git a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/cohorts.json b/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/cohorts.json
index 2f29eb48c231..c477473273bd 100644
--- a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/cohorts.json
+++ b/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/cohorts.json
@@ -1,5 +1,5 @@
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "https://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"appId": {
diff --git a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/events.json b/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/events.json
index dcc2aa12b5fd..9b9b0e79b9fa 100644
--- a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/events.json
+++ b/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/events.json
@@ -1,5 +1,5 @@
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "https://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"server_received_time": {
diff --git a/airbyte-integrations/connectors/source-amplitude/source_amplitude/source.py b/airbyte-integrations/connectors/source-amplitude/source_amplitude/source.py
index c5f4aed73a46..aa2ac4e45a48 100644
--- a/airbyte-integrations/connectors/source-amplitude/source_amplitude/source.py
+++ b/airbyte-integrations/connectors/source-amplitude/source_amplitude/source.py
@@ -2,66 +2,17 @@
# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
#
-import logging
-from base64 import b64encode
-from typing import Any, List, Mapping, Tuple
+from airbyte_cdk.sources.declarative.yaml_declarative_source import YamlDeclarativeSource
-import pendulum
-from airbyte_cdk import AirbyteLogger
-from airbyte_cdk.models import SyncMode
-from airbyte_cdk.sources import AbstractSource
-from airbyte_cdk.sources.streams import Stream
-from airbyte_cdk.sources.streams.http.auth import TokenAuthenticator
+"""
+This file provides the necessary constructs to interpret a provided declarative YAML configuration file into
+source connector.
-from .api import ActiveUsers, Annotations, AverageSessionLength, Cohorts, Events
+WARNING: Do not modify this file.
+"""
-class SourceAmplitude(AbstractSource):
- def _convert_auth_to_token(self, username: str, password: str) -> str:
- username = username.encode("latin1")
- password = password.encode("latin1")
- token = b64encode(b":".join((username, password))).strip().decode("ascii")
- return token
-
- def check_connection(self, logger: AirbyteLogger, config: Mapping[str, Any]) -> Tuple[bool, any]:
- try:
- auth = TokenAuthenticator(token=self._convert_auth_to_token(config["api_key"], config["secret_key"]), auth_method="Basic")
- list(Cohorts(authenticator=auth, data_region=config.get("data_region", "Standard Server")).read_records(SyncMode.full_refresh))
- return True, None
- except Exception as error:
- return False, f"Unable to connect to Amplitude API with the provided credentials - {repr(error)}"
-
- @staticmethod
- def _validate_start_date(start_date):
- now = pendulum.now()
- start_date = pendulum.parse(start_date)
- start_date_in_future = start_date > now
-
- if start_date_in_future:
- logger = logging.getLogger("airbyte")
- logger.info(f"Start date set to {now}.")
-
- return now
- return start_date
-
- def streams(self, config: Mapping[str, Any]) -> List[Stream]:
- """
- :param config: A Mapping of the user input configuration as defined in the connector spec.
- """
- config["start_date"] = self._validate_start_date(config.get("start_date"))
- if not config.get("data_region"):
- config["data_region"] = "Standard Server"
-
- auth = TokenAuthenticator(token=self._convert_auth_to_token(config["api_key"], config["secret_key"]), auth_method="Basic")
- return [
- Cohorts(authenticator=auth, data_region=config["data_region"]),
- Annotations(authenticator=auth, data_region=config["data_region"]),
- Events(
- authenticator=auth,
- start_date=config["start_date"],
- data_region=config["data_region"],
- event_time_interval=config.get("event_time_interval", None),
- ),
- ActiveUsers(authenticator=auth, start_date=config["start_date"], data_region=config["data_region"]),
- AverageSessionLength(authenticator=auth, start_date=config["start_date"], data_region=config["data_region"]),
- ]
+# Declarative Source
+class SourceAmplitude(YamlDeclarativeSource):
+ def __init__(self):
+ super().__init__(**{"path_to_yaml": "manifest.yaml"})
diff --git a/airbyte-integrations/connectors/source-amplitude/source_amplitude/spec.json b/airbyte-integrations/connectors/source-amplitude/source_amplitude/spec.json
deleted file mode 100644
index 6ee34049ac73..000000000000
--- a/airbyte-integrations/connectors/source-amplitude/source_amplitude/spec.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "documentationUrl": "https://docs.airbyte.com/integrations/sources/amplitude",
- "connectionSpecification": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Amplitude Spec",
- "type": "object",
- "required": ["api_key", "secret_key", "start_date"],
- "additionalProperties": true,
- "properties": {
- "data_region": {
- "type": "string",
- "title": "Data region",
- "description": "Amplitude data region server",
- "enum": ["Standard Server", "EU Residency Server"],
- "default": "Standard Server"
- },
- "api_key": {
- "type": "string",
- "title": "API Key",
- "description": "Amplitude API Key. See the setup guide for more information on how to obtain this key.",
- "airbyte_secret": true
- },
- "secret_key": {
- "type": "string",
- "title": "Secret Key",
- "description": "Amplitude Secret Key. See the setup guide for more information on how to obtain this key.",
- "airbyte_secret": true
- },
- "start_date": {
- "type": "string",
- "title": "Replication Start Date",
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
- "description": "UTC date and time in the format 2021-01-25T00:00:00Z. Any data before this date will not be replicated.",
- "examples": ["2021-01-25T00:00:00Z"]
- },
- "event_time_interval": {
- "type": "object",
- "title": "Event Stream Time Interval",
- "description": "Amplitude event stream time interval",
- "required": ["size_unit", "size"],
- "properties": {
- "size_unit" : {
- "type" : "string",
- "title" : "Events Time Interval Size Unit",
- "description" : "Amplitude event stream's interval size unit",
- "enum" : [
- "days",
- "hours",
- "weeks",
- "months"
- ],
- "default" : "days"
- },
- "size" : {
- "type" : "integer",
- "title" : "Events Time Interval Size",
- "description" : "Amplitude event stream's interval size unit",
- "default" : 1
- }
- }
- }
- }
- }
-}
diff --git a/airbyte-integrations/connectors/source-amplitude/source_amplitude/spec.yaml b/airbyte-integrations/connectors/source-amplitude/source_amplitude/spec.yaml
new file mode 100644
index 000000000000..8b14b1ca9f5e
--- /dev/null
+++ b/airbyte-integrations/connectors/source-amplitude/source_amplitude/spec.yaml
@@ -0,0 +1,47 @@
+documentationUrl: https://docs.airbyte.com/integrations/sources/amplitude
+connectionSpecification:
+ "$schema": https://json-schema.org/draft-07/schema#
+ title: Amplitude Spec
+ type: object
+ required:
+ - api_key
+ - secret_key
+ - start_date
+ additionalProperties: true
+ properties:
+ data_region:
+ type: string
+ title: Data region
+ description: Amplitude data region server
+ enum:
+ - Standard Server
+ - EU Residency Server
+ default: Standard Server
+ api_key:
+ type: string
+ title: API Key
+ description: Amplitude API Key. See the setup
+ guide for more information on how to obtain this key.
+ airbyte_secret: true
+ secret_key:
+ type: string
+ title: Secret Key
+ description: Amplitude Secret Key. See the setup
+ guide for more information on how to obtain this key.
+ airbyte_secret: true
+ start_date:
+ type: string
+ title: Replication Start Date
+ pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
+ description: UTC date and time in the format 2021-01-25T00:00:00Z. Any data
+ before this date will not be replicated.
+ examples:
+ - "2021-01-25T00:00:00Z"
+ request_time_range:
+ type: integer
+ title: Request time range
+ description: According to Considerations too
+ big time range in request can cause a timeout error. In this case, set shorter time interval in hours.
+ default: 24
+ minimum: 1
+ maximum: 8760
diff --git a/airbyte-integrations/connectors/source-amplitude/unit_tests/records.json.zip b/airbyte-integrations/connectors/source-amplitude/unit_tests/records.json.zip
new file mode 100644
index 0000000000000000000000000000000000000000..7b084972d71a8faa6042b3b4f3d1322a0d6a7688
GIT binary patch
literal 163
zcmWIWW@h1HU|`^2P^@$c%aQ!WtqtU905LZZ7o{faWfkY=>7`dqe*f%2ME$oiBj)13
ztW9xYg>`a=Uu_7sYnO?J3N#oAAlVV%&B_Ln
NVFW@;ARPi$1_0@&B_{v?
literal 0
HcmV?d00001
diff --git a/airbyte-integrations/connectors/source-amplitude/unit_tests/test_api.py b/airbyte-integrations/connectors/source-amplitude/unit_tests/test_api.py
deleted file mode 100644
index 912cd034ec35..000000000000
--- a/airbyte-integrations/connectors/source-amplitude/unit_tests/test_api.py
+++ /dev/null
@@ -1,277 +0,0 @@
-#
-# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
-#
-
-
-import pendulum
-import pytest
-import requests
-from source_amplitude.api import ActiveUsers, Annotations, AverageSessionLength, Cohorts, Events
-
-
-class MockRequest:
- def __init__(self, status_code):
- self.status_code = status_code
-
-
-class TestFullRefreshStreams:
- @pytest.mark.parametrize(
- "stream_cls, data, expected",
- [
- (Cohorts, [{"key": "value"}], [{"key": "value"}]),
- (Annotations, [{"key1": "value1"}], [{"key1": "value1"}]),
- ],
- ids=["Cohorts", "Annotations"],
- )
- def test_parse_response(self, requests_mock, stream_cls, data, expected):
- stream = stream_cls(data_region="Standard Server")
- url = f"{stream.url_base}{stream.path()}"
- data = {stream.data_field: data}
- requests_mock.get(url, json=data)
- response = requests.get(url)
- assert list(stream.parse_response(response)) == expected
-
- @pytest.mark.parametrize(
- "stream_cls, expected",
- [
- (Cohorts, None),
- (Annotations, None),
- ],
- ids=["Cohorts", "Annotations"],
- )
- def test_next_page_token(self, requests_mock, stream_cls, expected):
- stream = stream_cls(data_region="Standard Server")
- url = f"{stream.url_base}{stream.path()}"
- requests_mock.get(url, json={})
- response = requests.get(url)
- assert stream.next_page_token(response) == expected
-
- @pytest.mark.parametrize(
- "stream_cls, expected",
- [
- (Cohorts, "3/cohorts"),
- (Annotations, "2/annotations"),
- ],
- ids=["Cohorts", "Annotations"],
- )
- def test_path(self, stream_cls, expected):
- stream = stream_cls(data_region="Standard Server")
- assert stream.path() == expected
-
-
-class TestIncrementalStreams:
- @pytest.mark.parametrize(
- "stream_cls, data, expected",
- [
- (
- ActiveUsers,
- {
- "xValues": ["2021-01-01", "2021-01-02"],
- "series": [[1, 5]],
- "seriesCollapsed": [[0]],
- "seriesLabels": [0],
- "seriesMeta": [{"segmentIndex": 0}],
- },
- [{"date": "2021-01-01", "statistics": {0: 1}}, {"date": "2021-01-02", "statistics": {0: 5}}],
- ),
- (
- ActiveUsers,
- {
- "xValues": ["2021-01-01", "2021-01-02"],
- "series": [],
- "seriesCollapsed": [[0]],
- "seriesLabels": [0],
- "seriesMeta": [{"segmentIndex": 0}],
- },
- [],
- ),
- (
- AverageSessionLength,
- {
- "xValues": ["2019-05-23", "2019-05-24"],
- "series": [[2, 6]],
- "seriesCollapsed": [[0]],
- "seriesLabels": [0],
- "seriesMeta": [{"segmentIndex": 0}],
- },
- [{"date": "2019-05-23", "length": 2}, {"date": "2019-05-24", "length": 6}],
- ),
- (
- AverageSessionLength,
- {
- "xValues": ["2019-05-23", "2019-05-24"],
- "series": [],
- "seriesCollapsed": [[0]],
- "seriesLabels": [0],
- "seriesMeta": [{"segmentIndex": 0}],
- },
- [],
- ),
- ],
- ids=["ActiveUsers", "EmptyActiveUsers", "AverageSessionLength", "EmptyAverageSessionLength"],
- )
- def test_parse_response(self, requests_mock, stream_cls, data, expected):
- stream = stream_cls("2021-01-01T00:00:00Z", data_region="Standard Server")
- url = f"{stream.url_base}{stream.path()}"
- data = {stream.data_field: data}
- requests_mock.get(url, json=data)
- response = requests.get(url)
- result = list(stream.parse_response(response))
- assert result == expected
-
- @pytest.mark.parametrize(
- "stream_cls, expected",
- [
- (ActiveUsers, "2/users"),
- (AverageSessionLength, "2/sessions/average"),
- (Events, "2/export"),
- ],
- ids=["ActiveUsers", "AverageSessionLength", "Events"],
- )
- def test_path(self, stream_cls, expected):
- stream = stream_cls(pendulum.now().isoformat(), data_region="Standard Server")
- assert stream.path() == expected
-
- @pytest.mark.parametrize(
- "stream_cls, expected",
- [
- (ActiveUsers, {"m": "active", "i": 1, "g": "country"}),
- (AverageSessionLength, {}),
- ],
- ids=["ActiveUsers", "AverageSessionLength"],
- )
- def test_request_params(self, stream_cls, expected):
- now = pendulum.now()
- stream = stream_cls(now.isoformat(), data_region="Standard Server")
- # update expected with valid start,end dates
- slice = stream.stream_slices(stream_state={"date": now.to_date_string()})[0]
- expected.update(**slice)
- assert stream.request_params(stream_state=None, stream_slice=slice) == expected
-
- @pytest.mark.parametrize(
- "stream_cls, expected",
- [
- (ActiveUsers, {}),
- (AverageSessionLength, {}),
- ],
- ids=["ActiveUsers", "AverageSessionLength"],
- )
- def test_next_page_token(self, requests_mock, stream_cls, expected):
- days_ago = pendulum.now().subtract(days=2)
- stream = stream_cls(days_ago.isoformat(), data_region="Standard Server")
- start = days_ago.strftime(stream.date_template)
- end = pendulum.yesterday().strftime(stream.date_template)
- url = f"{stream.url_base}{stream.path()}?start={start}&end={end}"
- # update expected with test values.
- expected.update(
- **{"start": pendulum.yesterday().strftime(stream.date_template), "end": pendulum.now().strftime(stream.date_template)}
- )
- requests_mock.get(url)
- response = requests.get(url)
- assert stream.next_page_token(response) == expected
-
- @pytest.mark.parametrize(
- "stream_cls, expected",
- [
- (ActiveUsers, ""),
- (AverageSessionLength, ""),
- (Events, ""),
- ],
- ids=["ActiveUsers", "AverageSessionLength", "Events"],
- )
- def test_get_end_date(self, stream_cls, expected):
- now = pendulum.now()
- yesterday = pendulum.yesterday()
- stream = stream_cls(
- yesterday.isoformat(),
- data_region="Standard Server",
- event_time_interval={"size_unit": "days", "size": 1}
- )
- # update expected with test values.
- expected = now.strftime(stream.date_template)
- assert stream._get_end_date(yesterday).strftime(stream.date_template) == expected
-
-
-class TestEventsStream:
- def test_parse_zip(self):
- stream = Events(
- pendulum.now().isoformat(),
- data_region="Standard Server",
- event_time_interval={"size_unit": "days", "size": 1}
- )
- expected = [{"id": 123}]
- result = list(stream._parse_zip_file("unit_tests/api_data/zipped.json"))
- assert expected == result
-
- def test_stream_slices(self):
- stream = Events(
- pendulum.now().isoformat(),
- data_region="Standard Server",
- event_time_interval={"size_unit": "days", "size": 1}
- )
- now = pendulum.now()
- expected = [
- {
- "start": now.strftime(stream.date_template),
- "end": stream._get_end_date(now).add(**stream.time_interval).subtract(hours=1).strftime(stream.date_template),
- }
- ]
- assert expected == stream.stream_slices()
-
- def test_request_params(self):
- stream = Events(
- pendulum.now().isoformat(),
- data_region="Standard Server",
- event_time_interval={"size_unit": "days", "size": 1}
- )
- now = pendulum.now().subtract(hours=6)
- slice = {"start": now.strftime(stream.date_template), "end": stream._get_end_date(now).strftime(stream.date_template)}
- assert slice == stream.request_params(slice)
-
- def test_get_updated_state(self):
- stream = Events(
- pendulum.now().isoformat(),
- data_region="Standard Server",
- event_time_interval={"size_unit": "days", "size": 1}
- )
- current_state = {"event_time": ""}
- latest_record = {"event_time": "2021-05-27 11:59:53.710000"}
- result = stream.get_updated_state(current_state, latest_record)
- assert result == latest_record
-
- def test_get_date_time_items_from_schema(self):
- stream = Events(
- pendulum.now().isoformat(),
- data_region="Standard Server",
- event_time_interval={"size_unit": "days", "size": 1}
- )
- expected = [
- "server_received_time",
- "event_time",
- "processed_time",
- "user_creation_time",
- "client_upload_time",
- "server_upload_time",
- "client_event_time",
- ]
- result = stream._get_date_time_items_from_schema()
- assert result == expected
-
- @pytest.mark.parametrize(
- "record, expected",
- [
- ({}, {}),
- ({"event_time": "2021-05-27 11:59:53.710000"}, {"event_time": "2021-05-27T11:59:53.710000+00:00"}),
- ({"event_time": None}, {"event_time": None}),
- ({"event_time": ""}, {"event_time": ""}),
- ],
- ids=["empty_record", "transformed_record", "null_value", "empty_value"],
- )
- def test_date_time_to_rfc3339(self, record, expected):
- stream = Events(
- pendulum.now().isoformat(),
- data_region="Standard Server",
- event_time_interval={"size_unit": "days", "size": 1}
- )
- result = stream._date_time_to_rfc3339(record)
- assert result == expected
diff --git a/airbyte-integrations/connectors/source-amplitude/unit_tests/test_custom_extractors.py b/airbyte-integrations/connectors/source-amplitude/unit_tests/test_custom_extractors.py
new file mode 100644
index 000000000000..13ebf865ef3a
--- /dev/null
+++ b/airbyte-integrations/connectors/source-amplitude/unit_tests/test_custom_extractors.py
@@ -0,0 +1,114 @@
+#
+# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
+#
+
+import os
+from unittest.mock import MagicMock
+
+import pytest
+import requests
+from source_amplitude.components import ActiveUsersRecordExtractor, AverageSessionLengthRecordExtractor, EventsExtractor
+
+
+@pytest.mark.parametrize(
+ "custom_extractor, data, expected",
+ [
+ (
+ ActiveUsersRecordExtractor,
+ {
+ "xValues": ["2021-01-01", "2021-01-02"],
+ "series": [[1, 5]],
+ "seriesCollapsed": [[0]],
+ "seriesLabels": [0],
+ "seriesMeta": [{"segmentIndex": 0}],
+ },
+ [{"date": "2021-01-01", "statistics": {0: 1}}, {"date": "2021-01-02", "statistics": {0: 5}}],
+ ),
+ (
+ ActiveUsersRecordExtractor,
+ {
+ "xValues": ["2021-01-01", "2021-01-02"],
+ "series": [],
+ "seriesCollapsed": [[0]],
+ "seriesLabels": [0],
+ "seriesMeta": [{"segmentIndex": 0}],
+ },
+ [],
+ ),
+ (
+ AverageSessionLengthRecordExtractor,
+ {
+ "xValues": ["2019-05-23", "2019-05-24"],
+ "series": [[2, 6]],
+ "seriesCollapsed": [[0]],
+ "seriesLabels": [0],
+ "seriesMeta": [{"segmentIndex": 0}],
+ },
+ [{"date": "2019-05-23", "length": 2}, {"date": "2019-05-24", "length": 6}],
+ ),
+ (
+ AverageSessionLengthRecordExtractor,
+ {
+ "xValues": ["2019-05-23", "2019-05-24"],
+ "series": [],
+ "seriesCollapsed": [[0]],
+ "seriesLabels": [0],
+ "seriesMeta": [{"segmentIndex": 0}],
+ },
+ [],
+ ),
+ ],
+ ids=["ActiveUsers", "EmptyActiveUsers", "AverageSessionLength", "EmptyAverageSessionLength"],
+)
+def test_parse_response(custom_extractor, data, expected):
+ extractor = custom_extractor()
+ response = requests.Response()
+ response.json = MagicMock(return_value={'data': data})
+ result = extractor.extract_records(response)
+ assert result == expected
+
+
+class TestEventsExtractor:
+ extractor = EventsExtractor(config={}, parameters={'name': 'events'})
+
+ def test_get_date_time_items_from_schema(self):
+ expected = [
+ "server_received_time",
+ "event_time",
+ "processed_time",
+ "user_creation_time",
+ "client_upload_time",
+ "server_upload_time",
+ "client_event_time",
+ ]
+ result = self.extractor._get_date_time_items_from_schema()
+ assert result == expected
+
+ @pytest.mark.parametrize(
+ "record, expected",
+ [
+ ({}, {}),
+ ({"event_time": "2021-05-27 11:59:53.710000"}, {"event_time": "2021-05-27T11:59:53.710000+00:00"}),
+ ({"event_time": None}, {"event_time": None}),
+ ({"event_time": ""}, {"event_time": ""}),
+ ],
+ ids=["empty_record", "transformed_record", "null_value", "empty_value"],
+ )
+ def test_date_time_to_rfc3339(self, record, expected):
+ result = self.extractor._date_time_to_rfc3339(record)
+ assert result == expected
+
+ @pytest.mark.parametrize(
+ "file_name, expected_records",
+ [
+ ('records.json.zip', [{"id": 123}]),
+ ('zipped.json.gz', []),
+ ],
+ ids=["normal_file", "wrong_file"],
+ )
+ def test_parse_zip(self, requests_mock, file_name, expected_records):
+ with open(f"{os.path.dirname(__file__)}/{file_name}", 'rb') as zipped:
+ url = "https://amplitude.com/"
+ requests_mock.get(url, content=zipped.read())
+ response = requests.get(url)
+ assert list(self.extractor.extract_records(response)) == expected_records
diff --git a/airbyte-integrations/connectors/source-amplitude/unit_tests/test_errors.py b/airbyte-integrations/connectors/source-amplitude/unit_tests/test_errors.py
deleted file mode 100755
index 6eb8e25855d3..000000000000
--- a/airbyte-integrations/connectors/source-amplitude/unit_tests/test_errors.py
+++ /dev/null
@@ -1,45 +0,0 @@
-#
-# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
-#
-
-import pytest
-import requests
-from airbyte_cdk.models import SyncMode
-from source_amplitude.api import Events
-
-
-class MockRequest:
- def __init__(self, status_code):
- self.status_code = status_code
-
-
-def test_incremental_http_error_handler(mocker):
- stream = Events(
- start_date="2021-01-01T00:00:00Z",
- data_region="Standard Server",
- event_time_interval={"size_unit": "days", "size": 1}
- )
- stream_slice = stream.stream_slices()[0]
-
- mock_response = MockRequest(404)
- send_request_mocker = mocker.patch.object(stream, "_send_request", side_effect=requests.HTTPError(**{"response": mock_response}))
- with pytest.raises(StopIteration):
- result = next(stream.read_records(sync_mode=SyncMode.full_refresh, stream_slice=stream_slice))
- assert result == []
-
- mock_response = MockRequest(403)
- send_request_mocker.side_effect = requests.HTTPError(**{"response": mock_response})
- with pytest.raises(requests.exceptions.HTTPError):
- next(stream.read_records(sync_mode=SyncMode.full_refresh, stream_slice=stream_slice))
-
- mock_response = MockRequest(400)
- send_request_mocker.side_effect = requests.HTTPError(**{"response": mock_response})
- with pytest.raises(StopIteration):
- result = next(stream.read_records(sync_mode=SyncMode.full_refresh, stream_slice=stream_slice))
- assert result == []
-
- mock_response = MockRequest(504)
- send_request_mocker.side_effect = requests.HTTPError(**{"response": mock_response})
- with pytest.raises(StopIteration):
- result = next(stream.read_records(sync_mode=SyncMode.full_refresh, stream_slice=stream_slice))
- assert result == []
diff --git a/airbyte-integrations/connectors/source-amplitude/unit_tests/test_source.py b/airbyte-integrations/connectors/source-amplitude/unit_tests/test_source.py
deleted file mode 100644
index 1d16d6069154..000000000000
--- a/airbyte-integrations/connectors/source-amplitude/unit_tests/test_source.py
+++ /dev/null
@@ -1,72 +0,0 @@
-#
-# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
-#
-
-
-from unittest.mock import patch
-
-import pendulum
-import pytest
-import requests
-from airbyte_cdk import AirbyteLogger
-from source_amplitude import SourceAmplitude
-from source_amplitude.api import ActiveUsers, Annotations, AverageSessionLength, Cohorts, Events
-
-TEST_CONFIG: dict = {
- "data_region": "test_data_region",
- "api_key": "test_api_key",
- "secret_key": "test_secret_key",
- "start_date": "2022-05-01T00:00:00Z"
-}
-TEST_INSTANCE: SourceAmplitude = SourceAmplitude()
-
-
-class MockRequest:
- def __init__(self, status_code):
- self.status_code = status_code
-
-
-def test_convert_auth_to_token():
- expected = "dXNlcm5hbWU6cGFzc3dvcmQ="
- actual = TEST_INSTANCE._convert_auth_to_token("username", "password")
- assert actual == expected
-
-
-@pytest.mark.parametrize(
- "response, check_passed",
- [
- ({"id": 123}, True),
- (requests.HTTPError(), False),
- ],
- ids=["Success", "Fail"],
-)
-def test_check(response, check_passed):
- with patch.object(Cohorts, "read_records", return_value=response) as mock_method:
- result = TEST_INSTANCE.check_connection(logger=AirbyteLogger, config=TEST_CONFIG)
- mock_method.assert_called()
- assert check_passed == result[0]
-
-
-@pytest.mark.parametrize(
- "expected_stream_cls",
- [
- (Cohorts),
- (Annotations),
- (ActiveUsers),
- (AverageSessionLength),
- (Events),
- ],
- ids=["Cohorts", "Annotations", "ActiveUsers", "AverageSessionLength", "Events"],
-)
-def test_streams(expected_stream_cls):
- TEST_CONFIG["start_date"] = pendulum.tomorrow().to_datetime_string()
- streams = TEST_INSTANCE.streams(config=TEST_CONFIG)
- for stream in streams:
- if expected_stream_cls in streams:
- assert isinstance(stream, expected_stream_cls)
-
-
-def test_validate_start_date():
- start_date = pendulum.tomorrow().to_datetime_string()
- now = pendulum.now().to_datetime_string()
- assert TEST_INSTANCE._validate_start_date(start_date).to_datetime_string() == now
diff --git a/airbyte-integrations/connectors/source-amplitude/unit_tests/api_data/zipped.json b/airbyte-integrations/connectors/source-amplitude/unit_tests/zipped.json.gz
similarity index 100%
rename from airbyte-integrations/connectors/source-amplitude/unit_tests/api_data/zipped.json
rename to airbyte-integrations/connectors/source-amplitude/unit_tests/zipped.json.gz
diff --git a/connectors.md b/connectors.md
index 1e8c35ffd589..7aead45830f3 100644
--- a/connectors.md
+++ b/connectors.md
@@ -14,7 +14,7 @@
| **Amazon Ads** | | Source | airbyte/source-amazon-ads:1.0.2 | generally_available | [link](https://docs.airbyte.com/integrations/sources/amazon-ads) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amazon-ads) | `c6b0a29e-1da9-4512-9002-7bfd0cba2246` |
| **Amazon SQS** | | Source | airbyte/source-amazon-sqs:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/amazon-sqs) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amazon-sqs) | `983fd355-6bf3-4709-91b5-37afa391eeb6` |
| **Amazon Seller Partner** | | Source | airbyte/source-amazon-seller-partner:1.0.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/amazon-seller-partner) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amazon-seller-partner) | `e55879a8-0ef8-4557-abcf-ab34c53ec460` |
-| **Amplitude** | | Source | airbyte/source-amplitude:0.1.24 | generally_available | [link](https://docs.airbyte.com/integrations/sources/amplitude) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amplitude) | `fa9f58c6-2d03-4237-aaa4-07d75e0c1396` |
+| **Amplitude** | | Source | airbyte/source-amplitude:0.2.0 | generally_available | [link](https://docs.airbyte.com/integrations/sources/amplitude) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amplitude) | `fa9f58c6-2d03-4237-aaa4-07d75e0c1396` |
| **Apify Dataset** | | Source | airbyte/source-apify-dataset:0.1.11 | alpha | [link](https://docs.airbyte.com/integrations/sources/apify-dataset) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-apify-dataset) | `47f17145-fe20-4ef5-a548-e29b048adf84` |
| **Appfollow** | | Source | airbyte/source-appfollow:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/appfollow) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-appfollow) | `b4375641-e270-41d3-9c20-4f9cecad87a8` |
| **AppsFlyer** | | Source | airbyte/source-appsflyer:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/appsflyer) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-appsflyer) | `16447954-e6a8-4593-b140-43dea13bc457` |
diff --git a/docs/integrations/sources/amplitude.md b/docs/integrations/sources/amplitude.md
index 05cb064168dc..400b64e9d3b0 100644
--- a/docs/integrations/sources/amplitude.md
+++ b/docs/integrations/sources/amplitude.md
@@ -43,6 +43,7 @@ The Amplitude connector ideally should gracefully handle Amplitude API limitatio
| Version | Date | Pull Request | Subject |
|:--------|:-----------|:---------------------------------------------------------|:------------------------------------------------------------------------------------------------|
+| 0.2.0 | 2023-02-03 | [22362](https://github.com/airbytehq/airbyte/pull/22362) | Migrate to YAML |
| 0.1.24 | 2023-03-28 | [21022](https://github.com/airbytehq/airbyte/pull/21022) | Enable event stream time interval selection |
| 0.1.23 | 2023-03-02 | [23087](https://github.com/airbytehq/airbyte/pull/23087) | Specified date formatting in specification |
| 0.1.22 | 2023-02-17 | [23192](https://github.com/airbytehq/airbyte/pull/23192) | Skip the stream if `start_date` is specified in the future.
From d209b604bcb4d16d4b17768a09a22ba96a28637b Mon Sep 17 00:00:00 2001
From: Arsen Losenko <20901439+arsenlosenko@users.noreply.github.com>
Date: Thu, 13 Apr 2023 17:03:24 +0300
Subject: [PATCH 044/187] Source Zendesk Support: update expected records
(#25058)
* Source Zendesk Support: skip stream
* Add expected records for tags stream
* Automated Change
---------
Co-authored-by: arsenlosenko
---
.../integration_tests/expected_records.jsonl | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/airbyte-integrations/connectors/source-zendesk-support/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-zendesk-support/integration_tests/expected_records.jsonl
index 25b8f33ad2d4..06d364a37fcd 100644
--- a/airbyte-integrations/connectors/source-zendesk-support/integration_tests/expected_records.jsonl
+++ b/airbyte-integrations/connectors/source-zendesk-support/integration_tests/expected_records.jsonl
@@ -35,10 +35,6 @@
{"stream":"schedules","data":{"id":4567312249615,"name":"Test Schedule","time_zone":"New Caledonia","created_at":"2022-03-25T10:23:34Z","updated_at":"2022-03-25T10:23:34Z","intervals":[{"start_time":1980,"end_time":2460},{"start_time":3420,"end_time":3900},{"start_time":4860,"end_time":5340},{"start_time":6300,"end_time":6780},{"start_time":7740,"end_time":8220}]},"emitted_at":1673880699938}
{"stream":"sla_policies","data":{"url":"https://d3v-airbyte.zendesk.com/api/v2/slas/policies/360001110696.json","id":360001110696,"title":"test police","description":"for tests","position":1,"filter":{"all":[{"field":"assignee_id","operator":"is","value":361089721035}],"any":[]},"policy_metrics":[{"priority":"high","metric":"first_reply_time","target":61,"business_hours":false}],"created_at":"2021-07-16T11:05:31Z","updated_at":"2021-07-16T11:05:31Z"},"emitted_at":1673880700970}
{"stream":"sla_policies","data":{"url":"https://d3v-airbyte.zendesk.com/api/v2/slas/policies/360001113715.json","id":360001113715,"title":"test police 2","description":"test police 2","position":2,"filter":{"all":[{"field":"organization_id","operator":"is","value":360033549136}],"any":[]},"policy_metrics":[{"priority":"high","metric":"first_reply_time","target":121,"business_hours":false}],"created_at":"2021-07-16T11:06:01Z","updated_at":"2021-07-16T11:06:01Z"},"emitted_at":1673880700970}
-{"stream":"tags","data":{"name":"test","count":3},"emitted_at":1673880702342}
-{"stream":"tags","data":{"name":"tag2","count":1},"emitted_at":1673880702342}
-{"stream":"tags","data":{"name":"tag1","count":1},"emitted_at":1673880702343}
-{"stream":"tags","data":{"name":"tag","count":1},"emitted_at":1673880702343}
{"stream":"ticket_audits","data":{"id":5909514817039,"ticket_id":25,"created_at":"2022-11-22T17:02:04Z","author_id":-1,"metadata":{"system":{},"custom":{}},"events":[{"id":5909514817167,"type":"Notification","subject":"Request #{{ticket.id}}: How would you rate the support you received?","body":"Hello {{ticket.requester.name}},\n\nWe'd love to hear what you think of our customer service. Please take a moment to answer one simple question by clicking either link below:\n\n{{satisfaction.rating_section}}\n\nHere's a reminder of what this request was about:\n\n{{ticket.comments_formatted}}\n","recipients":[360786799676]},{"id":5909514817295,"type":"Change","value":"offered","field_name":"satisfaction_score","previous_value":"unoffered"}],"via":{"channel":"rule","source":{"to":{},"from":{"deleted":false,"title":"Request customer satisfaction rating (system automation)","id":360021281435},"rel":"automation"}}},"emitted_at":1673880705813}
{"stream":"ticket_audits","data":{"id":5909508365711,"ticket_id":141,"created_at":"2022-11-22T17:02:04Z","author_id":-1,"metadata":{"system":{},"custom":{}},"events":[{"id":5909502407183,"type":"Notification","subject":"Request #{{ticket.id}}: How would you rate the support you received?","body":"Hello {{ticket.requester.name}},\n\nWe'd love to hear what you think of our customer service. Please take a moment to answer one simple question by clicking either link below:\n\n{{satisfaction.rating_section}}\n\nHere's a reminder of what this request was about:\n\n{{ticket.comments_formatted}}\n","recipients":[360786799676]}],"via":{"channel":"rule","source":{"to":{},"from":{"deleted":false,"title":"Request customer satisfaction rating (system automation)","id":360021281435},"rel":"automation"}}},"emitted_at":1673880705814}
{"stream":"ticket_audits","data":{"id":5909492139663,"ticket_id":130,"created_at":"2022-11-22T17:02:04Z","author_id":-1,"metadata":{"system":{},"custom":{}},"events":[{"id":5909502411919,"type":"Notification","subject":"Request #{{ticket.id}}: How would you rate the support you received?","body":"Hello {{ticket.requester.name}},\n\nWe'd love to hear what you think of our customer service. Please take a moment to answer one simple question by clicking either link below:\n\n{{satisfaction.rating_section}}\n\nHere's a reminder of what this request was about:\n\n{{ticket.comments_formatted}}\n","recipients":[360786799676]}],"via":{"channel":"rule","source":{"to":{},"from":{"deleted":false,"title":"Request customer satisfaction rating (system automation)","id":360021281435},"rel":"automation"}}},"emitted_at":1673880705814}
@@ -103,3 +99,5 @@
{"stream":"users","data":{"id":5527111815439,"url":"https://d3v-airbyte.zendesk.com/api/v2/users/5527111815439.json","name":"Caller +1 (234) 601-8567","email":null,"created_at":"2022-09-19T14:53:48Z","updated_at":"2022-09-19T14:53:49Z","time_zone":"Pacific/Noumea","iana_time_zone":"Pacific/Noumea","phone":"+12346018567","shared_phone_number":false,"photo":null,"locale_id":1,"locale":"en-US","organization_id":null,"role":"end-user","verified":true,"external_id":null,"tags":[],"alias":null,"active":true,"shared":false,"shared_agent":false,"last_login_at":null,"two_factor_auth_enabled":false,"signature":null,"details":null,"notes":null,"role_type":null,"custom_role_id":null,"moderator":false,"ticket_restriction":"requested","only_private_comments":false,"restricted_agent":true,"suspended":false,"default_group_id":null,"report_csv":false,"user_fields":{}},"emitted_at":1673880717536}
{"stream": "brands", "data": {"url": "https://d3v-airbyte.zendesk.com/api/v2/brands/360000358316.json", "id": 360000358316, "name": "Airbyte", "brand_url": "https://d3v-airbyte.zendesk.com", "subdomain": "d3v-airbyte", "host_mapping": null, "has_help_center": false, "help_center_state": "disabled", "active": true, "default": true, "is_deleted": false, "logo": null, "ticket_form_ids": [360000084116], "signature_template": "{{agent.signature}}", "created_at": "2020-12-11T18:34:04Z", "updated_at": "2020-12-11T18:34:09Z"}, "emitted_at": 1673881264500}
{"stream": "custom_roles", "data": {"id": 360000210636, "name": "Advisor", "description": "Can automate ticket workflows, manage channels and make private comments on tickets", "role_type": 0, "created_at": "2020-12-11T18:34:36Z", "updated_at": "2020-12-11T18:34:36Z", "configuration": {"chat_access": true, "manage_business_rules": true, "manage_dynamic_content": false, "manage_extensions_and_channels": true, "manage_facebook": true, "ticket_deletion": false, "view_deleted_tickets": false, "ticket_tag_editing": true, "twitter_search_access": false, "forum_access_restricted_content": false, "end_user_list_access": "full", "ticket_access": "within-groups", "ticket_comment_access": "none", "voice_access": true, "moderate_forums": false, "light_agent": false, "side_conversation_create": true, "group_access": false, "organization_editing": false, "organization_notes_editing": false, "assign_tickets_to_any_group": false, "end_user_profile_access": "readonly", "explore_access": "readonly", "forum_access": "readonly", "macro_access": "full", "report_access": "none", "ticket_editing": true, "ticket_merge": false, "view_access": "full", "user_view_access": "full", "voice_dashboard_access": false, "manage_contextual_workspaces": false, "manage_organization_fields": false, "manage_ticket_fields": false, "manage_ticket_forms": false, "manage_user_fields": false, "manage_automations": true, "manage_skills": true, "manage_slas": true, "manage_triggers": true, "ticket_redaction": false}, "team_member_count": 0}, "emitted_at": 1678472142307}
+{"stream": "tags", "data": {"name": "test", "count": 1}, "emitted_at": 1681311413435}
+{"stream": "tags", "data": {"name": "tag1204", "count": 1}, "emitted_at": 1681311413435}
From 25850fae37690d55246d0a9b007ed668dd18d022 Mon Sep 17 00:00:00 2001
From: Marcos Marx
Date: Thu, 13 Apr 2023 12:07:54 -0300
Subject: [PATCH 045/187] Source Surveymonkey: Fix spec.json required fields
and update schema for surveys and survey_responses (#25080)
* Fixes required fields on SurveyMonkey UI
* fix integration test schema update for surveys and survey response
* fix expected records
* update dockerfile and docs
* auto-bump connector version
---------
Co-authored-by: Ali Hassan
Co-authored-by: Ali Hassan <62539376+Alihassanc5@users.noreply.github.com>
Co-authored-by: Octavia Squidington III
---
.../src/main/resources/seed/oss_catalog.json | 2 +-
.../resources/seed/source_definitions.yaml | 2 +-
.../src/main/resources/seed/source_specs.yaml | 2 +-
.../connectors/source-surveymonkey/Dockerfile | 2 +-
.../acceptance-test-config.yml | 10 +-
.../integration_tests/expected_records.txt | 287 +++++++++++++++++-
.../schemas/survey_responses.json | 3 +
.../source_surveymonkey/schemas/surveys.json | 3 +
.../source_surveymonkey/source.py | 6 -
.../unit_tests/test_source.py | 16 -
connectors.md | 2 +-
docs/integrations/sources/surveymonkey.md | 1 +
12 files changed, 299 insertions(+), 37 deletions(-)
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index 99e0d82d61a2..158d76142951 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -24567,7 +24567,7 @@
"sourceDefinitionId": "badc5925-0485-42be-8caa-b34096cb71b5",
"name": "SurveyMonkey",
"dockerRepository": "airbyte/source-surveymonkey",
- "dockerImageTag": "0.1.15",
+ "dockerImageTag": "0.1.16",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/surveymonkey",
"icon": "surveymonkey.svg",
"sourceType": "api",
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
index ca4661532cbc..31cce062ebc7 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
@@ -2026,7 +2026,7 @@
- name: SurveyMonkey
sourceDefinitionId: badc5925-0485-42be-8caa-b34096cb71b5
dockerRepository: airbyte/source-surveymonkey
- dockerImageTag: 0.1.15
+ dockerImageTag: 0.1.16
documentationUrl: https://docs.airbyte.com/integrations/sources/surveymonkey
icon: surveymonkey.svg
sourceType: api
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
index 7ea13d11b471..ba13cf61a725 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
@@ -15184,7 +15184,7 @@
supportsNormalization: false
supportsDBT: false
supported_destination_sync_modes: []
-- dockerImage: "airbyte/source-surveymonkey:0.1.15"
+- dockerImage: "airbyte/source-surveymonkey:0.1.16"
spec:
documentationUrl: "https://docs.airbyte.com/integrations/sources/surveymonkey"
connectionSpecification:
diff --git a/airbyte-integrations/connectors/source-surveymonkey/Dockerfile b/airbyte-integrations/connectors/source-surveymonkey/Dockerfile
index 5e597041c7fe..2e5ecfc81652 100644
--- a/airbyte-integrations/connectors/source-surveymonkey/Dockerfile
+++ b/airbyte-integrations/connectors/source-surveymonkey/Dockerfile
@@ -12,5 +12,5 @@ RUN pip install .
ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
-LABEL io.airbyte.version=0.1.15
+LABEL io.airbyte.version=0.1.16
LABEL io.airbyte.name=airbyte/source-surveymonkey
diff --git a/airbyte-integrations/connectors/source-surveymonkey/acceptance-test-config.yml b/airbyte-integrations/connectors/source-surveymonkey/acceptance-test-config.yml
index b2a21b386d8e..a75edaae460c 100644
--- a/airbyte-integrations/connectors/source-surveymonkey/acceptance-test-config.yml
+++ b/airbyte-integrations/connectors/source-surveymonkey/acceptance-test-config.yml
@@ -6,10 +6,12 @@ acceptance_tests:
- spec_path: "source_surveymonkey/spec.json"
connection:
tests:
- - config_path: "secrets/config.json"
- status: "succeed"
- - config_path: "integration_tests/invalid_config.json"
- status: "failed"
+ - config_path: "secrets/config_old.json"
+ status: "succeed"
+ - config_path: "secrets/config.json"
+ status: "succeed"
+ - config_path: "integration_tests/invalid_config.json"
+ status: "failed"
discovery:
tests:
- config_path: "secrets/config.json"
diff --git a/airbyte-integrations/connectors/source-surveymonkey/integration_tests/expected_records.txt b/airbyte-integrations/connectors/source-surveymonkey/integration_tests/expected_records.txt
index 96edfa02aa3f..3ae61592160d 100644
--- a/airbyte-integrations/connectors/source-surveymonkey/integration_tests/expected_records.txt
+++ b/airbyte-integrations/connectors/source-surveymonkey/integration_tests/expected_records.txt
@@ -1,12 +1,287 @@
-{"stream":"surveys","data":{"title":"Market Research - Product Testing Template","nickname":"","language":"en","folder_id":"0","category":"market_research","question_count":13,"page_count":1,"response_count":13,"date_created":"2021-05-07T06:18:00","date_modified":"2021-06-08T18:09:00","id":"306079584","buttons_text":{"next_button":"Next >>","prev_button":"<< Prev","done_button":"Done","exit_button":""},"is_owner":true,"footer":true,"theme_id":"4510354","custom_variables":{},"href":"https://api.surveymonkey.com/v3/surveys/306079584","analyze_url":"https://www.surveymonkey.com/analyze/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D","edit_url":"https://www.surveymonkey.com/create/?sm=5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D","collect_url":"https://www.surveymonkey.com/collect/list?sm=5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D","summary_url":"https://www.surveymonkey.com/summary/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D","preview":"https://www.surveymonkey.com/r/Preview/?sm=8T1PwDGoJHE1lbkxjUnaGitKu8jxWzyoclw9fNsShflPlk6MYIzwJ2NgjlBw_2B7iV"},"emitted_at":1674149644633}
-{"stream":"surveys","data":{"title":"yswa8kobijei1mkwaqxgy","nickname":"7b4p9vssf810mslcd0eqpcg9s7p0h","language":"it","folder_id":"0","category":"","question_count":10,"page_count":3,"response_count":18,"date_created":"2021-06-09T21:20:00","date_modified":"2021-06-10T10:59:00","id":"307785429","buttons_text":{"next_button":"Nex >>>>>","prev_button":"Nix <<<<<","done_button":"Nax_Don_Gon!","exit_button":""},"is_owner":true,"footer":true,"theme_id":"4510354","custom_variables":{},"href":"https://api.surveymonkey.com/v3/surveys/307785429","analyze_url":"https://www.surveymonkey.com/analyze/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D","edit_url":"https://www.surveymonkey.com/create/?sm=BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D","collect_url":"https://www.surveymonkey.com/collect/list?sm=BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D","summary_url":"https://www.surveymonkey.com/summary/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D","preview":"https://www.surveymonkey.com/r/Preview/?sm=YRpP3kxXMi2aJkgYoeyZrvuErii13mQ5DRN67Vm4WJ5avIMZ6YvzI_2Bc3FpERJDqx"},"emitted_at":1674149645341}
-{"stream":"surveys","data":{"title":"wsfqk1di34d","nickname":"3pax9qjasev22ofir5dm4x45s","language":"ru","folder_id":"0","category":"","question_count":10,"page_count":3,"response_count":18,"date_created":"2021-06-09T21:20:00","date_modified":"2021-06-10T11:00:00","id":"307785444","buttons_text":{"next_button":"Nex >>>>>","prev_button":"Nix <<<<<","done_button":"Nax_Don_Gon!","exit_button":""},"is_owner":true,"footer":true,"theme_id":"4510354","custom_variables":{},"href":"https://api.surveymonkey.com/v3/surveys/307785444","analyze_url":"https://www.surveymonkey.com/analyze/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D","edit_url":"https://www.surveymonkey.com/create/?sm=BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D","collect_url":"https://www.surveymonkey.com/collect/list?sm=BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D","summary_url":"https://www.surveymonkey.com/summary/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D","preview":"https://www.surveymonkey.com/r/Preview/?sm=8fhTDITxRdeFQ_2BLWzVWxsJSU0nfgGgIbcvuAJ6C8LCdfivLn4FPj6xZP2o8_2FINMc"},"emitted_at":1674149646672}
-{"stream": "survey_responses", "data": {"id": "12706126725", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "124.123.178.184", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405437100", "survey_id": "306079584", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=hNu3QJYf07WiUPOwxCYcARURFGB3ruOrs9slcTHVhmhgDhoNJ0k7w3jCvo0nLM40", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706126725", "total_time": 62, "date_modified": "2021-06-01T17:40:54+00:00", "date_created": "2021-06-01T17:39:51+00:00", "href": "https://api.surveymonkey.com/v3/surveys/306079584/responses/12706126725", "pages": [{"id": "165250506", "questions": [{"id": "652286715", "answers": [{"choice_id": "4285525064"}]}, {"id": "652286721", "answers": [{"choice_id": "4285525084"}]}, {"id": "652286716", "answers": [{"choice_id": "4285525070"}]}, {"id": "652286718", "answers": [{"choice_id": "4285525079"}]}, {"id": "652286722", "answers": [{"choice_id": "4285525089"}]}, {"id": "652286717", "answers": [{"choice_id": "4285525074"}]}, {"id": "652286723", "answers": [{"choice_id": "4285525095"}]}, {"id": "652286714", "answers": [{"choice_id": "4285525058", "row_id": "4285525061", "choice_metadata": {"weight": "0"}}]}]}]}, "emitted_at": 1678795515393}
-{"stream": "survey_responses", "data": {"id": "12706152767", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "37.229.17.15", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405437100", "survey_id": "306079584", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=YIZz5DiXEDES47ARxTbRPzAA9ZOwCjcN_2FDSFTYGWgCVPQCo_2B3EeLirGlON5_2BjrX5", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706152767", "total_time": 55, "date_modified": "2021-06-01T17:50:03+00:00", "date_created": "2021-06-01T17:49:08+00:00", "href": "https://api.surveymonkey.com/v3/surveys/306079584/responses/12706152767", "pages": [{"id": "165250506", "questions": [{"id": "652286726", "answers": [{"tag_data": [], "text": "fuck this"}]}, {"id": "652286715", "answers": [{"choice_id": "4285525067"}]}, {"id": "652286721", "answers": [{"choice_id": "4285525087"}]}, {"id": "652286716", "answers": [{"choice_id": "4285525072"}]}, {"id": "652286718", "answers": [{"choice_id": "4285525081"}]}, {"id": "652286722", "answers": [{"choice_id": "4285525091"}]}, {"id": "652286717", "answers": [{"choice_id": "4285525077"}]}, {"id": "652286723", "answers": [{"choice_id": "4285525097"}]}, {"id": "652286714", "answers": [{"choice_id": "4285525052", "row_id": "4285525061", "choice_metadata": {"weight": "-100"}}]}, {"id": "652286719", "answers": [{"tag_data": [], "text": "waste of time"}]}]}]}, "emitted_at": 1678795515396}
-{"stream": "survey_responses", "data": {"id": "12706159691", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "157.48.231.67", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405437100", "survey_id": "306079584", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=P4z1eeLex6p2OQEYYXRJKBxPyHk6ljkOskXPds2olEToYrU_2FwTZWAyllEtgJRyQL", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706159691", "total_time": 104, "date_modified": "2021-06-01T17:52:27+00:00", "date_created": "2021-06-01T17:50:43+00:00", "href": "https://api.surveymonkey.com/v3/surveys/306079584/responses/12706159691", "pages": [{"id": "165250506", "questions": [{"id": "652286724", "answers": [{"row_id": "4285525098", "x": "78.63", "y": "13.19"}]}, {"id": "652286725", "answers": [{"row_id": "4285525102", "x": "41.94", "y": "50.16"}]}, {"id": "652286715", "answers": [{"choice_id": "4285525065"}]}, {"id": "652286721", "answers": [{"choice_id": "4285525086"}]}, {"id": "652286716", "answers": [{"choice_id": "4285525071"}]}, {"id": "652286718", "answers": [{"choice_id": "4285525079"}]}, {"id": "652286722", "answers": [{"choice_id": "4285525090"}]}, {"id": "652286717", "answers": [{"choice_id": "4285525076"}]}, {"id": "652286723", "answers": [{"choice_id": "4285525095"}]}, {"id": "652286714", "answers": [{"choice_id": "4285525055", "row_id": "4285525061", "choice_metadata": {"weight": "-100"}}]}]}]}, "emitted_at": 1678795515398}
+{"stream": "surveys", "data": {"title": "Market Research - Product Testing Template", "nickname": "", "language": "en", "folder_id": "0", "category": "market_research", "question_count": 13, "page_count": 1, "response_count": 13, "date_created": "2021-05-07T06:18:00", "date_modified": "2021-06-08T18:09:00", "id": "306079584", "buttons_text": {"next_button": "Next >>", "prev_button": "<< Prev", "done_button": "Done", "exit_button": ""}, "is_owner": true, "footer": true, "theme_id": "4510354", "custom_variables": {}, "href": "https://api.surveymonkey.com/v3/surveys/306079584", "analyze_url": "https://www.surveymonkey.com/analyze/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D", "edit_url": "https://www.surveymonkey.com/create/?sm=5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D", "collect_url": "https://www.surveymonkey.com/collect/list?sm=5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D", "summary_url": "https://www.surveymonkey.com/summary/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D", "preview": "https://www.surveymonkey.com/r/Preview/?sm=8T1PwDGoJHE1lbkxjUnaGitKu8jxWzyoclw9fNsShflPlk6MYIzwJ2NgjlBw_2B7iV"}, "emitted_at": 1681237932194}
+{"stream": "surveys", "data": {"title": "yswa8kobijei1mkwaqxgy", "nickname": "7b4p9vssf810mslcd0eqpcg9s7p0h", "language": "it", "folder_id": "0", "category": "", "question_count": 10, "page_count": 3, "response_count": 18, "date_created": "2021-06-09T21:20:00", "date_modified": "2021-06-10T10:59:00", "id": "307785429", "buttons_text": {"next_button": "Nex >>>>>", "prev_button": "Nix <<<<<", "done_button": "Nax_Don_Gon!", "exit_button": ""}, "is_owner": true, "footer": true, "theme_id": "4510354", "custom_variables": {}, "href": "https://api.surveymonkey.com/v3/surveys/307785429", "analyze_url": "https://www.surveymonkey.com/analyze/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D", "edit_url": "https://www.surveymonkey.com/create/?sm=BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D", "collect_url": "https://www.surveymonkey.com/collect/list?sm=BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D", "summary_url": "https://www.surveymonkey.com/summary/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D", "preview": "https://www.surveymonkey.com/r/Preview/?sm=YRpP3kxXMi2aJkgYoeyZrvuErii13mQ5DRN67Vm4WJ5avIMZ6YvzI_2Bc3FpERJDqx"}, "emitted_at": 1681237933081}
+{"stream": "surveys", "data": {"title": "wsfqk1di34d", "nickname": "3pax9qjasev22ofir5dm4x45s", "language": "ru", "folder_id": "0", "category": "", "question_count": 10, "page_count": 3, "response_count": 18, "date_created": "2021-06-09T21:20:00", "date_modified": "2021-06-10T11:00:00", "id": "307785444", "buttons_text": {"next_button": "Nex >>>>>", "prev_button": "Nix <<<<<", "done_button": "Nax_Don_Gon!", "exit_button": ""}, "is_owner": true, "footer": true, "theme_id": "4510354", "custom_variables": {}, "href": "https://api.surveymonkey.com/v3/surveys/307785444", "analyze_url": "https://www.surveymonkey.com/analyze/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D", "edit_url": "https://www.surveymonkey.com/create/?sm=BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D", "collect_url": "https://www.surveymonkey.com/collect/list?sm=BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D", "summary_url": "https://www.surveymonkey.com/summary/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D", "preview": "https://www.surveymonkey.com/r/Preview/?sm=8fhTDITxRdeFQ_2BLWzVWxsJSU0nfgGgIbcvuAJ6C8LCdfivLn4FPj6xZP2o8_2FINMc"}, "emitted_at": 1681237934177}
+{"stream": "surveys", "data": {"title": "vpoha5euc66vp", "nickname": "etv0tds1e45", "language": "en", "folder_id": "0", "category": "", "question_count": 10, "page_count": 3, "response_count": 18, "date_created": "2021-06-09T21:19:00", "date_modified": "2021-06-10T11:01:00", "id": "307785394", "buttons_text": {"next_button": "Nex >>>>>", "prev_button": "Nix <<<<<", "done_button": "Nax_Don_Gon!", "exit_button": ""}, "is_owner": true, "footer": true, "theme_id": "4510354", "custom_variables": {}, "href": "https://api.surveymonkey.com/v3/surveys/307785394", "analyze_url": "https://www.surveymonkey.com/analyze/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D", "edit_url": "https://www.surveymonkey.com/create/?sm=5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D", "collect_url": "https://www.surveymonkey.com/collect/list?sm=5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D", "summary_url": "https://www.surveymonkey.com/summary/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D", "preview": "https://www.surveymonkey.com/r/Preview/?sm=RPtFlMc_2B10dLjP_2BMbJ9eseMZkg_2FE5of5WUErPhwmC57Ij1xz0JOW7uC8i49BGEl8"}, "emitted_at": 1681237935248}
+{"stream": "surveys", "data": {"title": "s2d9px7cdril0v7789ab4f", "nickname": "wnhin1ctnss8ebdgjef", "language": "ru", "folder_id": "0", "category": "", "question_count": 10, "page_count": 3, "response_count": 18, "date_created": "2021-06-09T21:20:00", "date_modified": "2021-06-10T11:02:00", "id": "307785402", "buttons_text": {"next_button": "Nex >>>>>", "prev_button": "Nix <<<<<", "done_button": "Nax_Don_Gon!", "exit_button": ""}, "is_owner": true, "footer": true, "theme_id": "4510354", "custom_variables": {}, "href": "https://api.surveymonkey.com/v3/surveys/307785402", "analyze_url": "https://www.surveymonkey.com/analyze/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D", "edit_url": "https://www.surveymonkey.com/create/?sm=BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D", "collect_url": "https://www.surveymonkey.com/collect/list?sm=BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D", "summary_url": "https://www.surveymonkey.com/summary/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D", "preview": "https://www.surveymonkey.com/r/Preview/?sm=RId_2BH4A8CUUX6zNvnFnfsb3wKFGuv8kLhz_2BApiG6Mbvu_2BLypJpz_2BM9EfoUuRXBcL"}, "emitted_at": 1681237936370}
+{"stream": "surveys", "data": {"title": "muxx41av9mp", "nickname": "hfs5uo9cw1ce3j7rn7n8ncu88myc", "language": "de", "folder_id": "0", "category": "", "question_count": 10, "page_count": 3, "response_count": 18, "date_created": "2021-06-09T21:20:00", "date_modified": "2021-06-10T11:02:00", "id": "307785408", "buttons_text": {"next_button": "Nex >>>>>", "prev_button": "Nix <<<<<", "done_button": "Nax_Don_Gon!", "exit_button": ""}, "is_owner": true, "footer": true, "theme_id": "4510354", "custom_variables": {}, "href": "https://api.surveymonkey.com/v3/surveys/307785408", "analyze_url": "https://www.surveymonkey.com/analyze/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D", "edit_url": "https://www.surveymonkey.com/create/?sm=BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D", "collect_url": "https://www.surveymonkey.com/collect/list?sm=BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D", "summary_url": "https://www.surveymonkey.com/summary/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D", "preview": "https://www.surveymonkey.com/r/Preview/?sm=aPPwgAP8stOxnud8WXi8VHKMrUtKIqvd7JhVnp1f0Ucqjb7cbMATzGizMgcLO_2BzA"}, "emitted_at": 1681237937523}
+{"stream": "surveys", "data": {"title": "2iokp4jvp9ru5", "nickname": "j2a0kxhq8lmawfqjkg0hx", "language": "ru", "folder_id": "0", "category": "", "question_count": 10, "page_count": 3, "response_count": 21, "date_created": "2021-06-09T21:07:00", "date_modified": "2021-06-10T11:03:00", "id": "307784834", "buttons_text": {"next_button": "Nex >>>>>", "prev_button": "Nix <<<<<", "done_button": "Nax_Don_Gon!", "exit_button": ""}, "is_owner": true, "footer": true, "theme_id": "4510354", "custom_variables": {}, "href": "https://api.surveymonkey.com/v3/surveys/307784834", "analyze_url": "https://www.surveymonkey.com/analyze/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D", "edit_url": "https://www.surveymonkey.com/create/?sm=moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D", "collect_url": "https://www.surveymonkey.com/collect/list?sm=moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D", "summary_url": "https://www.surveymonkey.com/summary/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D", "preview": "https://www.surveymonkey.com/r/Preview/?sm=5ovW9LrIPsdAlqAloFxtr_2BhNVquSJyqeGOsrEnkZn56chkdLSKQISgfvIUejUonU"}, "emitted_at": 1681237938633}
+{"stream": "surveys", "data": {"title": "9cnwcmdn39ox", "nickname": "vih7eeixclb", "language": "ru", "folder_id": "0", "category": "", "question_count": 10, "page_count": 3, "response_count": 18, "date_created": "2021-06-09T21:20:00", "date_modified": "2021-06-10T11:03:00", "id": "307785448", "buttons_text": {"next_button": "Nex >>>>>", "prev_button": "Nix <<<<<", "done_button": "Nax_Don_Gon!", "exit_button": ""}, "is_owner": true, "footer": true, "theme_id": "4510354", "custom_variables": {}, "href": "https://api.surveymonkey.com/v3/surveys/307785448", "analyze_url": "https://www.surveymonkey.com/analyze/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D", "edit_url": "https://www.surveymonkey.com/create/?sm=BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D", "collect_url": "https://www.surveymonkey.com/collect/list?sm=BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D", "summary_url": "https://www.surveymonkey.com/summary/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D", "preview": "https://www.surveymonkey.com/r/Preview/?sm=CJF1TcWP7MthjVWkHhiX8ggWVFe484BBhGYkoi2XqDCTB9FcR1nlBSJ_2FeL47hNDV"}, "emitted_at": 1681237939742}
+{"stream": "surveys", "data": {"title": "i2bm4lqt5hxv614n4jcl0guxt5ehgf", "nickname": "ti241ke4qo1i8iyqgpo0u6b2", "language": "de", "folder_id": "0", "category": "", "question_count": 2, "page_count": 3, "response_count": 20, "date_created": "2021-06-09T21:07:00", "date_modified": "2021-06-10T11:04:00", "id": "307784863", "buttons_text": {"next_button": "Nex >>>>>", "prev_button": "Nix <<<<<", "done_button": "Nax_Don_Gon!", "exit_button": ""}, "is_owner": true, "footer": true, "theme_id": "4510354", "custom_variables": {}, "href": "https://api.surveymonkey.com/v3/surveys/307784863", "analyze_url": "https://www.surveymonkey.com/analyze/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D", "edit_url": "https://www.surveymonkey.com/create/?sm=moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D", "collect_url": "https://www.surveymonkey.com/collect/list?sm=moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D", "summary_url": "https://www.surveymonkey.com/summary/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D", "preview": "https://www.surveymonkey.com/r/Preview/?sm=kSWrVa29zWxvAB20ibAMkgPUDRBw_2B_2BTV0eX3oRPIEDNdxc2vxtOGJkQUGITIEart"}, "emitted_at": 1681237940944}
+{"stream": "surveys", "data": {"title": "j057iyqgxlotswo070", "nickname": "wxuyqq4cgmfo69ik778r", "language": "ru", "folder_id": "0", "category": "", "question_count": 6, "page_count": 3, "response_count": 20, "date_created": "2021-06-09T21:07:00", "date_modified": "2021-06-10T11:05:00", "id": "307784846", "buttons_text": {"next_button": "Nex >>>>>", "prev_button": "Nix <<<<<", "done_button": "Nax_Don_Gon!", "exit_button": ""}, "is_owner": true, "footer": true, "theme_id": "4510354", "custom_variables": {}, "href": "https://api.surveymonkey.com/v3/surveys/307784846", "analyze_url": "https://www.surveymonkey.com/analyze/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D", "edit_url": "https://www.surveymonkey.com/create/?sm=moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D", "collect_url": "https://www.surveymonkey.com/collect/list?sm=moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D", "summary_url": "https://www.surveymonkey.com/summary/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D", "preview": "https://www.surveymonkey.com/r/Preview/?sm=c5YOr2YH8sSXNlr7K0Tsuhs54aXml2seWFuXS8MIqk7n5MinBfQ7OjzW_2BtjWV1Cv"}, "emitted_at": 1681237942123}
+{"stream": "surveys", "data": {"title": "u7r02s47jr", "nickname": "ye7fubxhua91ce0fxm", "language": "ru", "folder_id": "0", "category": "", "question_count": 3, "page_count": 3, "response_count": 20, "date_created": "2021-06-09T21:07:00", "date_modified": "2021-06-10T11:05:00", "id": "307784856", "buttons_text": {"next_button": "Nex >>>>>", "prev_button": "Nix <<<<<", "done_button": "Nax_Don_Gon!", "exit_button": ""}, "is_owner": true, "footer": true, "theme_id": "4510354", "custom_variables": {}, "href": "https://api.surveymonkey.com/v3/surveys/307784856", "analyze_url": "https://www.surveymonkey.com/analyze/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D", "edit_url": "https://www.surveymonkey.com/create/?sm=moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D", "collect_url": "https://www.surveymonkey.com/collect/list?sm=moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D", "summary_url": "https://www.surveymonkey.com/summary/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D", "preview": "https://www.surveymonkey.com/r/Preview/?sm=hW7YBNPL4euOVIMWVdvchE0xWtfXGoQrT7wUyFAtDel65HbgmAwoV7JJRkkkFmhn"}, "emitted_at": 1681237943258}
+{"stream": "surveys", "data": {"title": "igpfp2yfsw90df6nxbsb49v", "nickname": "h23gl22ulmfsyt4q7xt", "language": "ru", "folder_id": "0", "category": "", "question_count": 10, "page_count": 3, "response_count": 20, "date_created": "2021-06-09T21:19:00", "date_modified": "2021-06-10T11:06:00", "id": "307785388", "buttons_text": {"next_button": "Nex >>>>>", "prev_button": "Nix <<<<<", "done_button": "Nax_Don_Gon!", "exit_button": ""}, "is_owner": true, "footer": true, "theme_id": "4510354", "custom_variables": {}, "href": "https://api.surveymonkey.com/v3/surveys/307785388", "analyze_url": "https://www.surveymonkey.com/analyze/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D", "edit_url": "https://www.surveymonkey.com/create/?sm=5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D", "collect_url": "https://www.surveymonkey.com/collect/list?sm=5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D", "summary_url": "https://www.surveymonkey.com/summary/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D", "preview": "https://www.surveymonkey.com/r/Preview/?sm=khUJQv9z4_2FXXzGUox57WEUPwppIr8YqRqVru77WpakX1HW8hHMmGXZiDGslFZym6"}, "emitted_at": 1681237944338}
+{"stream": "surveys", "data": {"title": "b9jo5h23l7pa", "nickname": "qhs5vg2qi0o4arsjiwy2ay00n82n", "language": "ru", "folder_id": "0", "category": "", "question_count": 10, "page_count": 3, "response_count": 20, "date_created": "2021-06-09T21:20:00", "date_modified": "2021-06-10T11:07:00", "id": "307785415", "buttons_text": {"next_button": "Nex >>>>>", "prev_button": "Nix <<<<<", "done_button": "Nax_Don_Gon!", "exit_button": ""}, "is_owner": true, "footer": true, "theme_id": "4510354", "custom_variables": {}, "href": "https://api.surveymonkey.com/v3/surveys/307785415", "analyze_url": "https://www.surveymonkey.com/analyze/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D", "edit_url": "https://www.surveymonkey.com/create/?sm=BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D", "collect_url": "https://www.surveymonkey.com/collect/list?sm=BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D", "summary_url": "https://www.surveymonkey.com/summary/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D", "preview": "https://www.surveymonkey.com/r/Preview/?sm=YVdtL_2BP5oiGTrfksyofvENkBr7v87Xfh8hbcJr8rbqgesWvwJjz5N1F7pCSRcDoy"}, "emitted_at": 1681237945500}
+{"stream": "surveys", "data": {"title": "jjj", "nickname": "", "language": "en", "folder_id": "0", "category": "", "question_count": 0, "page_count": 1, "response_count": 0, "date_created": "2023-01-17T09:17:00", "date_modified": "2023-01-17T09:17:00", "id": "510388524", "buttons_text": {"next_button": "Next", "prev_button": "Prev", "done_button": "Done", "exit_button": ""}, "is_owner": true, "footer": true, "theme_id": "10292568", "custom_variables": {}, "href": "https://api.surveymonkey.com/v3/surveys/510388524", "analyze_url": "https://www.surveymonkey.com/analyze/VXMmVNBbmOp9KTSvXdhjIr3FHnqleAX32lr9MLBIOE0_3D", "edit_url": "https://www.surveymonkey.com/create/?sm=VXMmVNBbmOp9KTSvXdhjIr3FHnqleAX32lr9MLBIOE0_3D", "collect_url": "https://www.surveymonkey.com/collect/list?sm=VXMmVNBbmOp9KTSvXdhjIr3FHnqleAX32lr9MLBIOE0_3D", "summary_url": "https://www.surveymonkey.com/summary/VXMmVNBbmOp9KTSvXdhjIr3FHnqleAX32lr9MLBIOE0_3D", "preview": "https://www.surveymonkey.com/r/Preview/?sm=TPlNncbuCs17cvxwjuS74VC03_2FOcqpP_2F03m2gerTSI_2FQvLWoY2yn_2FWxLDmxYOp5L"}, "emitted_at": 1681237946415}
+{"stream": "survey_responses", "data": {"id": "12706126725", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "124.123.178.184", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405437100", "survey_id": "306079584", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=hNu3QJYf07WiUPOwxCYcARURFGB3ruOrs9slcTHVhmhgDhoNJ0k7w3jCvo0nLM40", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706126725", "total_time": 62, "date_modified": "2021-06-01T17:40:54+00:00", "date_created": "2021-06-01T17:39:51+00:00", "href": "https://api.surveymonkey.com/v3/surveys/306079584/responses/12706126725", "pages": [{"id": "165250506", "questions": [{"id": "652286715", "answers": [{"choice_id": "4285525064"}]}, {"id": "652286721", "answers": [{"choice_id": "4285525084"}]}, {"id": "652286716", "answers": [{"choice_id": "4285525070"}]}, {"id": "652286718", "answers": [{"choice_id": "4285525079"}]}, {"id": "652286722", "answers": [{"choice_id": "4285525089"}]}, {"id": "652286717", "answers": [{"choice_id": "4285525074"}]}, {"id": "652286723", "answers": [{"choice_id": "4285525095"}]}, {"id": "652286714", "answers": [{"choice_id": "4285525058", "row_id": "4285525061", "choice_metadata": {"weight": "0"}}]}]}]}, "emitted_at": 1681238097211}
+{"stream": "survey_responses", "data": {"id": "12706152767", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "37.229.17.15", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405437100", "survey_id": "306079584", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=YIZz5DiXEDES47ARxTbRPzAA9ZOwCjcN_2FDSFTYGWgCVPQCo_2B3EeLirGlON5_2BjrX5", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706152767", "total_time": 55, "date_modified": "2021-06-01T17:50:03+00:00", "date_created": "2021-06-01T17:49:08+00:00", "href": "https://api.surveymonkey.com/v3/surveys/306079584/responses/12706152767", "pages": [{"id": "165250506", "questions": [{"id": "652286726", "answers": [{"tag_data": [], "text": "fuck this"}]}, {"id": "652286715", "answers": [{"choice_id": "4285525067"}]}, {"id": "652286721", "answers": [{"choice_id": "4285525087"}]}, {"id": "652286716", "answers": [{"choice_id": "4285525072"}]}, {"id": "652286718", "answers": [{"choice_id": "4285525081"}]}, {"id": "652286722", "answers": [{"choice_id": "4285525091"}]}, {"id": "652286717", "answers": [{"choice_id": "4285525077"}]}, {"id": "652286723", "answers": [{"choice_id": "4285525097"}]}, {"id": "652286714", "answers": [{"choice_id": "4285525052", "row_id": "4285525061", "choice_metadata": {"weight": "-100"}}]}, {"id": "652286719", "answers": [{"tag_data": [], "text": "waste of time"}]}]}]}, "emitted_at": 1681238097211}
+{"stream": "survey_responses", "data": {"id": "12706159691", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "157.48.231.67", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405437100", "survey_id": "306079584", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=P4z1eeLex6p2OQEYYXRJKBxPyHk6ljkOskXPds2olEToYrU_2FwTZWAyllEtgJRyQL", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706159691", "total_time": 104, "date_modified": "2021-06-01T17:52:27+00:00", "date_created": "2021-06-01T17:50:43+00:00", "href": "https://api.surveymonkey.com/v3/surveys/306079584/responses/12706159691", "pages": [{"id": "165250506", "questions": [{"id": "652286724", "answers": [{"row_id": "4285525098", "x": "78.63", "y": "13.19"}]}, {"id": "652286725", "answers": [{"row_id": "4285525102", "x": "41.94", "y": "50.16"}]}, {"id": "652286715", "answers": [{"choice_id": "4285525065"}]}, {"id": "652286721", "answers": [{"choice_id": "4285525086"}]}, {"id": "652286716", "answers": [{"choice_id": "4285525071"}]}, {"id": "652286718", "answers": [{"choice_id": "4285525079"}]}, {"id": "652286722", "answers": [{"choice_id": "4285525090"}]}, {"id": "652286717", "answers": [{"choice_id": "4285525076"}]}, {"id": "652286723", "answers": [{"choice_id": "4285525095"}]}, {"id": "652286714", "answers": [{"choice_id": "4285525055", "row_id": "4285525061", "choice_metadata": {"weight": "-100"}}]}]}]}, "emitted_at": 1681238097211}
+{"stream": "survey_responses", "data": {"id": "12706182356", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "76.14.176.236", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405437100", "survey_id": "306079584", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=oRBufZrmuNVZW5ou_2B4ZICuFqW6p3uYPmpjTb5IJ5Zf_2BH4FPoHKfnz_2BSC_2FR_2FpxWNq", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706182356", "total_time": 36, "date_modified": "2021-06-01T18:00:12+00:00", "date_created": "2021-06-01T17:59:35+00:00", "href": "https://api.surveymonkey.com/v3/surveys/306079584/responses/12706182356", "pages": [{"id": "165250506", "questions": [{"id": "652286724", "answers": [{"row_id": "4285525098", "x": "58.66", "y": "54.49"}]}, {"id": "652286725", "answers": [{"row_id": "4285525102", "x": "56.64", "y": "71.09"}]}, {"id": "652286715", "answers": [{"choice_id": "4285525063"}]}, {"id": "652286721", "answers": [{"choice_id": "4285525085"}]}, {"id": "652286716", "answers": [{"choice_id": "4285525072"}]}, {"id": "652286718", "answers": [{"choice_id": "4285525082"}]}, {"id": "652286722", "answers": [{"choice_id": "4285525092"}]}, {"id": "652286717", "answers": [{"choice_id": "4285525077"}]}, {"id": "652286723", "answers": [{"choice_id": "4285525097"}]}, {"id": "652286714", "answers": [{"choice_id": "4285525060", "row_id": "4285525061", "choice_metadata": {"weight": "100"}}]}, {"id": "652286719", "answers": [{"tag_data": [], "text": "gekkiadsuigasdf;oij sefhello \ud83c\udf50\ud83c\udf50\ud83c\udf50\ud83c\udf50\ud83c\udf50"}]}, {"id": "652286720", "answers": [{"tag_data": [], "text": "good"}]}]}]}, "emitted_at": 1681238097212}
+{"stream": "survey_responses", "data": {"id": "12706201784", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "49.37.158.6", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405437100", "survey_id": "306079584", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=MD0lXMX2bJm93XLiSKWuW2p52_2BwlWpayf88naadbuO5wITz0TijA3kwSis907xu1", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706201784", "total_time": 183, "date_modified": "2021-06-01T18:06:11+00:00", "date_created": "2021-06-01T18:03:07+00:00", "href": "https://api.surveymonkey.com/v3/surveys/306079584/responses/12706201784", "pages": [{"id": "165250506", "questions": [{"id": "652286724", "answers": [{"row_id": "4285525098", "x": "87.90", "y": "67.29"}]}, {"id": "652286725", "answers": [{"row_id": "4285525102", "x": "7.66", "y": "92.21"}]}, {"id": "652286726", "answers": [{"tag_data": [], "text": "Colour"}]}, {"id": "652286715", "answers": [{"choice_id": "4285525064"}]}, {"id": "652286721", "answers": [{"choice_id": "4285525085"}]}, {"id": "652286716", "answers": [{"choice_id": "4285525070"}]}, {"id": "652286718", "answers": [{"choice_id": "4285525079"}]}, {"id": "652286722", "answers": [{"choice_id": "4285525090"}]}, {"id": "652286717", "answers": [{"choice_id": "4285525076"}]}, {"id": "652286723", "answers": [{"choice_id": "4285525097"}]}, {"id": "652286714", "answers": [{"choice_id": "4285525055", "row_id": "4285525061", "choice_metadata": {"weight": "-100"}}]}, {"id": "652286719", "answers": [{"tag_data": [], "text": "Nothing"}]}, {"id": "652286720", "answers": [{"tag_data": [], "text": "I don't know"}]}]}]}, "emitted_at": 1681238097212}
+{"stream": "survey_responses", "data": {"id": "12706203862", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "49.205.239.133", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405437100", "survey_id": "306079584", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=sNkTdEY_2FEibixIxcUhotq6hQ3muFVlLkg0cE531VDB5Ya2U21pwazZRwwSXFqqtK", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706203862", "total_time": 114, "date_modified": "2021-06-01T18:06:49+00:00", "date_created": "2021-06-01T18:04:54+00:00", "href": "https://api.surveymonkey.com/v3/surveys/306079584/responses/12706203862", "pages": [{"id": "165250506", "questions": [{"id": "652286724", "answers": [{"row_id": "4285525098", "x": "40.32", "y": "93.35"}]}, {"id": "652286725", "answers": [{"row_id": "4285525102", "x": "37.10", "y": "66.67"}]}, {"id": "652286726", "answers": [{"tag_data": [], "text": "because pets should not be tied,they should have their own freedom to move"}]}, {"id": "652286715", "answers": [{"choice_id": "4285525065"}]}, {"id": "652286721", "answers": [{"choice_id": "4285525085"}]}, {"id": "652286716", "answers": [{"choice_id": "4285525071"}]}, {"id": "652286718", "answers": [{"choice_id": "4285525080"}]}, {"id": "652286722", "answers": [{"choice_id": "4285525090"}]}, {"id": "652286717", "answers": [{"choice_id": "4285525076"}]}, {"id": "652286723", "answers": [{"choice_id": "4285525096"}]}, {"id": "652286714", "answers": [{"choice_id": "4285525055", "row_id": "4285525061", "choice_metadata": {"weight": "-100"}}]}]}]}, "emitted_at": 1681238097213}
+{"stream": "survey_responses", "data": {"id": "12706264166", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "27.6.69.132", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405437100", "survey_id": "306079584", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=OboVhBA1nCZ4ejfYCmJ6WDu5SxhIUnnNn2dCz_2BTqxksFnjOSpy88MtS4B5Wbpk_2BW", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706264166", "total_time": 309, "date_modified": "2021-06-01T18:27:03+00:00", "date_created": "2021-06-01T18:21:54+00:00", "href": "https://api.surveymonkey.com/v3/surveys/306079584/responses/12706264166", "pages": [{"id": "165250506", "questions": [{"id": "652286724", "answers": [{"row_id": "4285525098", "x": "43.59", "y": "28.51"}]}, {"id": "652286725", "answers": [{"row_id": "4285525102", "x": "41.31", "y": "91.08"}]}, {"id": "652286726", "answers": [{"tag_data": [], "text": "\ud83e\udd14"}]}, {"id": "652286715", "answers": [{"choice_id": "4285525065"}]}, {"id": "652286721", "answers": [{"choice_id": "4285525085"}]}, {"id": "652286716", "answers": [{"choice_id": "4285525070"}]}, {"id": "652286718", "answers": [{"choice_id": "4285525081"}]}, {"id": "652286722", "answers": [{"choice_id": "4285525091"}]}, {"id": "652286717", "answers": [{"choice_id": "4285525076"}]}, {"id": "652286723", "answers": [{"choice_id": "4285525096"}]}, {"id": "652286714", "answers": [{"choice_id": "4285525058", "row_id": "4285525061", "choice_metadata": {"weight": "0"}}]}, {"id": "652286719", "answers": [{"tag_data": [], "text": "\ud83e\uddb4"}]}, {"id": "652286720", "answers": [{"tag_data": [], "text": "\ud83d\udcaa"}]}]}]}, "emitted_at": 1681238097213}
+{"stream": "survey_responses", "data": {"id": "12706274940", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "49.205.116.166", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405437100", "survey_id": "306079584", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=D1IcNXq6BKOBmkySTfHcUfHuH3_2Fa0aniMPQEG23UrQ16iSsyx8ye2hPRQt3C61Jd", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706274940", "total_time": 105, "date_modified": "2021-06-01T18:30:56+00:00", "date_created": "2021-06-01T18:29:10+00:00", "href": "https://api.surveymonkey.com/v3/surveys/306079584/responses/12706274940", "pages": [{"id": "165250506", "questions": [{"id": "652286724", "answers": [{"row_id": "4285525098", "x": "7.12", "y": "89.86"}]}, {"id": "652286725", "answers": [{"row_id": "4285525102", "x": "87.90", "y": "9.02"}]}, {"id": "652286726", "answers": [{"tag_data": [], "text": "Didn't like the product"}]}, {"id": "652286715", "answers": [{"choice_id": "4285525067"}]}, {"id": "652286721", "answers": [{"choice_id": "4285525087"}]}, {"id": "652286716", "answers": [{"choice_id": "4285525072"}]}, {"id": "652286718", "answers": [{"choice_id": "4285525081"}]}, {"id": "652286722", "answers": [{"choice_id": "4285525092"}]}, {"id": "652286717", "answers": [{"choice_id": "4285525077"}]}, {"id": "652286723", "answers": [{"choice_id": "4285525097"}]}, {"id": "652286714", "answers": [{"choice_id": "4285525050", "row_id": "4285525061", "choice_metadata": {"weight": "-100"}}]}, {"id": "652286719", "answers": [{"tag_data": [], "text": "Nothing"}]}, {"id": "652286720", "answers": [{"tag_data": [], "text": "Better don't try to work on it"}]}]}]}, "emitted_at": 1681238097214}
+{"stream": "survey_responses", "data": {"id": "12706353147", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "176.37.67.33", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405437100", "survey_id": "306079584", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=qwY5AKZSqBd7DfoZDGr4x_2FJr28RhtoeaQ7_2F6VBS1G3yK_2FPH86sPCcFs1zACVlbMO", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706353147", "total_time": 162, "date_modified": "2021-06-01T18:58:44+00:00", "date_created": "2021-06-01T18:56:02+00:00", "href": "https://api.surveymonkey.com/v3/surveys/306079584/responses/12706353147", "pages": [{"id": "165250506", "questions": [{"id": "652286724", "answers": [{"row_id": "4285525098", "x": "78.00", "y": "6.84"}]}, {"id": "652286725", "answers": [{"row_id": "4285525102", "x": "77.62", "y": "8.50"}]}, {"id": "652286726", "answers": [{"tag_data": [], "text": "I like logo."}]}, {"id": "652286715", "answers": [{"choice_id": "4285525065"}]}, {"id": "652286721", "answers": [{"choice_id": "4285525085"}]}, {"id": "652286716", "answers": [{"choice_id": "4285525071"}]}, {"id": "652286718", "answers": [{"choice_id": "4285525081"}]}, {"id": "652286722", "answers": [{"choice_id": "4285525090"}]}, {"id": "652286717", "answers": [{"choice_id": "4285525076"}]}, {"id": "652286723", "answers": [{"choice_id": "4285525096"}]}, {"id": "652286714", "answers": [{"choice_id": "4285525056", "row_id": "4285525061", "choice_metadata": {"weight": "-100"}}]}, {"id": "652286719", "answers": [{"tag_data": [], "text": "Logo."}]}, {"id": "652286720", "answers": [{"tag_data": [], "text": "Nothing."}]}]}]}, "emitted_at": 1681238097215}
+{"stream": "survey_responses", "data": {"id": "12707255568", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "157.48.145.117", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405437100", "survey_id": "306079584", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=3XYG_2F55lVJgeQ0_2FWG3xyRxOF5gCKFR0p1HPkdv1iiMZ1h5MIYxNR12enFBgK9TCS", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12707255568", "total_time": 263, "date_modified": "2021-06-02T01:13:33+00:00", "date_created": "2021-06-02T01:09:10+00:00", "href": "https://api.surveymonkey.com/v3/surveys/306079584/responses/12707255568", "pages": [{"id": "165250506", "questions": [{"id": "652286724", "answers": [{"row_id": "4285525098", "x": "38.17", "y": "40.98"}]}, {"id": "652286725", "answers": [{"row_id": "4285525102", "x": "42.90", "y": "93.75"}]}, {"id": "652286726", "answers": [{"tag_data": [], "text": "I love puppies but hate heart symbol"}]}, {"id": "652286715", "answers": [{"choice_id": "4285525063"}]}, {"id": "652286721", "answers": [{"choice_id": "4285525084"}]}, {"id": "652286716", "answers": [{"choice_id": "4285525070"}]}, {"id": "652286718", "answers": [{"choice_id": "4285525080"}]}, {"id": "652286722", "answers": [{"choice_id": "4285525089"}]}, {"id": "652286717", "answers": [{"choice_id": "4285525075"}]}, {"id": "652286723", "answers": [{"choice_id": "4285525095"}]}, {"id": "652286714", "answers": [{"choice_id": "4285525056", "row_id": "4285525061", "choice_metadata": {"weight": "-100"}}]}, {"id": "652286719", "answers": [{"tag_data": [], "text": "It's for animals"}]}, {"id": "652286720", "answers": [{"tag_data": [], "text": "Approach to customer"}]}]}]}, "emitted_at": 1681238097216}
+{"stream": "survey_responses", "data": {"id": "12707566461", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "106.195.73.137", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405437100", "survey_id": "306079584", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=FskCSEofrdcabC7MVfRNtzeiZ4C4kiwx_2FpBdpRfIsd5SgVGi4N9znXMS9exRXf27", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12707566461", "total_time": 233, "date_modified": "2021-06-02T04:06:48+00:00", "date_created": "2021-06-02T04:02:54+00:00", "href": "https://api.surveymonkey.com/v3/surveys/306079584/responses/12707566461", "pages": [{"id": "165250506", "questions": [{"id": "652286724", "answers": [{"row_id": "4285525098", "x": "32.67", "y": "32.51"}]}, {"id": "652286725", "answers": [{"row_id": "4285525102", "x": "89.00", "y": "55.34"}]}, {"id": "652286715", "answers": [{"choice_id": "4285525065"}]}, {"id": "652286721", "answers": [{"choice_id": "4285525084"}]}, {"id": "652286716", "answers": [{"choice_id": "4285525069"}]}, {"id": "652286718", "answers": [{"choice_id": "4285525080"}]}, {"id": "652286722", "answers": [{"choice_id": "4285525090"}]}, {"id": "652286717", "answers": [{"choice_id": "4285525075"}]}, {"id": "652286723", "answers": [{"choice_id": "4285525096"}]}, {"id": "652286714", "answers": [{"choice_id": "4285525058", "row_id": "4285525061", "choice_metadata": {"weight": "0"}}]}]}]}, "emitted_at": 1681238097216}
+{"stream": "survey_responses", "data": {"id": "12709748835", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.196.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405437100", "survey_id": "306079584", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=x5BdjfYWF_2B2dRs9qPRcHJ_2BqMN8Dpfn_2FfhKhtD7G8W4_2BX9ECDWh9wAXjYd4mxXk_2F_2B", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12709748835", "total_time": 127, "date_modified": "2021-06-02T18:14:19+00:00", "date_created": "2021-06-02T18:12:12+00:00", "href": "https://api.surveymonkey.com/v3/surveys/306079584/responses/12709748835", "pages": [{"id": "165250506", "questions": [{"id": "652286724", "answers": [{"row_id": "4285525098", "x": "41.85", "y": "55.96"}]}, {"id": "652286725", "answers": [{"row_id": "4285525102", "x": "31.35", "y": "35.64"}]}, {"id": "652286726", "answers": [{"tag_data": [], "text": "because"}]}, {"id": "652286715", "answers": [{"choice_id": "4285525063"}]}, {"id": "652286721", "answers": [{"choice_id": "4285525084"}]}, {"id": "652286716", "answers": [{"choice_id": "4285525069"}]}, {"id": "652286718", "answers": [{"choice_id": "4285525079"}]}, {"id": "652286722", "answers": [{"choice_id": "4285525089"}]}, {"id": "652286717", "answers": [{"choice_id": "4285525074"}]}, {"id": "652286723", "answers": [{"choice_id": "4285525095"}]}, {"id": "652286714", "answers": [{"choice_id": "4285525060", "row_id": "4285525061", "choice_metadata": {"weight": "100"}}]}, {"id": "652286719", "answers": [{"tag_data": [], "text": "u"}]}, {"id": "652286720", "answers": [{"tag_data": [], "text": "f"}]}]}]}, "emitted_at": 1681238097217}
+{"stream": "survey_responses", "data": {"id": "12706107193", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "49.37.150.53", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405437100", "survey_id": "306079584", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=7vMzRy38ln3J_2FJiU8YD1uve9yI6cAQIQ_2FuVxRipS_2FyB57w9vo9xpgShOuFWVcoI2", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706107193", "total_time": 607550, "date_modified": "2021-06-08T18:17:17+00:00", "date_created": "2021-06-01T17:31:26+00:00", "href": "https://api.surveymonkey.com/v3/surveys/306079584/responses/12706107193", "pages": [{"id": "165250506", "questions": [{"id": "652286724", "answers": [{"row_id": "4285525098", "x": "77.56", "y": "6.01"}]}, {"id": "652286725", "answers": [{"row_id": "4285525102", "x": "15.71", "y": "8.23"}]}, {"id": "652286726", "answers": [{"tag_data": [], "text": "It seems in that way"}]}, {"id": "652286715", "answers": [{"choice_id": "4285525065"}]}, {"id": "652286721", "answers": [{"choice_id": "4285525085"}]}, {"id": "652286716", "answers": [{"choice_id": "4285525071"}]}, {"id": "652286718", "answers": [{"choice_id": "4285525081"}]}, {"id": "652286722", "answers": [{"choice_id": "4285525090"}]}, {"id": "652286717", "answers": [{"choice_id": "4285525075"}]}, {"id": "652286723", "answers": [{"choice_id": "4285525096"}]}, {"id": "652286714", "answers": [{"choice_id": "4285525050", "row_id": "4285525061", "choice_metadata": {"weight": "-100"}}]}, {"id": "652286719", "answers": [{"tag_data": [], "text": "Nothing much"}]}, {"id": "652286720", "answers": [{"tag_data": [], "text": "Will include Tagline"}]}]}]}, "emitted_at": 1681238097217}
+{"stream": "survey_responses", "data": {"id": "12731040927", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843657", "survey_id": "307785429", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=YORvkBiLvNm2647vGYxs1GGGoUjDrz_2FRfIWw1i07UtykH_2BBJHDTB3ujkOPfyAxqP", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731040927", "total_time": 31, "date_modified": "2021-06-10T08:46:53+00:00", "date_created": "2021-06-10T08:46:22+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785429/responses/12731040927", "pages": [{"id": "168831413", "questions": []}, {"id": "168831415", "questions": [{"id": "667461858", "answers": [{"choice_id": "4385175368"}]}, {"id": "667461861", "answers": [{"choice_id": "4385175382"}]}, {"id": "667461876", "answers": [{"choice_id": "4385175448"}]}, {"id": "667461897", "answers": [{"choice_id": "4385175533"}]}, {"id": "667461902", "answers": [{"choice_id": "4385175563"}]}]}, {"id": "168831437", "questions": [{"id": "667461933", "answers": [{"choice_id": "4385175735"}]}, {"id": "667461934", "answers": [{"choice_id": "4385175737"}]}, {"id": "667461936", "answers": [{"choice_id": "4385175742"}]}, {"id": "667461937", "answers": [{"choice_id": "4385175749"}]}, {"id": "667461986", "answers": [{"choice_id": "4385175881"}]}]}]}, "emitted_at": 1681238098508}
+{"stream": "survey_responses", "data": {"id": "12731055204", "recipient_id": "", "collection_mode": "default", "response_status": "partial", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": ["168831413", "168831415", "168831437"], "collector_id": "405843657", "survey_id": "307785429", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=tcbSSptg67E5MmPiY_2BCTC0GEk5rcm_2FHHcASKwxBGLOX_2BBByesO_2Fh848B_2FqaaVF8d", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731055204", "total_time": 15, "date_modified": "2021-06-10T08:54:22+00:00", "date_created": "2021-06-10T08:54:07+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785429/responses/12731055204", "pages": [{"id": "168831413", "questions": []}, {"id": "168831415", "questions": [{"id": "667461858", "answers": [{"choice_id": "4385175369"}]}, {"id": "667461861", "answers": [{"choice_id": "4385175382"}]}, {"id": "667461876", "answers": [{"choice_id": "4385175447"}]}, {"id": "667461897", "answers": [{"choice_id": "4385175534"}]}, {"id": "667461902", "answers": [{"choice_id": "4385175563"}]}]}, {"id": "168831437", "questions": []}]}, "emitted_at": 1681238098508}
+{"stream": "survey_responses", "data": {"id": "12731069666", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843657", "survey_id": "307785429", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=tHWbA6E0Q6UEylVBreS0XaGKh3GcjDQu_2FBytp_2F_2FcCSkYTgRKkVt3jyyhUFoh6T_2Bs", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731069666", "total_time": 33, "date_modified": "2021-06-10T09:02:19+00:00", "date_created": "2021-06-10T09:01:46+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785429/responses/12731069666", "pages": [{"id": "168831413", "questions": []}, {"id": "168831415", "questions": [{"id": "667461858", "answers": [{"choice_id": "4385175366"}]}, {"id": "667461861", "answers": [{"choice_id": "4385175380"}]}, {"id": "667461876", "answers": [{"choice_id": "4385175448"}]}, {"id": "667461897", "answers": [{"choice_id": "4385175534"}]}, {"id": "667461902", "answers": [{"choice_id": "4385175559"}]}]}, {"id": "168831437", "questions": [{"id": "667461933", "answers": [{"choice_id": "4385175733"}]}, {"id": "667461934", "answers": [{"choice_id": "4385175736"}]}, {"id": "667461936", "answers": [{"choice_id": "4385175741"}]}, {"id": "667461937", "answers": [{"choice_id": "4385175752"}]}, {"id": "667461986", "answers": [{"choice_id": "4385175878"}]}]}]}, "emitted_at": 1681238098509}
+{"stream": "survey_responses", "data": {"id": "12731085951", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843657", "survey_id": "307785429", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=c_2B3Xk1rn3Lhz9GqaPNSRmjd03YiGx88BQu_2BtAvHiMmp5a0BR68kWLCOfALzBwKH4", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731085951", "total_time": 31, "date_modified": "2021-06-10T09:10:05+00:00", "date_created": "2021-06-10T09:09:34+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785429/responses/12731085951", "pages": [{"id": "168831413", "questions": []}, {"id": "168831415", "questions": [{"id": "667461858", "answers": [{"choice_id": "4385175368"}]}, {"id": "667461861", "answers": [{"choice_id": "4385175382"}]}, {"id": "667461876", "answers": [{"choice_id": "4385175448"}]}, {"id": "667461897", "answers": [{"choice_id": "4385175533"}]}, {"id": "667461902", "answers": [{"choice_id": "4385175564"}]}]}, {"id": "168831437", "questions": [{"id": "667461933", "answers": [{"choice_id": "4385175732"}]}, {"id": "667461934", "answers": [{"choice_id": "4385175737"}]}, {"id": "667461936", "answers": [{"choice_id": "4385175741"}]}, {"id": "667461937", "answers": [{"choice_id": "4385175745"}]}, {"id": "667461986", "answers": [{"choice_id": "4385175880"}]}]}]}, "emitted_at": 1681238098509}
+{"stream": "survey_responses", "data": {"id": "12731102076", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843657", "survey_id": "307785429", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=s_2BQLUH6Nb049vqmxYdKTQlIV_2FCXzxmRR5F_2B_2Fe9FaqXRh3H_2FZAFF51mqyI3e8s666", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731102076", "total_time": 32, "date_modified": "2021-06-10T09:17:44+00:00", "date_created": "2021-06-10T09:17:12+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785429/responses/12731102076", "pages": [{"id": "168831413", "questions": []}, {"id": "168831415", "questions": [{"id": "667461858", "answers": [{"choice_id": "4385175369"}]}, {"id": "667461861", "answers": [{"choice_id": "4385175381"}]}, {"id": "667461876", "answers": [{"choice_id": "4385175447"}]}, {"id": "667461897", "answers": [{"choice_id": "4385175535"}]}, {"id": "667461902", "answers": [{"choice_id": "4385175561"}]}]}, {"id": "168831437", "questions": [{"id": "667461933", "answers": [{"choice_id": "4385175735"}]}, {"id": "667461934", "answers": [{"choice_id": "4385175739"}]}, {"id": "667461936", "answers": [{"choice_id": "4385175740"}]}, {"id": "667461937", "answers": [{"choice_id": "4385175745"}]}, {"id": "667461986", "answers": [{"choice_id": "4385175880"}]}]}]}, "emitted_at": 1681238098510}
+{"stream": "survey_responses", "data": {"id": "12731118899", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843657", "survey_id": "307785429", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=hRALwRgDjAOTNk8Hpt0wWWn9X3xurqWW9vynXjPkvIvI4Xofu_2FJSgEVwtWK23vLd", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731118899", "total_time": 31, "date_modified": "2021-06-10T09:25:25+00:00", "date_created": "2021-06-10T09:24:53+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785429/responses/12731118899", "pages": [{"id": "168831413", "questions": []}, {"id": "168831415", "questions": [{"id": "667461858", "answers": [{"choice_id": "4385175369"}]}, {"id": "667461861", "answers": [{"choice_id": "4385175382"}]}, {"id": "667461876", "answers": [{"choice_id": "4385175447"}]}, {"id": "667461897", "answers": [{"choice_id": "4385175533"}]}, {"id": "667461902", "answers": [{"choice_id": "4385175559"}]}]}, {"id": "168831437", "questions": [{"id": "667461933", "answers": [{"choice_id": "4385175734"}]}, {"id": "667461934", "answers": [{"choice_id": "4385175737"}]}, {"id": "667461936", "answers": [{"choice_id": "4385175742"}]}, {"id": "667461937", "answers": [{"choice_id": "4385175745"}]}, {"id": "667461986", "answers": [{"choice_id": "4385175878"}]}]}]}, "emitted_at": 1681238098510}
+{"stream": "survey_responses", "data": {"id": "12731135865", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843657", "survey_id": "307785429", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=OEPuy4AY_2B47LLaYrOMe90r_2BJdHiKxv12FpoQr0N94GGA0TFN7l7tk5QH14HD_2FaBy", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731135865", "total_time": 31, "date_modified": "2021-06-10T09:33:08+00:00", "date_created": "2021-06-10T09:32:37+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785429/responses/12731135865", "pages": [{"id": "168831413", "questions": []}, {"id": "168831415", "questions": [{"id": "667461858", "answers": [{"choice_id": "4385175368"}]}, {"id": "667461861", "answers": [{"choice_id": "4385175381"}]}, {"id": "667461876", "answers": [{"choice_id": "4385175449"}]}, {"id": "667461897", "answers": [{"choice_id": "4385175535"}]}, {"id": "667461902", "answers": [{"choice_id": "4385175563"}]}]}, {"id": "168831437", "questions": [{"id": "667461933", "answers": [{"choice_id": "4385175735"}]}, {"id": "667461934", "answers": [{"choice_id": "4385175737"}]}, {"id": "667461936", "answers": [{"choice_id": "4385175742"}]}, {"id": "667461937", "answers": [{"choice_id": "4385175748"}]}, {"id": "667461986", "answers": [{"choice_id": "4385175880"}]}]}]}, "emitted_at": 1681238098511}
+{"stream": "survey_responses", "data": {"id": "12731153599", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843657", "survey_id": "307785429", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=KPgqZwkF7GLrzwtQWhwpZBCuPbq_2F_2BuXfuUXpCBXX1y_2BwKBvvXi7s1ob9AMVJymCk", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731153599", "total_time": 31, "date_modified": "2021-06-10T09:40:49+00:00", "date_created": "2021-06-10T09:40:18+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785429/responses/12731153599", "pages": [{"id": "168831413", "questions": []}, {"id": "168831415", "questions": [{"id": "667461858", "answers": [{"choice_id": "4385175366"}]}, {"id": "667461861", "answers": [{"choice_id": "4385175382"}]}, {"id": "667461876", "answers": [{"choice_id": "4385175448"}]}, {"id": "667461897", "answers": [{"choice_id": "4385175534"}]}, {"id": "667461902", "answers": [{"choice_id": "4385175561"}]}]}, {"id": "168831437", "questions": [{"id": "667461933", "answers": [{"choice_id": "4385175732"}]}, {"id": "667461934", "answers": [{"choice_id": "4385175737"}]}, {"id": "667461936", "answers": [{"choice_id": "4385175740"}]}, {"id": "667461937", "answers": [{"choice_id": "4385175751"}]}, {"id": "667461986", "answers": [{"choice_id": "4385175880"}]}]}]}, "emitted_at": 1681238098511}
+{"stream": "survey_responses", "data": {"id": "12731170943", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843657", "survey_id": "307785429", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=e6QtiM7XZfbHB3Ln1ifDr6Ct8PD0j6Nikh_2BTvBikLVfpeCSzS5WYkg2D_2BDVygAee", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731170943", "total_time": 31, "date_modified": "2021-06-10T09:48:36+00:00", "date_created": "2021-06-10T09:48:04+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785429/responses/12731170943", "pages": [{"id": "168831413", "questions": []}, {"id": "168831415", "questions": [{"id": "667461858", "answers": [{"choice_id": "4385175366"}]}, {"id": "667461861", "answers": [{"choice_id": "4385175382"}]}, {"id": "667461876", "answers": [{"choice_id": "4385175447"}]}, {"id": "667461897", "answers": [{"choice_id": "4385175534"}]}, {"id": "667461902", "answers": [{"choice_id": "4385175563"}]}]}, {"id": "168831437", "questions": [{"id": "667461933", "answers": [{"choice_id": "4385175733"}]}, {"id": "667461934", "answers": [{"choice_id": "4385175736"}]}, {"id": "667461936", "answers": [{"choice_id": "4385175740"}]}, {"id": "667461937", "answers": [{"choice_id": "4385175748"}]}, {"id": "667461986", "answers": [{"choice_id": "4385175879"}]}]}]}, "emitted_at": 1681238098513}
+{"stream": "survey_responses", "data": {"id": "12731188992", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843657", "survey_id": "307785429", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=VATG0VEAVLLh8CTsnDoMZ_2FR3ida2C_2FIqVwt3FHGuc0GRu_2BA6Qa9E4Ewd3iEHt5YQ", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731188992", "total_time": 35, "date_modified": "2021-06-10T09:56:51+00:00", "date_created": "2021-06-10T09:56:15+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785429/responses/12731188992", "pages": [{"id": "168831413", "questions": []}, {"id": "168831415", "questions": [{"id": "667461858", "answers": [{"choice_id": "4385175366"}]}, {"id": "667461861", "answers": [{"choice_id": "4385175381"}]}, {"id": "667461876", "answers": [{"choice_id": "4385175447"}]}, {"id": "667461897", "answers": [{"choice_id": "4385175533"}]}, {"id": "667461902", "answers": [{"choice_id": "4385175559"}]}]}, {"id": "168831437", "questions": [{"id": "667461933", "answers": [{"choice_id": "4385175735"}]}, {"id": "667461934", "answers": [{"choice_id": "4385175738"}]}, {"id": "667461936", "answers": [{"choice_id": "4385175741"}]}, {"id": "667461937", "answers": [{"choice_id": "4385175749"}]}, {"id": "667461986", "answers": [{"choice_id": "4385175881"}]}]}]}, "emitted_at": 1681238098513}
+{"stream": "survey_responses", "data": {"id": "12731208790", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843657", "survey_id": "307785429", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=KH_2Bhsc8oIpTdaX60RIwFQ1SDyudOf2_2B61W7cPCZGGXEKsY5_2FN_2BA_2B_2FXh0DeOOdA7F", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731208790", "total_time": 32, "date_modified": "2021-06-10T10:05:01+00:00", "date_created": "2021-06-10T10:04:28+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785429/responses/12731208790", "pages": [{"id": "168831413", "questions": []}, {"id": "168831415", "questions": [{"id": "667461858", "answers": [{"choice_id": "4385175368"}]}, {"id": "667461861", "answers": [{"choice_id": "4385175380"}]}, {"id": "667461876", "answers": [{"choice_id": "4385175449"}]}, {"id": "667461897", "answers": [{"choice_id": "4385175534"}]}, {"id": "667461902", "answers": [{"choice_id": "4385175559"}]}]}, {"id": "168831437", "questions": [{"id": "667461933", "answers": [{"choice_id": "4385175735"}]}, {"id": "667461934", "answers": [{"choice_id": "4385175737"}]}, {"id": "667461936", "answers": [{"choice_id": "4385175741"}]}, {"id": "667461937", "answers": [{"choice_id": "4385175752"}]}, {"id": "667461986", "answers": [{"choice_id": "4385175880"}]}]}]}, "emitted_at": 1681238098514}
+{"stream": "survey_responses", "data": {"id": "12731228560", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843657", "survey_id": "307785429", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=vbsxUKDxxVbnJW7Gng6Y5VblTyjW_2F29grieRYQImUaIVF77GuhY3KDlqPsNfIlx6", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731228560", "total_time": 31, "date_modified": "2021-06-10T10:12:51+00:00", "date_created": "2021-06-10T10:12:19+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785429/responses/12731228560", "pages": [{"id": "168831413", "questions": []}, {"id": "168831415", "questions": [{"id": "667461858", "answers": [{"choice_id": "4385175369"}]}, {"id": "667461861", "answers": [{"choice_id": "4385175380"}]}, {"id": "667461876", "answers": [{"choice_id": "4385175449"}]}, {"id": "667461897", "answers": [{"choice_id": "4385175534"}]}, {"id": "667461902", "answers": [{"choice_id": "4385175561"}]}]}, {"id": "168831437", "questions": [{"id": "667461933", "answers": [{"choice_id": "4385175735"}]}, {"id": "667461934", "answers": [{"choice_id": "4385175737"}]}, {"id": "667461936", "answers": [{"choice_id": "4385175741"}]}, {"id": "667461937", "answers": [{"choice_id": "4385175749"}]}, {"id": "667461986", "answers": [{"choice_id": "4385175882"}]}]}]}, "emitted_at": 1681238098514}
+{"stream": "survey_responses", "data": {"id": "12731247619", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843657", "survey_id": "307785429", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=8lyrgf9sVRbhXAHse5glKYEJoYMvqlR2TNQIhI8Ycw716W_2FHlQeX6Ru4SKObInXR", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731247619", "total_time": 31, "date_modified": "2021-06-10T10:20:41+00:00", "date_created": "2021-06-10T10:20:09+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785429/responses/12731247619", "pages": [{"id": "168831413", "questions": []}, {"id": "168831415", "questions": [{"id": "667461858", "answers": [{"choice_id": "4385175366"}]}, {"id": "667461861", "answers": [{"choice_id": "4385175382"}]}, {"id": "667461876", "answers": [{"choice_id": "4385175448"}]}, {"id": "667461897", "answers": [{"choice_id": "4385175535"}]}, {"id": "667461902", "answers": [{"choice_id": "4385175563"}]}]}, {"id": "168831437", "questions": [{"id": "667461933", "answers": [{"choice_id": "4385175734"}]}, {"id": "667461934", "answers": [{"choice_id": "4385175736"}]}, {"id": "667461936", "answers": [{"choice_id": "4385175740"}]}, {"id": "667461937", "answers": [{"choice_id": "4385175747"}]}, {"id": "667461986", "answers": [{"choice_id": "4385175881"}]}]}]}, "emitted_at": 1681238098515}
+{"stream": "survey_responses", "data": {"id": "12731266056", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843657", "survey_id": "307785429", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=tkqgGP2ApNTakGiA0JrfYbKgIZElTj6_2FPaJ_2FDj0QNjpJDKCexid0Z_2Bq8vZoam1vK", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731266056", "total_time": 31, "date_modified": "2021-06-10T10:28:20+00:00", "date_created": "2021-06-10T10:27:49+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785429/responses/12731266056", "pages": [{"id": "168831413", "questions": []}, {"id": "168831415", "questions": [{"id": "667461858", "answers": [{"choice_id": "4385175369"}]}, {"id": "667461861", "answers": [{"choice_id": "4385175381"}]}, {"id": "667461876", "answers": [{"choice_id": "4385175449"}]}, {"id": "667461897", "answers": [{"choice_id": "4385175534"}]}, {"id": "667461902", "answers": [{"choice_id": "4385175563"}]}]}, {"id": "168831437", "questions": [{"id": "667461933", "answers": [{"choice_id": "4385175732"}]}, {"id": "667461934", "answers": [{"choice_id": "4385175738"}]}, {"id": "667461936", "answers": [{"choice_id": "4385175740"}]}, {"id": "667461937", "answers": [{"choice_id": "4385175747"}]}, {"id": "667461986", "answers": [{"choice_id": "4385175882"}]}]}]}, "emitted_at": 1681238098515}
+{"stream": "survey_responses", "data": {"id": "12731286200", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843657", "survey_id": "307785429", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=nYsBr3IsP19O_2BhTeV_2BWGnAdXc_2FFsnqMT6maJ0BS3QD9FqjkWLrNYzzEqKsT7c191", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731286200", "total_time": 35, "date_modified": "2021-06-10T10:36:27+00:00", "date_created": "2021-06-10T10:35:52+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785429/responses/12731286200", "pages": [{"id": "168831413", "questions": []}, {"id": "168831415", "questions": [{"id": "667461858", "answers": [{"choice_id": "4385175367"}]}, {"id": "667461861", "answers": [{"choice_id": "4385175382"}]}, {"id": "667461876", "answers": [{"choice_id": "4385175447"}]}, {"id": "667461897", "answers": [{"choice_id": "4385175534"}]}, {"id": "667461902", "answers": [{"choice_id": "4385175564"}]}]}, {"id": "168831437", "questions": [{"id": "667461933", "answers": [{"choice_id": "4385175735"}]}, {"id": "667461934", "answers": [{"choice_id": "4385175738"}]}, {"id": "667461936", "answers": [{"choice_id": "4385175741"}]}, {"id": "667461937", "answers": [{"choice_id": "4385175752"}]}, {"id": "667461986", "answers": [{"choice_id": "4385175878"}]}]}]}, "emitted_at": 1681238098516}
+{"stream": "survey_responses", "data": {"id": "12731305366", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843657", "survey_id": "307785429", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=iIxE7kshwG8vR6T6c2D0swVsNTfDLqcBVkfrnf_2FGZBTuoHjMm9ksd3LbOIXuF6lp", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731305366", "total_time": 34, "date_modified": "2021-06-10T10:44:10+00:00", "date_created": "2021-06-10T10:43:36+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785429/responses/12731305366", "pages": [{"id": "168831413", "questions": []}, {"id": "168831415", "questions": [{"id": "667461858", "answers": [{"choice_id": "4385175366"}]}, {"id": "667461861", "answers": [{"choice_id": "4385175380"}]}, {"id": "667461876", "answers": [{"choice_id": "4385175447"}]}, {"id": "667461897", "answers": [{"choice_id": "4385175533"}]}, {"id": "667461902", "answers": [{"choice_id": "4385175559"}]}]}, {"id": "168831437", "questions": [{"id": "667461933", "answers": [{"choice_id": "4385175732"}]}, {"id": "667461934", "answers": [{"choice_id": "4385175736"}]}, {"id": "667461936", "answers": [{"choice_id": "4385175741"}]}, {"id": "667461937", "answers": [{"choice_id": "4385175749"}]}, {"id": "667461986", "answers": [{"choice_id": "4385175879"}]}]}]}, "emitted_at": 1681238098516}
+{"stream": "survey_responses", "data": {"id": "12731325134", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843657", "survey_id": "307785429", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=cUq2_2BSagT6pk152_2BsGjjMAAQ2Qq0R0cxleIxEdHEEVKwV5oPCvktmmnTV82pa5S_2F", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731325134", "total_time": 31, "date_modified": "2021-06-10T10:52:02+00:00", "date_created": "2021-06-10T10:51:30+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785429/responses/12731325134", "pages": [{"id": "168831413", "questions": []}, {"id": "168831415", "questions": [{"id": "667461858", "answers": [{"choice_id": "4385175369"}]}, {"id": "667461861", "answers": [{"choice_id": "4385175382"}]}, {"id": "667461876", "answers": [{"choice_id": "4385175447"}]}, {"id": "667461897", "answers": [{"choice_id": "4385175535"}]}, {"id": "667461902", "answers": [{"choice_id": "4385175559"}]}]}, {"id": "168831437", "questions": [{"id": "667461933", "answers": [{"choice_id": "4385175735"}]}, {"id": "667461934", "answers": [{"choice_id": "4385175739"}]}, {"id": "667461936", "answers": [{"choice_id": "4385175742"}]}, {"id": "667461937", "answers": [{"choice_id": "4385175751"}]}, {"id": "667461986", "answers": [{"choice_id": "4385175878"}]}]}]}, "emitted_at": 1681238098517}
+{"stream": "survey_responses", "data": {"id": "12731344038", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843657", "survey_id": "307785429", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=F_2BuWfRunQKdf1g0xuu4mTzXMCAlXia21_2BnF47p_2FbjU4QII1hLaE3Xo6tWdfbzKqr", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731344038", "total_time": 31, "date_modified": "2021-06-10T10:59:42+00:00", "date_created": "2021-06-10T10:59:10+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785429/responses/12731344038", "pages": [{"id": "168831413", "questions": []}, {"id": "168831415", "questions": [{"id": "667461858", "answers": [{"choice_id": "4385175368"}]}, {"id": "667461861", "answers": [{"choice_id": "4385175381"}]}, {"id": "667461876", "answers": [{"choice_id": "4385175448"}]}, {"id": "667461897", "answers": [{"choice_id": "4385175534"}]}, {"id": "667461902", "answers": [{"choice_id": "4385175563"}]}]}, {"id": "168831437", "questions": [{"id": "667461933", "answers": [{"choice_id": "4385175733"}]}, {"id": "667461934", "answers": [{"choice_id": "4385175739"}]}, {"id": "667461936", "answers": [{"choice_id": "4385175740"}]}, {"id": "667461937", "answers": [{"choice_id": "4385175750"}]}, {"id": "667461986", "answers": [{"choice_id": "4385175880"}]}]}]}, "emitted_at": 1681238098517}
+{"stream": "survey_responses", "data": {"id": "12731042086", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843665", "survey_id": "307785444", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=SvCebsqkF1mO3kCZX7XsmQ4ABz0LFCf_2FyW5N2JOLuGh5ixjzbj2i04SarOUiUgPa", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731042086", "total_time": 31, "date_modified": "2021-06-10T08:47:30+00:00", "date_created": "2021-06-10T08:46:58+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785444/responses/12731042086", "pages": [{"id": "168831459", "questions": []}, {"id": "168831461", "questions": [{"id": "667462078", "answers": [{"choice_id": "4385176724"}]}, {"id": "667462079", "answers": [{"choice_id": "4385176728"}]}, {"id": "667462082", "answers": [{"choice_id": "4385176739"}]}, {"id": "667462084", "answers": [{"choice_id": "4385176764"}]}, {"id": "667462086", "answers": [{"choice_id": "4385176919"}]}]}, {"id": "168831467", "questions": [{"id": "667462094", "answers": [{"choice_id": "4385176960"}]}, {"id": "667462096", "answers": [{"choice_id": "4385176970"}]}, {"id": "667462099", "answers": [{"choice_id": "4385176977"}]}, {"id": "667462100", "answers": [{"choice_id": "4385176987"}]}, {"id": "667462102", "answers": [{"choice_id": "4385177005"}]}]}]}, "emitted_at": 1681238099800}
+{"stream": "survey_responses", "data": {"id": "12731056238", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843665", "survey_id": "307785444", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=r7v44AE_2Bx_2Fam5dgCBnlUkUkL0aSWyzhJkIPWmmYa5VnqMtd4X2DBzf9U9erpnCvI", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731056238", "total_time": 31, "date_modified": "2021-06-10T08:55:13+00:00", "date_created": "2021-06-10T08:54:41+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785444/responses/12731056238", "pages": [{"id": "168831459", "questions": []}, {"id": "168831461", "questions": [{"id": "667462078", "answers": [{"choice_id": "4385176723"}]}, {"id": "667462079", "answers": [{"choice_id": "4385176729"}]}, {"id": "667462082", "answers": [{"choice_id": "4385176738"}]}, {"id": "667462084", "answers": [{"choice_id": "4385176763"}]}, {"id": "667462086", "answers": [{"choice_id": "4385176919"}]}]}, {"id": "168831467", "questions": [{"id": "667462094", "answers": [{"choice_id": "4385176962"}]}, {"id": "667462096", "answers": [{"choice_id": "4385176970"}]}, {"id": "667462099", "answers": [{"choice_id": "4385176979"}]}, {"id": "667462100", "answers": [{"choice_id": "4385176986"}]}, {"id": "667462102", "answers": [{"choice_id": "4385177005"}]}]}]}, "emitted_at": 1681238099800}
+{"stream": "survey_responses", "data": {"id": "12731070937", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843665", "survey_id": "307785444", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=_2FuS4ZECIFCnV4LLPEe6gryzUPrf_2FMB8MB51Cv5cU6IQGsWb_2FRIb0BOaRXRodLTAq", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731070937", "total_time": 32, "date_modified": "2021-06-10T09:02:57+00:00", "date_created": "2021-06-10T09:02:25+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785444/responses/12731070937", "pages": [{"id": "168831459", "questions": []}, {"id": "168831461", "questions": [{"id": "667462078", "answers": [{"choice_id": "4385176724"}]}, {"id": "667462079", "answers": [{"choice_id": "4385176728"}]}, {"id": "667462082", "answers": [{"choice_id": "4385176735"}]}, {"id": "667462084", "answers": [{"choice_id": "4385176767"}]}, {"id": "667462086", "answers": [{"choice_id": "4385176920"}]}]}, {"id": "168831467", "questions": [{"id": "667462094", "answers": [{"choice_id": "4385176961"}]}, {"id": "667462096", "answers": [{"choice_id": "4385176975"}]}, {"id": "667462099", "answers": [{"choice_id": "4385176978"}]}, {"id": "667462100", "answers": [{"choice_id": "4385176990"}]}, {"id": "667462102", "answers": [{"choice_id": "4385177007"}]}]}]}, "emitted_at": 1681238099801}
+{"stream": "survey_responses", "data": {"id": "12731087215", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843665", "survey_id": "307785444", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=eSF0qBZZ3aR1SHBtkTZz83mgEBvJuBfou_2BJGBoFPbxv5bluXZuIMKDaGn5x5xba5", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731087215", "total_time": 31, "date_modified": "2021-06-10T09:10:42+00:00", "date_created": "2021-06-10T09:10:10+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785444/responses/12731087215", "pages": [{"id": "168831459", "questions": []}, {"id": "168831461", "questions": [{"id": "667462078", "answers": [{"choice_id": "4385176721"}]}, {"id": "667462079", "answers": [{"choice_id": "4385176727"}]}, {"id": "667462082", "answers": [{"choice_id": "4385176736"}]}, {"id": "667462084", "answers": [{"choice_id": "4385176763"}]}, {"id": "667462086", "answers": [{"choice_id": "4385176918"}]}]}, {"id": "168831467", "questions": [{"id": "667462094", "answers": [{"choice_id": "4385176962"}]}, {"id": "667462096", "answers": [{"choice_id": "4385176972"}]}, {"id": "667462099", "answers": [{"choice_id": "4385176983"}]}, {"id": "667462100", "answers": [{"choice_id": "4385176988"}]}, {"id": "667462102", "answers": [{"choice_id": "4385177007"}]}]}]}, "emitted_at": 1681238099801}
+{"stream": "survey_responses", "data": {"id": "12731103402", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843665", "survey_id": "307785444", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=QOikOvuCCRFkDsJoRozKO9_2BNPZmp7mliotl5xt4QnStPgBKgrvz6GZ7vdHXf3eMG", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731103402", "total_time": 31, "date_modified": "2021-06-10T09:18:22+00:00", "date_created": "2021-06-10T09:17:50+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785444/responses/12731103402", "pages": [{"id": "168831459", "questions": []}, {"id": "168831461", "questions": [{"id": "667462078", "answers": [{"choice_id": "4385176721"}]}, {"id": "667462079", "answers": [{"choice_id": "4385176729"}]}, {"id": "667462082", "answers": [{"choice_id": "4385176736"}]}, {"id": "667462084", "answers": [{"choice_id": "4385176764"}]}, {"id": "667462086", "answers": [{"choice_id": "4385176921"}]}]}, {"id": "168831467", "questions": [{"id": "667462094", "answers": [{"choice_id": "4385176962"}]}, {"id": "667462096", "answers": [{"choice_id": "4385176974"}]}, {"id": "667462099", "answers": [{"choice_id": "4385176978"}]}, {"id": "667462100", "answers": [{"choice_id": "4385176987"}]}, {"id": "667462102", "answers": [{"choice_id": "4385177002"}]}]}]}, "emitted_at": 1681238099802}
+{"stream": "survey_responses", "data": {"id": "12731120214", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843665", "survey_id": "307785444", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=sV4Oq2KXvMuxWQpflbd5L_2FyoB6ImaDnm9BFwJGk9W_2BwE7YWlvW6MsxaqaeWWY_2Fzh", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731120214", "total_time": 31, "date_modified": "2021-06-10T09:26:01+00:00", "date_created": "2021-06-10T09:25:29+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785444/responses/12731120214", "pages": [{"id": "168831459", "questions": []}, {"id": "168831461", "questions": [{"id": "667462078", "answers": [{"choice_id": "4385176723"}]}, {"id": "667462079", "answers": [{"choice_id": "4385176728"}]}, {"id": "667462082", "answers": [{"choice_id": "4385176734"}]}, {"id": "667462084", "answers": [{"choice_id": "4385176765"}]}, {"id": "667462086", "answers": [{"choice_id": "4385176920"}]}]}, {"id": "168831467", "questions": [{"id": "667462094", "answers": [{"choice_id": "4385176960"}]}, {"id": "667462096", "answers": [{"choice_id": "4385176968"}]}, {"id": "667462099", "answers": [{"choice_id": "4385176976"}]}, {"id": "667462100", "answers": [{"choice_id": "4385176987"}]}, {"id": "667462102", "answers": [{"choice_id": "4385177009"}]}]}]}, "emitted_at": 1681238099802}
+{"stream": "survey_responses", "data": {"id": "12731137499", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843665", "survey_id": "307785444", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=Hy3W8rkVoiYFKw_2BdJM6cChYRJWAXaGTQTol4ykCh_2FxYDhPmBpC753rbLshVSZjNE", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731137499", "total_time": 31, "date_modified": "2021-06-10T09:33:45+00:00", "date_created": "2021-06-10T09:33:13+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785444/responses/12731137499", "pages": [{"id": "168831459", "questions": []}, {"id": "168831461", "questions": [{"id": "667462078", "answers": [{"choice_id": "4385176721"}]}, {"id": "667462079", "answers": [{"choice_id": "4385176729"}]}, {"id": "667462082", "answers": [{"choice_id": "4385176738"}]}, {"id": "667462084", "answers": [{"choice_id": "4385176766"}]}, {"id": "667462086", "answers": [{"choice_id": "4385176920"}]}]}, {"id": "168831467", "questions": [{"id": "667462094", "answers": [{"choice_id": "4385176961"}]}, {"id": "667462096", "answers": [{"choice_id": "4385176970"}]}, {"id": "667462099", "answers": [{"choice_id": "4385176982"}]}, {"id": "667462100", "answers": [{"choice_id": "4385176988"}]}, {"id": "667462102", "answers": [{"choice_id": "4385177008"}]}]}]}, "emitted_at": 1681238099803}
+{"stream": "survey_responses", "data": {"id": "12731154912", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843665", "survey_id": "307785444", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=BLjiuDSDI39GvYDURd_2FmEfCd9jRrZ5nLwAgWG65zJj2dA1DskdMkMBHVZjzLHkk6", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731154912", "total_time": 31, "date_modified": "2021-06-10T09:41:24+00:00", "date_created": "2021-06-10T09:40:52+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785444/responses/12731154912", "pages": [{"id": "168831459", "questions": []}, {"id": "168831461", "questions": [{"id": "667462078", "answers": [{"choice_id": "4385176723"}]}, {"id": "667462079", "answers": [{"choice_id": "4385176728"}]}, {"id": "667462082", "answers": [{"choice_id": "4385176738"}]}, {"id": "667462084", "answers": [{"choice_id": "4385176764"}]}, {"id": "667462086", "answers": [{"choice_id": "4385176921"}]}]}, {"id": "168831467", "questions": [{"id": "667462094", "answers": [{"choice_id": "4385176963"}]}, {"id": "667462096", "answers": [{"choice_id": "4385176970"}]}, {"id": "667462099", "answers": [{"choice_id": "4385176977"}]}, {"id": "667462100", "answers": [{"choice_id": "4385176988"}]}, {"id": "667462102", "answers": [{"choice_id": "4385177006"}]}]}]}, "emitted_at": 1681238099803}
+{"stream": "survey_responses", "data": {"id": "12731172230", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843665", "survey_id": "307785444", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=jiMm_2FJVQj8fPN6i2HlASqxeTd4rx_2FcPoCLMAznqiCWgY_2B98x39SfA1kKHTo8CgEC", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731172230", "total_time": 31, "date_modified": "2021-06-10T09:49:12+00:00", "date_created": "2021-06-10T09:48:40+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785444/responses/12731172230", "pages": [{"id": "168831459", "questions": []}, {"id": "168831461", "questions": [{"id": "667462078", "answers": [{"choice_id": "4385176723"}]}, {"id": "667462079", "answers": [{"choice_id": "4385176728"}]}, {"id": "667462082", "answers": [{"choice_id": "4385176737"}]}, {"id": "667462084", "answers": [{"choice_id": "4385176767"}]}, {"id": "667462086", "answers": [{"choice_id": "4385176921"}]}]}, {"id": "168831467", "questions": [{"id": "667462094", "answers": [{"choice_id": "4385176963"}]}, {"id": "667462096", "answers": [{"choice_id": "4385176972"}]}, {"id": "667462099", "answers": [{"choice_id": "4385176977"}]}, {"id": "667462100", "answers": [{"choice_id": "4385176990"}]}, {"id": "667462102", "answers": [{"choice_id": "4385177006"}]}]}]}, "emitted_at": 1681238099804}
+{"stream": "survey_responses", "data": {"id": "12731190528", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843665", "survey_id": "307785444", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=VrEu2qgFZYPclcWCzyV5DO0WUUCjOIMFC77k1XLOofwOqYD5vHAej03viembeuF8", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731190528", "total_time": 35, "date_modified": "2021-06-10T09:57:32+00:00", "date_created": "2021-06-10T09:56:57+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785444/responses/12731190528", "pages": [{"id": "168831459", "questions": []}, {"id": "168831461", "questions": [{"id": "667462078", "answers": [{"choice_id": "4385176725"}]}, {"id": "667462079", "answers": [{"choice_id": "4385176729"}]}, {"id": "667462082", "answers": [{"choice_id": "4385176739"}]}, {"id": "667462084", "answers": [{"choice_id": "4385176763"}]}, {"id": "667462086", "answers": [{"choice_id": "4385176920"}]}]}, {"id": "168831467", "questions": [{"id": "667462094", "answers": [{"choice_id": "4385176959"}]}, {"id": "667462096", "answers": [{"choice_id": "4385176972"}]}, {"id": "667462099", "answers": [{"choice_id": "4385176978"}]}, {"id": "667462100", "answers": [{"choice_id": "4385176987"}]}, {"id": "667462102", "answers": [{"choice_id": "4385177004"}]}]}]}, "emitted_at": 1681238099804}
+{"stream": "survey_responses", "data": {"id": "12731210366", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843665", "survey_id": "307785444", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=xOrc7mbcYE0NFiqzEpenJPpJJ1OHiCt_2FUDSohMb9nmqttp0v1il2MNjb_2BRGE177T", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731210366", "total_time": 33, "date_modified": "2021-06-10T10:05:40+00:00", "date_created": "2021-06-10T10:05:06+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785444/responses/12731210366", "pages": [{"id": "168831459", "questions": []}, {"id": "168831461", "questions": [{"id": "667462078", "answers": [{"choice_id": "4385176722"}]}, {"id": "667462079", "answers": [{"choice_id": "4385176728"}]}, {"id": "667462082", "answers": [{"choice_id": "4385176739"}]}, {"id": "667462084", "answers": [{"choice_id": "4385176763"}]}, {"id": "667462086", "answers": [{"choice_id": "4385176919"}]}]}, {"id": "168831467", "questions": [{"id": "667462094", "answers": [{"choice_id": "4385176961"}]}, {"id": "667462096", "answers": [{"choice_id": "4385176971"}]}, {"id": "667462099", "answers": [{"choice_id": "4385176977"}]}, {"id": "667462100", "answers": [{"choice_id": "4385176986"}]}, {"id": "667462102", "answers": [{"choice_id": "4385177003"}]}]}]}, "emitted_at": 1681238099805}
+{"stream": "survey_responses", "data": {"id": "12731230116", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843665", "survey_id": "307785444", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=xmmEsbDmCA6Nvi6PKgkHAZR5hqRDTYPELB_2BIyMCUzF63brYH0R2ZrSJb9f_2BXtWRa", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731230116", "total_time": 32, "date_modified": "2021-06-10T10:13:28+00:00", "date_created": "2021-06-10T10:12:55+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785444/responses/12731230116", "pages": [{"id": "168831459", "questions": []}, {"id": "168831461", "questions": [{"id": "667462078", "answers": [{"choice_id": "4385176724"}]}, {"id": "667462079", "answers": [{"choice_id": "4385176727"}]}, {"id": "667462082", "answers": [{"choice_id": "4385176735"}]}, {"id": "667462084", "answers": [{"choice_id": "4385176765"}]}, {"id": "667462086", "answers": [{"choice_id": "4385176920"}]}]}, {"id": "168831467", "questions": [{"id": "667462094", "answers": [{"choice_id": "4385176959"}]}, {"id": "667462096", "answers": [{"choice_id": "4385176973"}]}, {"id": "667462099", "answers": [{"choice_id": "4385176977"}]}, {"id": "667462100", "answers": [{"choice_id": "4385176988"}]}, {"id": "667462102", "answers": [{"choice_id": "4385177007"}]}]}]}, "emitted_at": 1681238099805}
+{"stream": "survey_responses", "data": {"id": "12731249077", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843665", "survey_id": "307785444", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=1cQksQ2IA1zuU8mpR9JawSnSqr2zaPV1juVQ7ZEPrEqxr231kL_2F2eIW48UokyJBm", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731249077", "total_time": 31, "date_modified": "2021-06-10T10:21:17+00:00", "date_created": "2021-06-10T10:20:46+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785444/responses/12731249077", "pages": [{"id": "168831459", "questions": []}, {"id": "168831461", "questions": [{"id": "667462078", "answers": [{"choice_id": "4385176724"}]}, {"id": "667462079", "answers": [{"choice_id": "4385176729"}]}, {"id": "667462082", "answers": [{"choice_id": "4385176735"}]}, {"id": "667462084", "answers": [{"choice_id": "4385176764"}]}, {"id": "667462086", "answers": [{"choice_id": "4385176921"}]}]}, {"id": "168831467", "questions": [{"id": "667462094", "answers": [{"choice_id": "4385176963"}]}, {"id": "667462096", "answers": [{"choice_id": "4385176968"}]}, {"id": "667462099", "answers": [{"choice_id": "4385176982"}]}, {"id": "667462100", "answers": [{"choice_id": "4385176989"}]}, {"id": "667462102", "answers": [{"choice_id": "4385177008"}]}]}]}, "emitted_at": 1681238099806}
+{"stream": "survey_responses", "data": {"id": "12731267503", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843665", "survey_id": "307785444", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=zOrptpJoo7QbXn1DoS0HIo4GcoAK8cIZ83MYidVo_2FuK_2FDvnnrsXK2SDzhyjssMdI", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731267503", "total_time": 31, "date_modified": "2021-06-10T10:28:56+00:00", "date_created": "2021-06-10T10:28:25+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785444/responses/12731267503", "pages": [{"id": "168831459", "questions": []}, {"id": "168831461", "questions": [{"id": "667462078", "answers": [{"choice_id": "4385176721"}]}, {"id": "667462079", "answers": [{"choice_id": "4385176727"}]}, {"id": "667462082", "answers": [{"choice_id": "4385176736"}]}, {"id": "667462084", "answers": [{"choice_id": "4385176765"}]}, {"id": "667462086", "answers": [{"choice_id": "4385176921"}]}]}, {"id": "168831467", "questions": [{"id": "667462094", "answers": [{"choice_id": "4385176961"}]}, {"id": "667462096", "answers": [{"choice_id": "4385176970"}]}, {"id": "667462099", "answers": [{"choice_id": "4385176983"}]}, {"id": "667462100", "answers": [{"choice_id": "4385176986"}]}, {"id": "667462102", "answers": [{"choice_id": "4385177003"}]}]}]}, "emitted_at": 1681238099806}
+{"stream": "survey_responses", "data": {"id": "12731287789", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843665", "survey_id": "307785444", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=zXARfqNZgptvNWp9PboSVlElugTboBiAj_2FSG_2BkbD8e8OUJGsJ8FMRpMFap0qzcYY", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731287789", "total_time": 31, "date_modified": "2021-06-10T10:37:03+00:00", "date_created": "2021-06-10T10:36:32+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785444/responses/12731287789", "pages": [{"id": "168831459", "questions": []}, {"id": "168831461", "questions": [{"id": "667462078", "answers": [{"choice_id": "4385176726"}]}, {"id": "667462079", "answers": [{"choice_id": "4385176728"}]}, {"id": "667462082", "answers": [{"choice_id": "4385176735"}]}, {"id": "667462084", "answers": [{"choice_id": "4385176763"}]}, {"id": "667462086", "answers": [{"choice_id": "4385176918"}]}]}, {"id": "168831467", "questions": [{"id": "667462094", "answers": [{"choice_id": "4385176965"}]}, {"id": "667462096", "answers": [{"choice_id": "4385176971"}]}, {"id": "667462099", "answers": [{"choice_id": "4385176981"}]}, {"id": "667462100", "answers": [{"choice_id": "4385176989"}]}, {"id": "667462102", "answers": [{"choice_id": "4385177004"}]}]}]}, "emitted_at": 1681238099807}
+{"stream": "survey_responses", "data": {"id": "12731307187", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843665", "survey_id": "307785444", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=d07mxUJIp3BjkeFrp8gTQvz67vJrBUQWNX2tzrHPvkrZ0piZOPTQDKl_2BrNNjOvJO", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731307187", "total_time": 35, "date_modified": "2021-06-10T10:44:49+00:00", "date_created": "2021-06-10T10:44:14+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785444/responses/12731307187", "pages": [{"id": "168831459", "questions": []}, {"id": "168831461", "questions": [{"id": "667462078", "answers": [{"choice_id": "4385176724"}]}, {"id": "667462079", "answers": [{"choice_id": "4385176727"}]}, {"id": "667462082", "answers": [{"choice_id": "4385176734"}]}, {"id": "667462084", "answers": [{"choice_id": "4385176765"}]}, {"id": "667462086", "answers": [{"choice_id": "4385176921"}]}]}, {"id": "168831467", "questions": [{"id": "667462094", "answers": [{"choice_id": "4385176964"}]}, {"id": "667462096", "answers": [{"choice_id": "4385176975"}]}, {"id": "667462099", "answers": [{"choice_id": "4385176982"}]}, {"id": "667462100", "answers": [{"choice_id": "4385176986"}]}, {"id": "667462102", "answers": [{"choice_id": "4385177004"}]}]}]}, "emitted_at": 1681238099807}
+{"stream": "survey_responses", "data": {"id": "12731326595", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843665", "survey_id": "307785444", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=BCy4vPYrkiObJMS9B6GjZD2jwLTDr1luSZYtqGxH8zxGvmteSPixhqGNTTdp_2BRwb", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731326595", "total_time": 32, "date_modified": "2021-06-10T10:52:38+00:00", "date_created": "2021-06-10T10:52:05+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785444/responses/12731326595", "pages": [{"id": "168831459", "questions": []}, {"id": "168831461", "questions": [{"id": "667462078", "answers": [{"choice_id": "4385176722"}]}, {"id": "667462079", "answers": [{"choice_id": "4385176728"}]}, {"id": "667462082", "answers": [{"choice_id": "4385176739"}]}, {"id": "667462084", "answers": [{"choice_id": "4385176767"}]}, {"id": "667462086", "answers": [{"choice_id": "4385176918"}]}]}, {"id": "168831467", "questions": [{"id": "667462094", "answers": [{"choice_id": "4385176959"}]}, {"id": "667462096", "answers": [{"choice_id": "4385176974"}]}, {"id": "667462099", "answers": [{"choice_id": "4385176981"}]}, {"id": "667462100", "answers": [{"choice_id": "4385176990"}]}, {"id": "667462102", "answers": [{"choice_id": "4385177003"}]}]}]}, "emitted_at": 1681238099808}
+{"stream": "survey_responses", "data": {"id": "12731345509", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843665", "survey_id": "307785444", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=KmG9rTOuf2GcFWGtNhaBIfC5S80jehYrziix2nmuPzJw9_2FzLpaENGb_2F8j4NkPfTJ", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731345509", "total_time": 31, "date_modified": "2021-06-10T11:00:18+00:00", "date_created": "2021-06-10T10:59:46+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785444/responses/12731345509", "pages": [{"id": "168831459", "questions": []}, {"id": "168831461", "questions": [{"id": "667462078", "answers": [{"choice_id": "4385176725"}]}, {"id": "667462079", "answers": [{"choice_id": "4385176729"}]}, {"id": "667462082", "answers": [{"choice_id": "4385176734"}]}, {"id": "667462084", "answers": [{"choice_id": "4385176766"}]}, {"id": "667462086", "answers": [{"choice_id": "4385176919"}]}]}, {"id": "168831467", "questions": [{"id": "667462094", "answers": [{"choice_id": "4385176964"}]}, {"id": "667462096", "answers": [{"choice_id": "4385176968"}]}, {"id": "667462099", "answers": [{"choice_id": "4385176983"}]}, {"id": "667462100", "answers": [{"choice_id": "4385176991"}]}, {"id": "667462102", "answers": [{"choice_id": "4385177005"}]}]}]}, "emitted_at": 1681238099808}
+{"stream": "survey_responses", "data": {"id": "12731043150", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843672", "survey_id": "307785394", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=LKTTnPMSZ1aoM4WL0f1Ja7_2FdIZyTQ0DexNwU_2FFgEeZeT6B9T2m2HJuQjxPHn2OpZ", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731043150", "total_time": 36, "date_modified": "2021-06-10T08:48:12+00:00", "date_created": "2021-06-10T08:47:35+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785394/responses/12731043150", "pages": [{"id": "168831344", "questions": []}, {"id": "168831345", "questions": [{"id": "667461468", "answers": [{"choice_id": "4385173227"}]}, {"id": "667461471", "answers": [{"choice_id": "4385173238"}]}, {"id": "667461473", "answers": [{"choice_id": "4385173258"}]}, {"id": "667461476", "answers": [{"choice_id": "4385173269"}]}, {"id": "667461498", "answers": [{"choice_id": "4385173412"}]}]}, {"id": "168831352", "questions": [{"id": "667461513", "answers": [{"choice_id": "4385173457"}]}, {"id": "667461516", "answers": [{"choice_id": "4385173477"}]}, {"id": "667461517", "answers": [{"choice_id": "4385173482"}]}, {"id": "667461521", "answers": [{"choice_id": "4385173493"}]}, {"id": "667461526", "answers": [{"choice_id": "4385173525"}]}]}]}, "emitted_at": 1681238101175}
+{"stream": "survey_responses", "data": {"id": "12731057303", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843672", "survey_id": "307785394", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=Tj5vPzxUmWLsaqGk6A3N4tXy8F1lrXDh3cgduiFC1tcjk3fKqd5Jc_2FYl9kqbrtXl", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731057303", "total_time": 35, "date_modified": "2021-06-10T08:55:53+00:00", "date_created": "2021-06-10T08:55:17+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785394/responses/12731057303", "pages": [{"id": "168831344", "questions": []}, {"id": "168831345", "questions": [{"id": "667461468", "answers": [{"choice_id": "4385173227"}]}, {"id": "667461471", "answers": [{"choice_id": "4385173237"}]}, {"id": "667461473", "answers": [{"choice_id": "4385173256"}]}, {"id": "667461476", "answers": [{"choice_id": "4385173270"}]}, {"id": "667461498", "answers": [{"choice_id": "4385173414"}]}]}, {"id": "168831352", "questions": [{"id": "667461513", "answers": [{"choice_id": "4385173457"}]}, {"id": "667461516", "answers": [{"choice_id": "4385173478"}]}, {"id": "667461517", "answers": [{"choice_id": "4385173481"}]}, {"id": "667461521", "answers": [{"choice_id": "4385173494"}]}, {"id": "667461526", "answers": [{"choice_id": "4385173523"}]}]}]}, "emitted_at": 1681238101176}
+{"stream": "survey_responses", "data": {"id": "12731072147", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843672", "survey_id": "307785394", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=bAFsDUmEPpCdobkl_2BIl_2F6rdICCatPVmCxnojDaOR9ZJwGzYj7h29WMvC195fRe31", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731072147", "total_time": 35, "date_modified": "2021-06-10T09:03:38+00:00", "date_created": "2021-06-10T09:03:02+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785394/responses/12731072147", "pages": [{"id": "168831344", "questions": []}, {"id": "168831345", "questions": [{"id": "667461468", "answers": [{"choice_id": "4385173229"}]}, {"id": "667461471", "answers": [{"choice_id": "4385173240"}]}, {"id": "667461473", "answers": [{"choice_id": "4385173257"}]}, {"id": "667461476", "answers": [{"choice_id": "4385173268"}]}, {"id": "667461498", "answers": [{"choice_id": "4385173413"}]}]}, {"id": "168831352", "questions": [{"id": "667461513", "answers": [{"choice_id": "4385173452"}]}, {"id": "667461516", "answers": [{"choice_id": "4385173476"}]}, {"id": "667461517", "answers": [{"choice_id": "4385173483"}]}, {"id": "667461521", "answers": [{"choice_id": "4385173492"}]}, {"id": "667461526", "answers": [{"choice_id": "4385173523"}]}]}]}, "emitted_at": 1681238101176}
+{"stream": "survey_responses", "data": {"id": "12731088506", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843672", "survey_id": "307785394", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=MrquTcpA82ItgrSQWG_2BswTK4ClFm9rTuG5GWb85hiLDvaK2dr6F7vrYvOlwqkkC6", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731088506", "total_time": 35, "date_modified": "2021-06-10T09:11:22+00:00", "date_created": "2021-06-10T09:10:46+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785394/responses/12731088506", "pages": [{"id": "168831344", "questions": []}, {"id": "168831345", "questions": [{"id": "667461468", "answers": [{"choice_id": "4385173227"}]}, {"id": "667461471", "answers": [{"choice_id": "4385173236"}]}, {"id": "667461473", "answers": [{"choice_id": "4385173256"}]}, {"id": "667461476", "answers": [{"choice_id": "4385173269"}]}, {"id": "667461498", "answers": [{"choice_id": "4385173413"}]}]}, {"id": "168831352", "questions": [{"id": "667461513", "answers": [{"choice_id": "4385173458"}]}, {"id": "667461516", "answers": [{"choice_id": "4385173475"}]}, {"id": "667461517", "answers": [{"choice_id": "4385173484"}]}, {"id": "667461521", "answers": [{"choice_id": "4385173492"}]}, {"id": "667461526", "answers": [{"choice_id": "4385173525"}]}]}]}, "emitted_at": 1681238101177}
+{"stream": "survey_responses", "data": {"id": "12731104696", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843672", "survey_id": "307785394", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=RO8uULIefm7fQ9VJXKzxtKBfRj4g0rYOE0LRuSA8OT2GVPEFDFQFmSOII7UlshDk", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731104696", "total_time": 36, "date_modified": "2021-06-10T09:19:03+00:00", "date_created": "2021-06-10T09:18:26+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785394/responses/12731104696", "pages": [{"id": "168831344", "questions": []}, {"id": "168831345", "questions": [{"id": "667461468", "answers": [{"choice_id": "4385173229"}]}, {"id": "667461471", "answers": [{"choice_id": "4385173240"}]}, {"id": "667461473", "answers": [{"choice_id": "4385173256"}]}, {"id": "667461476", "answers": [{"choice_id": "4385173271"}]}, {"id": "667461498", "answers": [{"choice_id": "4385173414"}]}]}, {"id": "168831352", "questions": [{"id": "667461513", "answers": [{"choice_id": "4385173457"}]}, {"id": "667461516", "answers": [{"choice_id": "4385173474"}]}, {"id": "667461517", "answers": [{"choice_id": "4385173481"}]}, {"id": "667461521", "answers": [{"choice_id": "4385173493"}]}, {"id": "667461526", "answers": [{"choice_id": "4385173526"}]}]}]}, "emitted_at": 1681238101177}
+{"stream": "survey_responses", "data": {"id": "12731121617", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843672", "survey_id": "307785394", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=Z_2BP_2BwLxa1Cmlcetqz6B1oaPvJSUU_2F5d018eOau5jIs8q4IlOyw7MT9YtxrlZnZHx", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731121617", "total_time": 37, "date_modified": "2021-06-10T09:26:44+00:00", "date_created": "2021-06-10T09:26:07+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785394/responses/12731121617", "pages": [{"id": "168831344", "questions": []}, {"id": "168831345", "questions": [{"id": "667461468", "answers": [{"choice_id": "4385173228"}]}, {"id": "667461471", "answers": [{"choice_id": "4385173237"}]}, {"id": "667461473", "answers": [{"choice_id": "4385173258"}]}, {"id": "667461476", "answers": [{"choice_id": "4385173268"}]}, {"id": "667461498", "answers": [{"choice_id": "4385173414"}]}]}, {"id": "168831352", "questions": [{"id": "667461513", "answers": [{"choice_id": "4385173458"}]}, {"id": "667461516", "answers": [{"choice_id": "4385173477"}]}, {"id": "667461517", "answers": [{"choice_id": "4385173481"}]}, {"id": "667461521", "answers": [{"choice_id": "4385173493"}]}, {"id": "667461526", "answers": [{"choice_id": "4385173523"}]}]}]}, "emitted_at": 1681238101178}
+{"stream": "survey_responses", "data": {"id": "12731139029", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843672", "survey_id": "307785394", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=R0ZtH7VCYs_2FMuOE8hZBLqJdLMcu2RDqvrV04C34ivpIzGYhRzaVoAG0LDF83Ln_2B2", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731139029", "total_time": 37, "date_modified": "2021-06-10T09:34:27+00:00", "date_created": "2021-06-10T09:33:50+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785394/responses/12731139029", "pages": [{"id": "168831344", "questions": []}, {"id": "168831345", "questions": [{"id": "667461468", "answers": [{"choice_id": "4385173229"}]}, {"id": "667461471", "answers": [{"choice_id": "4385173239"}]}, {"id": "667461473", "answers": [{"choice_id": "4385173256"}]}, {"id": "667461476", "answers": [{"choice_id": "4385173269"}]}, {"id": "667461498", "answers": [{"choice_id": "4385173415"}]}]}, {"id": "168831352", "questions": [{"id": "667461513", "answers": [{"choice_id": "4385173459"}]}, {"id": "667461516", "answers": [{"choice_id": "4385173477"}]}, {"id": "667461517", "answers": [{"choice_id": "4385173482"}]}, {"id": "667461521", "answers": [{"choice_id": "4385173492"}]}, {"id": "667461526", "answers": [{"choice_id": "4385173523"}]}]}]}, "emitted_at": 1681238101178}
+{"stream": "survey_responses", "data": {"id": "12731156353", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843672", "survey_id": "307785394", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=t_2BeAHBUtkTES9TALR_2F4aDfYgtWlbqJv08b_2B6EYbplYKefvn8GrYTkoGugKOevrCn", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731156353", "total_time": 35, "date_modified": "2021-06-10T09:42:06+00:00", "date_created": "2021-06-10T09:41:30+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785394/responses/12731156353", "pages": [{"id": "168831344", "questions": []}, {"id": "168831345", "questions": [{"id": "667461468", "answers": [{"choice_id": "4385173229"}]}, {"id": "667461471", "answers": [{"choice_id": "4385173237"}]}, {"id": "667461473", "answers": [{"choice_id": "4385173256"}]}, {"id": "667461476", "answers": [{"choice_id": "4385173271"}]}, {"id": "667461498", "answers": [{"choice_id": "4385173416"}]}]}, {"id": "168831352", "questions": [{"id": "667461513", "answers": [{"choice_id": "4385173455"}]}, {"id": "667461516", "answers": [{"choice_id": "4385173474"}]}, {"id": "667461517", "answers": [{"choice_id": "4385173481"}]}, {"id": "667461521", "answers": [{"choice_id": "4385173493"}]}, {"id": "667461526", "answers": [{"choice_id": "4385173523"}]}]}]}, "emitted_at": 1681238101178}
+{"stream": "survey_responses", "data": {"id": "12731173574", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843672", "survey_id": "307785394", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=mVe08d8mokL6AWRdTdpFz7jaz6dJhmAV4ZlfpEH6B8OQwQXlC2RxAxy2Z_2BtSrLXG", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731173574", "total_time": 36, "date_modified": "2021-06-10T09:49:53+00:00", "date_created": "2021-06-10T09:49:16+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785394/responses/12731173574", "pages": [{"id": "168831344", "questions": []}, {"id": "168831345", "questions": [{"id": "667461468", "answers": [{"choice_id": "4385173227"}]}, {"id": "667461471", "answers": [{"choice_id": "4385173241"}]}, {"id": "667461473", "answers": [{"choice_id": "4385173258"}]}, {"id": "667461476", "answers": [{"choice_id": "4385173270"}]}, {"id": "667461498", "answers": [{"choice_id": "4385173414"}]}]}, {"id": "168831352", "questions": [{"id": "667461513", "answers": [{"choice_id": "4385173458"}]}, {"id": "667461516", "answers": [{"choice_id": "4385173475"}]}, {"id": "667461517", "answers": [{"choice_id": "4385173486"}]}, {"id": "667461521", "answers": [{"choice_id": "4385173492"}]}, {"id": "667461526", "answers": [{"choice_id": "4385173526"}]}]}]}, "emitted_at": 1681238101179}
+{"stream": "survey_responses", "data": {"id": "12731192021", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843672", "survey_id": "307785394", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=XFNknH0sj9IIdSvzYR75kcMldl4TuTz7kma3E7SGri2Rq_2FvcCRLj4ug5HOCnqMQz", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731192021", "total_time": 39, "date_modified": "2021-06-10T09:58:16+00:00", "date_created": "2021-06-10T09:57:36+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785394/responses/12731192021", "pages": [{"id": "168831344", "questions": []}, {"id": "168831345", "questions": [{"id": "667461468", "answers": [{"choice_id": "4385173227"}]}, {"id": "667461471", "answers": [{"choice_id": "4385173239"}]}, {"id": "667461473", "answers": [{"choice_id": "4385173258"}]}, {"id": "667461476", "answers": [{"choice_id": "4385173270"}]}, {"id": "667461498", "answers": [{"choice_id": "4385173416"}]}]}, {"id": "168831352", "questions": [{"id": "667461513", "answers": [{"choice_id": "4385173456"}]}, {"id": "667461516", "answers": [{"choice_id": "4385173475"}]}, {"id": "667461517", "answers": [{"choice_id": "4385173481"}]}, {"id": "667461521", "answers": [{"choice_id": "4385173494"}]}, {"id": "667461526", "answers": [{"choice_id": "4385173523"}]}]}]}, "emitted_at": 1681238101179}
+{"stream": "survey_responses", "data": {"id": "12731211903", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843672", "survey_id": "307785394", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=V3KUOw0NUFH27PiVeUNuTKv_2BkMDveRdHYnln_2FOZcYY0I7L0VIMlksx3CdNizHX_2BP", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731211903", "total_time": 36, "date_modified": "2021-06-10T10:06:21+00:00", "date_created": "2021-06-10T10:05:44+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785394/responses/12731211903", "pages": [{"id": "168831344", "questions": []}, {"id": "168831345", "questions": [{"id": "667461468", "answers": [{"choice_id": "4385173229"}]}, {"id": "667461471", "answers": [{"choice_id": "4385173239"}]}, {"id": "667461473", "answers": [{"choice_id": "4385173256"}]}, {"id": "667461476", "answers": [{"choice_id": "4385173271"}]}, {"id": "667461498", "answers": [{"choice_id": "4385173416"}]}]}, {"id": "168831352", "questions": [{"id": "667461513", "answers": [{"choice_id": "4385173456"}]}, {"id": "667461516", "answers": [{"choice_id": "4385173477"}]}, {"id": "667461517", "answers": [{"choice_id": "4385173484"}]}, {"id": "667461521", "answers": [{"choice_id": "4385173494"}]}, {"id": "667461526", "answers": [{"choice_id": "4385173526"}]}]}]}, "emitted_at": 1681238101180}
+{"stream": "survey_responses", "data": {"id": "12731231636", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843672", "survey_id": "307785394", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=xv8ZLGu_2FUg9VAJ8hvx10oji6MvB1PbiAyA98qWpExvZvSaPKJ7cIFH8nZktkDKH0", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731231636", "total_time": 36, "date_modified": "2021-06-10T10:14:08+00:00", "date_created": "2021-06-10T10:13:32+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785394/responses/12731231636", "pages": [{"id": "168831344", "questions": []}, {"id": "168831345", "questions": [{"id": "667461468", "answers": [{"choice_id": "4385173226"}]}, {"id": "667461471", "answers": [{"choice_id": "4385173237"}]}, {"id": "667461473", "answers": [{"choice_id": "4385173258"}]}, {"id": "667461476", "answers": [{"choice_id": "4385173270"}]}, {"id": "667461498", "answers": [{"choice_id": "4385173413"}]}]}, {"id": "168831352", "questions": [{"id": "667461513", "answers": [{"choice_id": "4385173454"}]}, {"id": "667461516", "answers": [{"choice_id": "4385173475"}]}, {"id": "667461517", "answers": [{"choice_id": "4385173486"}]}, {"id": "667461521", "answers": [{"choice_id": "4385173492"}]}, {"id": "667461526", "answers": [{"choice_id": "4385173527"}]}]}]}, "emitted_at": 1681238101180}
+{"stream": "survey_responses", "data": {"id": "12731250495", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843672", "survey_id": "307785394", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=juR_2BEnc_2BsJLlCc6Sg7p2Ql_2B4icSx_2BsZwo_2FU1RVgYxqI2OzngMKnAUlrdJUS39ewn", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731250495", "total_time": 36, "date_modified": "2021-06-10T10:21:58+00:00", "date_created": "2021-06-10T10:21:21+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785394/responses/12731250495", "pages": [{"id": "168831344", "questions": []}, {"id": "168831345", "questions": [{"id": "667461468", "answers": [{"choice_id": "4385173229"}]}, {"id": "667461471", "answers": [{"choice_id": "4385173237"}]}, {"id": "667461473", "answers": [{"choice_id": "4385173257"}]}, {"id": "667461476", "answers": [{"choice_id": "4385173268"}]}, {"id": "667461498", "answers": [{"choice_id": "4385173415"}]}]}, {"id": "168831352", "questions": [{"id": "667461513", "answers": [{"choice_id": "4385173459"}]}, {"id": "667461516", "answers": [{"choice_id": "4385173474"}]}, {"id": "667461517", "answers": [{"choice_id": "4385173486"}]}, {"id": "667461521", "answers": [{"choice_id": "4385173492"}]}, {"id": "667461526", "answers": [{"choice_id": "4385173526"}]}]}]}, "emitted_at": 1681238101181}
+{"stream": "survey_responses", "data": {"id": "12731268932", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843672", "survey_id": "307785394", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=vXLZxpfaNUwy1JRrQLJCNL0kcVa5U5M5FtCofSN4MCcTJt9om9nRi2D4C4xJeXUg", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731268932", "total_time": 35, "date_modified": "2021-06-10T10:29:36+00:00", "date_created": "2021-06-10T10:29:00+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785394/responses/12731268932", "pages": [{"id": "168831344", "questions": []}, {"id": "168831345", "questions": [{"id": "667461468", "answers": [{"choice_id": "4385173228"}]}, {"id": "667461471", "answers": [{"choice_id": "4385173242"}]}, {"id": "667461473", "answers": [{"choice_id": "4385173257"}]}, {"id": "667461476", "answers": [{"choice_id": "4385173271"}]}, {"id": "667461498", "answers": [{"choice_id": "4385173412"}]}]}, {"id": "168831352", "questions": [{"id": "667461513", "answers": [{"choice_id": "4385173454"}]}, {"id": "667461516", "answers": [{"choice_id": "4385173475"}]}, {"id": "667461517", "answers": [{"choice_id": "4385173483"}]}, {"id": "667461521", "answers": [{"choice_id": "4385173493"}]}, {"id": "667461526", "answers": [{"choice_id": "4385173524"}]}]}]}, "emitted_at": 1681238101181}
+{"stream": "survey_responses", "data": {"id": "12731289280", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843672", "survey_id": "307785394", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=M4Lzmv89J2ZSnoBKgwxsZqDP3em9icPdsBglzN7NQB_2BM5AQ1bWpjH53fB0IsVZi6", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731289280", "total_time": 36, "date_modified": "2021-06-10T10:37:44+00:00", "date_created": "2021-06-10T10:37:08+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785394/responses/12731289280", "pages": [{"id": "168831344", "questions": []}, {"id": "168831345", "questions": [{"id": "667461468", "answers": [{"choice_id": "4385173227"}]}, {"id": "667461471", "answers": [{"choice_id": "4385173242"}]}, {"id": "667461473", "answers": [{"choice_id": "4385173258"}]}, {"id": "667461476", "answers": [{"choice_id": "4385173270"}]}, {"id": "667461498", "answers": [{"choice_id": "4385173416"}]}]}, {"id": "168831352", "questions": [{"id": "667461513", "answers": [{"choice_id": "4385173454"}]}, {"id": "667461516", "answers": [{"choice_id": "4385173477"}]}, {"id": "667461517", "answers": [{"choice_id": "4385173485"}]}, {"id": "667461521", "answers": [{"choice_id": "4385173492"}]}, {"id": "667461526", "answers": [{"choice_id": "4385173526"}]}]}]}, "emitted_at": 1681238101182}
+{"stream": "survey_responses", "data": {"id": "12731308800", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843672", "survey_id": "307785394", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=GQAEVhmAlwb5r_2FWfXNC_2Fqzqv5ULovU_2BGovk8oDp5nCvL2982DEXHbEhjSg4A3FdA", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731308800", "total_time": 39, "date_modified": "2021-06-10T10:45:33+00:00", "date_created": "2021-06-10T10:44:54+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785394/responses/12731308800", "pages": [{"id": "168831344", "questions": []}, {"id": "168831345", "questions": [{"id": "667461468", "answers": [{"choice_id": "4385173227"}]}, {"id": "667461471", "answers": [{"choice_id": "4385173239"}]}, {"id": "667461473", "answers": [{"choice_id": "4385173256"}]}, {"id": "667461476", "answers": [{"choice_id": "4385173271"}]}, {"id": "667461498", "answers": [{"choice_id": "4385173412"}]}]}, {"id": "168831352", "questions": [{"id": "667461513", "answers": [{"choice_id": "4385173459"}]}, {"id": "667461516", "answers": [{"choice_id": "4385173473"}]}, {"id": "667461517", "answers": [{"choice_id": "4385173482"}]}, {"id": "667461521", "answers": [{"choice_id": "4385173494"}]}, {"id": "667461526", "answers": [{"choice_id": "4385173526"}]}]}]}, "emitted_at": 1681238101182}
+{"stream": "survey_responses", "data": {"id": "12731328082", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843672", "survey_id": "307785394", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=MwpXysDo7Lhe8X4oi_2BfwDcfgG4XMlnjXbj783SvdsQcVCLn0Y0mvT87cyq6wLtri", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731328082", "total_time": 36, "date_modified": "2021-06-10T10:53:17+00:00", "date_created": "2021-06-10T10:52:41+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785394/responses/12731328082", "pages": [{"id": "168831344", "questions": []}, {"id": "168831345", "questions": [{"id": "667461468", "answers": [{"choice_id": "4385173227"}]}, {"id": "667461471", "answers": [{"choice_id": "4385173241"}]}, {"id": "667461473", "answers": [{"choice_id": "4385173256"}]}, {"id": "667461476", "answers": [{"choice_id": "4385173271"}]}, {"id": "667461498", "answers": [{"choice_id": "4385173413"}]}]}, {"id": "168831352", "questions": [{"id": "667461513", "answers": [{"choice_id": "4385173456"}]}, {"id": "667461516", "answers": [{"choice_id": "4385173477"}]}, {"id": "667461517", "answers": [{"choice_id": "4385173486"}]}, {"id": "667461521", "answers": [{"choice_id": "4385173492"}]}, {"id": "667461526", "answers": [{"choice_id": "4385173524"}]}]}]}, "emitted_at": 1681238101183}
+{"stream": "survey_responses", "data": {"id": "12731346960", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843672", "survey_id": "307785394", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=i9GzbJPTq_2BCfXqXCYc91kWSkkbD40J_2FGL8hESaU68w7nuZXOyFZ7xNpNth1mmf72", "analyze_url": "https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731346960", "total_time": 35, "date_modified": "2021-06-10T11:00:58+00:00", "date_created": "2021-06-10T11:00:22+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785394/responses/12731346960", "pages": [{"id": "168831344", "questions": []}, {"id": "168831345", "questions": [{"id": "667461468", "answers": [{"choice_id": "4385173229"}]}, {"id": "667461471", "answers": [{"choice_id": "4385173241"}]}, {"id": "667461473", "answers": [{"choice_id": "4385173256"}]}, {"id": "667461476", "answers": [{"choice_id": "4385173270"}]}, {"id": "667461498", "answers": [{"choice_id": "4385173412"}]}]}, {"id": "168831352", "questions": [{"id": "667461513", "answers": [{"choice_id": "4385173457"}]}, {"id": "667461516", "answers": [{"choice_id": "4385173476"}]}, {"id": "667461517", "answers": [{"choice_id": "4385173483"}]}, {"id": "667461521", "answers": [{"choice_id": "4385173493"}]}, {"id": "667461526", "answers": [{"choice_id": "4385173527"}]}]}]}, "emitted_at": 1681238101183}
+{"stream": "survey_responses", "data": {"id": "12731044345", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843682", "survey_id": "307785402", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=RiSWqWbbXVsX_2BRIyudfJwY_2BODcC0aHC0L77gSNMTF5T_2BsPWUy2vlIWpXf01Hqy8k", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731044345", "total_time": 34, "date_modified": "2021-06-10T08:48:50+00:00", "date_created": "2021-06-10T08:48:16+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785402/responses/12731044345", "pages": [{"id": "168831357", "questions": []}, {"id": "168831358", "questions": [{"id": "667461529", "answers": [{"choice_id": "4385173538"}]}, {"id": "667461530", "answers": [{"choice_id": "4385173549"}]}, {"id": "667461549", "answers": [{"choice_id": "4385173661"}]}, {"id": "667461551", "answers": [{"choice_id": "4385173676"}]}, {"id": "667461553", "answers": [{"choice_id": "4385173681"}]}]}, {"id": "168831365", "questions": [{"id": "667461555", "answers": [{"choice_id": "4385173713"}]}, {"id": "667461558", "answers": [{"choice_id": "4385173732"}]}, {"id": "667461561", "answers": [{"choice_id": "4385173756"}]}, {"id": "667461580", "answers": [{"choice_id": "4385174059"}]}, {"id": "667461598", "answers": [{"choice_id": "4385174182"}]}]}]}, "emitted_at": 1681238102523}
+{"stream": "survey_responses", "data": {"id": "12731058644", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843682", "survey_id": "307785402", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=8fjqeuyiG6EvuMWbYy64yqPXBnCSWaEpW8DInIUYXRbFyqerWPCENf5izNrPGoNw", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731058644", "total_time": 33, "date_modified": "2021-06-10T08:56:31+00:00", "date_created": "2021-06-10T08:55:58+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785402/responses/12731058644", "pages": [{"id": "168831357", "questions": []}, {"id": "168831358", "questions": [{"id": "667461529", "answers": [{"choice_id": "4385173537"}]}, {"id": "667461530", "answers": [{"choice_id": "4385173550"}]}, {"id": "667461549", "answers": [{"choice_id": "4385173662"}]}, {"id": "667461551", "answers": [{"choice_id": "4385173677"}]}, {"id": "667461553", "answers": [{"choice_id": "4385173678"}]}]}, {"id": "168831365", "questions": [{"id": "667461555", "answers": [{"choice_id": "4385173713"}]}, {"id": "667461558", "answers": [{"choice_id": "4385173729"}]}, {"id": "667461561", "answers": [{"choice_id": "4385173755"}]}, {"id": "667461580", "answers": [{"choice_id": "4385174063"}]}, {"id": "667461598", "answers": [{"choice_id": "4385174183"}]}]}]}, "emitted_at": 1681238102523}
+{"stream": "survey_responses", "data": {"id": "12731073567", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843682", "survey_id": "307785402", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=ILVcHPPYp1qBeboZrnUw9zU8OfPDI3pBaSHE_2FPA1mcsZYgDgyEvD2DNJEXG50BwI", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731073567", "total_time": 34, "date_modified": "2021-06-10T09:04:16+00:00", "date_created": "2021-06-10T09:03:42+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785402/responses/12731073567", "pages": [{"id": "168831357", "questions": []}, {"id": "168831358", "questions": [{"id": "667461529", "answers": [{"choice_id": "4385173537"}]}, {"id": "667461530", "answers": [{"choice_id": "4385173552"}]}, {"id": "667461549", "answers": [{"choice_id": "4385173663"}]}, {"id": "667461551", "answers": [{"choice_id": "4385173675"}]}, {"id": "667461553", "answers": [{"choice_id": "4385173681"}]}]}, {"id": "168831365", "questions": [{"id": "667461555", "answers": [{"choice_id": "4385173711"}]}, {"id": "667461558", "answers": [{"choice_id": "4385173734"}]}, {"id": "667461561", "answers": [{"choice_id": "4385173756"}]}, {"id": "667461580", "answers": [{"choice_id": "4385174066"}]}, {"id": "667461598", "answers": [{"choice_id": "4385174183"}]}]}]}, "emitted_at": 1681238102524}
+{"stream": "survey_responses", "data": {"id": "12731089919", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843682", "survey_id": "307785402", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=WJVGjucUzW8fBD4StuC_2FFZoPB0pCtugYpTzgDrCOMnJyyzUp5Q2v55jJ8xqcAaJv", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731089919", "total_time": 33, "date_modified": "2021-06-10T09:12:00+00:00", "date_created": "2021-06-10T09:11:26+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785402/responses/12731089919", "pages": [{"id": "168831357", "questions": []}, {"id": "168831358", "questions": [{"id": "667461529", "answers": [{"choice_id": "4385173536"}]}, {"id": "667461530", "answers": [{"choice_id": "4385173551"}]}, {"id": "667461549", "answers": [{"choice_id": "4385173658"}]}, {"id": "667461551", "answers": [{"choice_id": "4385173675"}]}, {"id": "667461553", "answers": [{"choice_id": "4385173681"}]}]}, {"id": "168831365", "questions": [{"id": "667461555", "answers": [{"choice_id": "4385173714"}]}, {"id": "667461558", "answers": [{"choice_id": "4385173728"}]}, {"id": "667461561", "answers": [{"choice_id": "4385173755"}]}, {"id": "667461580", "answers": [{"choice_id": "4385174060"}]}, {"id": "667461598", "answers": [{"choice_id": "4385174184"}]}]}]}, "emitted_at": 1681238102524}
+{"stream": "survey_responses", "data": {"id": "12731106311", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843682", "survey_id": "307785402", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=pYr2BTIwVP0O3EzGC27aOOaCA0hnWvJ3FzJOiB_2Fhgw0UUSDh2QpQTcjrfXltZ8dv", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731106311", "total_time": 33, "date_modified": "2021-06-10T09:19:41+00:00", "date_created": "2021-06-10T09:19:07+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785402/responses/12731106311", "pages": [{"id": "168831357", "questions": []}, {"id": "168831358", "questions": [{"id": "667461529", "answers": [{"choice_id": "4385173537"}]}, {"id": "667461530", "answers": [{"choice_id": "4385173549"}]}, {"id": "667461549", "answers": [{"choice_id": "4385173663"}]}, {"id": "667461551", "answers": [{"choice_id": "4385173675"}]}, {"id": "667461553", "answers": [{"choice_id": "4385173680"}]}]}, {"id": "168831365", "questions": [{"id": "667461555", "answers": [{"choice_id": "4385173712"}]}, {"id": "667461558", "answers": [{"choice_id": "4385173727"}]}, {"id": "667461561", "answers": [{"choice_id": "4385173757"}]}, {"id": "667461580", "answers": [{"choice_id": "4385174061"}]}, {"id": "667461598", "answers": [{"choice_id": "4385174186"}]}]}]}, "emitted_at": 1681238102525}
+{"stream": "survey_responses", "data": {"id": "12731123001", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843682", "survey_id": "307785402", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=iMOq3PmDu_2Fpfu6Lqltp5VPoRV2azTczcfDSAY7AjMIzECAtQhUwU_2FNMCCwq_2BSvsN", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731123001", "total_time": 34, "date_modified": "2021-06-10T09:27:23+00:00", "date_created": "2021-06-10T09:26:49+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785402/responses/12731123001", "pages": [{"id": "168831357", "questions": []}, {"id": "168831358", "questions": [{"id": "667461529", "answers": [{"choice_id": "4385173540"}]}, {"id": "667461530", "answers": [{"choice_id": "4385173550"}]}, {"id": "667461549", "answers": [{"choice_id": "4385173658"}]}, {"id": "667461551", "answers": [{"choice_id": "4385173676"}]}, {"id": "667461553", "answers": [{"choice_id": "4385173682"}]}]}, {"id": "168831365", "questions": [{"id": "667461555", "answers": [{"choice_id": "4385173713"}]}, {"id": "667461558", "answers": [{"choice_id": "4385173727"}]}, {"id": "667461561", "answers": [{"choice_id": "4385173757"}]}, {"id": "667461580", "answers": [{"choice_id": "4385174059"}]}, {"id": "667461598", "answers": [{"choice_id": "4385174186"}]}]}]}, "emitted_at": 1681238102525}
+{"stream": "survey_responses", "data": {"id": "12731140625", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843682", "survey_id": "307785402", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=QTesi81CB_2BwJ62wJ8op06oDEuscTPvq1ke99azBrWELfhmlgdyrrpw0NVegVV_2BE7", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731140625", "total_time": 33, "date_modified": "2021-06-10T09:35:05+00:00", "date_created": "2021-06-10T09:34:32+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785402/responses/12731140625", "pages": [{"id": "168831357", "questions": []}, {"id": "168831358", "questions": [{"id": "667461529", "answers": [{"choice_id": "4385173538"}]}, {"id": "667461530", "answers": [{"choice_id": "4385173553"}]}, {"id": "667461549", "answers": [{"choice_id": "4385173661"}]}, {"id": "667461551", "answers": [{"choice_id": "4385173675"}]}, {"id": "667461553", "answers": [{"choice_id": "4385173678"}]}]}, {"id": "168831365", "questions": [{"id": "667461555", "answers": [{"choice_id": "4385173713"}]}, {"id": "667461558", "answers": [{"choice_id": "4385173729"}]}, {"id": "667461561", "answers": [{"choice_id": "4385173755"}]}, {"id": "667461580", "answers": [{"choice_id": "4385174062"}]}, {"id": "667461598", "answers": [{"choice_id": "4385174185"}]}]}]}, "emitted_at": 1681238102526}
+{"stream": "survey_responses", "data": {"id": "12731157855", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843682", "survey_id": "307785402", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=Y_2BseyWnN45hqrdC63g5th2srbJCqZZuaaHgJaVUVwfuBPwNI2IdB2Dc1yEhLsRcy", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731157855", "total_time": 33, "date_modified": "2021-06-10T09:42:46+00:00", "date_created": "2021-06-10T09:42:12+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785402/responses/12731157855", "pages": [{"id": "168831357", "questions": []}, {"id": "168831358", "questions": [{"id": "667461529", "answers": [{"choice_id": "4385173536"}]}, {"id": "667461530", "answers": [{"choice_id": "4385173553"}]}, {"id": "667461549", "answers": [{"choice_id": "4385173661"}]}, {"id": "667461551", "answers": [{"choice_id": "4385173676"}]}, {"id": "667461553", "answers": [{"choice_id": "4385173681"}]}]}, {"id": "168831365", "questions": [{"id": "667461555", "answers": [{"choice_id": "4385173713"}]}, {"id": "667461558", "answers": [{"choice_id": "4385173727"}]}, {"id": "667461561", "answers": [{"choice_id": "4385173756"}]}, {"id": "667461580", "answers": [{"choice_id": "4385174060"}]}, {"id": "667461598", "answers": [{"choice_id": "4385174183"}]}]}]}, "emitted_at": 1681238102526}
+{"stream": "survey_responses", "data": {"id": "12731175182", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843682", "survey_id": "307785402", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=wvlpuaxYEnle4EG2hvBzqRUelWi_2BwXRQmZSU2ru959wJ7Ly3p7I9sg1wjhKu7Bm_2F", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731175182", "total_time": 27, "date_modified": "2021-06-10T09:50:26+00:00", "date_created": "2021-06-10T09:49:58+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785402/responses/12731175182", "pages": [{"id": "168831357", "questions": []}, {"id": "168831358", "questions": []}, {"id": "168831365", "questions": [{"id": "667461555", "answers": [{"choice_id": "4385173713"}]}, {"id": "667461558", "answers": [{"choice_id": "4385173731"}]}, {"id": "667461561", "answers": [{"choice_id": "4385173756"}]}, {"id": "667461580", "answers": [{"choice_id": "4385174061"}]}, {"id": "667461598", "answers": [{"choice_id": "4385174186"}]}]}]}, "emitted_at": 1681238102527}
+{"stream": "survey_responses", "data": {"id": "12731193598", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843682", "survey_id": "307785402", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=mqmf_2BkbhXVJbx4WQXC0_2F72pU_2FFf6FkOVA8_2F7REJy4j9HAEPKg_2BCPmL8F2wfc6SKi", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731193598", "total_time": 37, "date_modified": "2021-06-10T09:58:58+00:00", "date_created": "2021-06-10T09:58:20+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785402/responses/12731193598", "pages": [{"id": "168831357", "questions": []}, {"id": "168831358", "questions": [{"id": "667461529", "answers": [{"choice_id": "4385173539"}]}, {"id": "667461530", "answers": [{"choice_id": "4385173553"}]}, {"id": "667461549", "answers": [{"choice_id": "4385173657"}]}, {"id": "667461551", "answers": [{"choice_id": "4385173676"}]}, {"id": "667461553", "answers": [{"choice_id": "4385173681"}]}]}, {"id": "168831365", "questions": [{"id": "667461555", "answers": [{"choice_id": "4385173714"}]}, {"id": "667461558", "answers": [{"choice_id": "4385173733"}]}, {"id": "667461561", "answers": [{"choice_id": "4385173757"}]}, {"id": "667461580", "answers": [{"choice_id": "4385174065"}]}, {"id": "667461598", "answers": [{"choice_id": "4385174185"}]}]}]}, "emitted_at": 1681238102527}
+{"stream": "survey_responses", "data": {"id": "12731213708", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843682", "survey_id": "307785402", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=FmbWXWfmfbsDK8MEuKSsHPviZSUYgchniK99dQeGSFpf_2BWnh6cTWlg0o5YRIRtn7", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731213708", "total_time": 33, "date_modified": "2021-06-10T10:06:59+00:00", "date_created": "2021-06-10T10:06:25+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785402/responses/12731213708", "pages": [{"id": "168831357", "questions": []}, {"id": "168831358", "questions": [{"id": "667461529", "answers": [{"choice_id": "4385173537"}]}, {"id": "667461530", "answers": [{"choice_id": "4385173550"}]}, {"id": "667461549", "answers": [{"choice_id": "4385173663"}]}, {"id": "667461551", "answers": [{"choice_id": "4385173677"}]}, {"id": "667461553", "answers": [{"choice_id": "4385173683"}]}]}, {"id": "168831365", "questions": [{"id": "667461555", "answers": [{"choice_id": "4385173712"}]}, {"id": "667461558", "answers": [{"choice_id": "4385173729"}]}, {"id": "667461561", "answers": [{"choice_id": "4385173755"}]}, {"id": "667461580", "answers": [{"choice_id": "4385174061"}]}, {"id": "667461598", "answers": [{"choice_id": "4385174182"}]}]}]}, "emitted_at": 1681238102527}
+{"stream": "survey_responses", "data": {"id": "12731233283", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843682", "survey_id": "307785402", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=VRo6oIX2X5OOWhsAVRYKuhrXr5zszr6duv29Vq3RdwAJMtFNcQqAJk71Bi4Oq3Bo", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731233283", "total_time": 33, "date_modified": "2021-06-10T10:14:47+00:00", "date_created": "2021-06-10T10:14:13+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785402/responses/12731233283", "pages": [{"id": "168831357", "questions": []}, {"id": "168831358", "questions": [{"id": "667461529", "answers": [{"choice_id": "4385173540"}]}, {"id": "667461530", "answers": [{"choice_id": "4385173554"}]}, {"id": "667461549", "answers": [{"choice_id": "4385173656"}]}, {"id": "667461551", "answers": [{"choice_id": "4385173676"}]}, {"id": "667461553", "answers": [{"choice_id": "4385173679"}]}]}, {"id": "168831365", "questions": [{"id": "667461555", "answers": [{"choice_id": "4385173715"}]}, {"id": "667461558", "answers": [{"choice_id": "4385173727"}]}, {"id": "667461561", "answers": [{"choice_id": "4385173756"}]}, {"id": "667461580", "answers": [{"choice_id": "4385174063"}]}, {"id": "667461598", "answers": [{"choice_id": "4385174185"}]}]}]}, "emitted_at": 1681238102528}
+{"stream": "survey_responses", "data": {"id": "12731252105", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843682", "survey_id": "307785402", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=TQiDe8sSx4_2FuWzT1Lr7RKGOBO2iwOmTuPPOzcvcHL45tRjbdZSW9UHv6_2B2nLtY6n", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731252105", "total_time": 34, "date_modified": "2021-06-10T10:22:37+00:00", "date_created": "2021-06-10T10:22:03+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785402/responses/12731252105", "pages": [{"id": "168831357", "questions": []}, {"id": "168831358", "questions": [{"id": "667461529", "answers": [{"choice_id": "4385173537"}]}, {"id": "667461530", "answers": [{"choice_id": "4385173552"}]}, {"id": "667461549", "answers": [{"choice_id": "4385173659"}]}, {"id": "667461551", "answers": [{"choice_id": "4385173675"}]}, {"id": "667461553", "answers": [{"choice_id": "4385173682"}]}]}, {"id": "168831365", "questions": [{"id": "667461555", "answers": [{"choice_id": "4385173712"}]}, {"id": "667461558", "answers": [{"choice_id": "4385173731"}]}, {"id": "667461561", "answers": [{"choice_id": "4385173755"}]}, {"id": "667461580", "answers": [{"choice_id": "4385174062"}]}, {"id": "667461598", "answers": [{"choice_id": "4385174182"}]}]}]}, "emitted_at": 1681238102529}
+{"stream": "survey_responses", "data": {"id": "12731270690", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843682", "survey_id": "307785402", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=ipONp_2F6FrM7HwOh1_2BpJXXqL65aZR6EN_2BmCdmmlM4Etuv_2BqfU5P8wsYtpW2_2BvsbR2", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731270690", "total_time": 33, "date_modified": "2021-06-10T10:30:16+00:00", "date_created": "2021-06-10T10:29:42+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785402/responses/12731270690", "pages": [{"id": "168831357", "questions": []}, {"id": "168831358", "questions": [{"id": "667461529", "answers": [{"choice_id": "4385173536"}]}, {"id": "667461530", "answers": [{"choice_id": "4385173550"}]}, {"id": "667461549", "answers": [{"choice_id": "4385173656"}]}, {"id": "667461551", "answers": [{"choice_id": "4385173677"}]}, {"id": "667461553", "answers": [{"choice_id": "4385173681"}]}]}, {"id": "168831365", "questions": [{"id": "667461555", "answers": [{"choice_id": "4385173715"}]}, {"id": "667461558", "answers": [{"choice_id": "4385173734"}]}, {"id": "667461561", "answers": [{"choice_id": "4385173757"}]}, {"id": "667461580", "answers": [{"choice_id": "4385174064"}]}, {"id": "667461598", "answers": [{"choice_id": "4385174186"}]}]}]}, "emitted_at": 1681238102529}
+{"stream": "survey_responses", "data": {"id": "12731290962", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843682", "survey_id": "307785402", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=eWOUaV5xBiUO9JblKm5rYeLfk2_2FPRiygYknRKYIPlBC3Vl9805OBGP8f2kjnm0r2", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731290962", "total_time": 33, "date_modified": "2021-06-10T10:38:22+00:00", "date_created": "2021-06-10T10:37:48+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785402/responses/12731290962", "pages": [{"id": "168831357", "questions": []}, {"id": "168831358", "questions": [{"id": "667461529", "answers": [{"choice_id": "4385173538"}]}, {"id": "667461530", "answers": [{"choice_id": "4385173553"}]}, {"id": "667461549", "answers": [{"choice_id": "4385173658"}]}, {"id": "667461551", "answers": [{"choice_id": "4385173675"}]}, {"id": "667461553", "answers": [{"choice_id": "4385173678"}]}]}, {"id": "168831365", "questions": [{"id": "667461555", "answers": [{"choice_id": "4385173715"}]}, {"id": "667461558", "answers": [{"choice_id": "4385173729"}]}, {"id": "667461561", "answers": [{"choice_id": "4385173757"}]}, {"id": "667461580", "answers": [{"choice_id": "4385174066"}]}, {"id": "667461598", "answers": [{"choice_id": "4385174182"}]}]}]}, "emitted_at": 1681238102530}
+{"stream": "survey_responses", "data": {"id": "12731310541", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843682", "survey_id": "307785402", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=wFNF4x4oPfyHaT5uvGstRuK1DUDfrHJyxBXB95bRgrB_2FdJojFuoGIhxA0BIH0XSO", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731310541", "total_time": 37, "date_modified": "2021-06-10T10:46:14+00:00", "date_created": "2021-06-10T10:45:37+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785402/responses/12731310541", "pages": [{"id": "168831357", "questions": []}, {"id": "168831358", "questions": [{"id": "667461529", "answers": [{"choice_id": "4385173540"}]}, {"id": "667461530", "answers": [{"choice_id": "4385173551"}]}, {"id": "667461549", "answers": [{"choice_id": "4385173661"}]}, {"id": "667461551", "answers": [{"choice_id": "4385173677"}]}, {"id": "667461553", "answers": [{"choice_id": "4385173682"}]}]}, {"id": "168831365", "questions": [{"id": "667461555", "answers": [{"choice_id": "4385173712"}]}, {"id": "667461558", "answers": [{"choice_id": "4385173732"}]}, {"id": "667461561", "answers": [{"choice_id": "4385173756"}]}, {"id": "667461580", "answers": [{"choice_id": "4385174059"}]}, {"id": "667461598", "answers": [{"choice_id": "4385174184"}]}]}]}, "emitted_at": 1681238102530}
+{"stream": "survey_responses", "data": {"id": "12731329746", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843682", "survey_id": "307785402", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=vGkpaT5QedSZDkH1LkdPEMwKHIlyZ2mKjKyt8tgek5uzfoU30oxZnac34WvjYm1h", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731329746", "total_time": 33, "date_modified": "2021-06-10T10:53:55+00:00", "date_created": "2021-06-10T10:53:21+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785402/responses/12731329746", "pages": [{"id": "168831357", "questions": []}, {"id": "168831358", "questions": [{"id": "667461529", "answers": [{"choice_id": "4385173540"}]}, {"id": "667461530", "answers": [{"choice_id": "4385173551"}]}, {"id": "667461549", "answers": [{"choice_id": "4385173661"}]}, {"id": "667461551", "answers": [{"choice_id": "4385173677"}]}, {"id": "667461553", "answers": [{"choice_id": "4385173682"}]}]}, {"id": "168831365", "questions": [{"id": "667461555", "answers": [{"choice_id": "4385173711"}]}, {"id": "667461558", "answers": [{"choice_id": "4385173732"}]}, {"id": "667461561", "answers": [{"choice_id": "4385173755"}]}, {"id": "667461580", "answers": [{"choice_id": "4385174059"}]}, {"id": "667461598", "answers": [{"choice_id": "4385174182"}]}]}]}, "emitted_at": 1681238102531}
+{"stream": "survey_responses", "data": {"id": "12731348717", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843682", "survey_id": "307785402", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=vuWK6q7Hz9dNybRoH2rP8Ux0qNc_2B0E3lMUmtDlPUbslKbHc7FranQhTJxg_2BIo3Pw", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731348717", "total_time": 26, "date_modified": "2021-06-10T11:01:30+00:00", "date_created": "2021-06-10T11:01:03+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785402/responses/12731348717", "pages": [{"id": "168831357", "questions": []}, {"id": "168831358", "questions": []}, {"id": "168831365", "questions": [{"id": "667461555", "answers": [{"choice_id": "4385173714"}]}, {"id": "667461558", "answers": [{"choice_id": "4385173729"}]}, {"id": "667461561", "answers": [{"choice_id": "4385173755"}]}, {"id": "667461580", "answers": [{"choice_id": "4385174059"}]}, {"id": "667461598", "answers": [{"choice_id": "4385174186"}]}]}]}, "emitted_at": 1681238102531}
+{"stream": "survey_responses", "data": {"id": "12731045521", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843688", "survey_id": "307785408", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=0SWEpDfTb_2FAVFz7Ddryxk5koNgVExk8Oke4TJ8tz6QD5Eqc7uoqHQWRcLUi7yOAb", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731045521", "total_time": 32, "date_modified": "2021-06-10T08:49:26+00:00", "date_created": "2021-06-10T08:48:54+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785408/responses/12731045521", "pages": [{"id": "168831381", "questions": []}, {"id": "168831382", "questions": [{"id": "667461606", "answers": [{"choice_id": "4385174255"}]}, {"id": "667461628", "answers": [{"choice_id": "4385174361"}]}, {"id": "667461630", "answers": [{"choice_id": "4385174372"}]}, {"id": "667461651", "answers": [{"choice_id": "4385174482"}]}, {"id": "667461652", "answers": [{"choice_id": "4385174496"}]}]}, {"id": "168831388", "questions": [{"id": "667461666", "answers": [{"choice_id": "4385174598"}]}, {"id": "667461670", "answers": [{"choice_id": "4385174621"}]}, {"id": "667461674", "answers": [{"choice_id": "4385174634"}]}, {"id": "667461676", "answers": [{"choice_id": "4385174649"}]}, {"id": "667461686", "answers": [{"choice_id": "4385174678"}]}]}]}, "emitted_at": 1681238104077}
+{"stream": "survey_responses", "data": {"id": "12731059832", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843688", "survey_id": "307785408", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=vhiMNZdaQtV6_2FPkJM_2BP8UtinkM87qYXz4VjmfwvWnjK1NFrLnN1P_2FH3w9GU7JUxX", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731059832", "total_time": 32, "date_modified": "2021-06-10T08:57:08+00:00", "date_created": "2021-06-10T08:56:36+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785408/responses/12731059832", "pages": [{"id": "168831381", "questions": []}, {"id": "168831382", "questions": [{"id": "667461606", "answers": [{"choice_id": "4385174252"}]}, {"id": "667461628", "answers": [{"choice_id": "4385174361"}]}, {"id": "667461630", "answers": [{"choice_id": "4385174370"}]}, {"id": "667461651", "answers": [{"choice_id": "4385174485"}]}, {"id": "667461652", "answers": [{"choice_id": "4385174497"}]}]}, {"id": "168831388", "questions": [{"id": "667461666", "answers": [{"choice_id": "4385174600"}]}, {"id": "667461670", "answers": [{"choice_id": "4385174621"}]}, {"id": "667461674", "answers": [{"choice_id": "4385174635"}]}, {"id": "667461676", "answers": [{"choice_id": "4385174644"}]}, {"id": "667461686", "answers": [{"choice_id": "4385174677"}]}]}]}, "emitted_at": 1681238104078}
+{"stream": "survey_responses", "data": {"id": "12731074829", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843688", "survey_id": "307785408", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=ZUZi7r7io9fCwXP7l4K5oirdqpAhNEdbesFS73p617lSOzxuK5oKGDsqiK8zdA8E", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731074829", "total_time": 31, "date_modified": "2021-06-10T09:04:52+00:00", "date_created": "2021-06-10T09:04:20+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785408/responses/12731074829", "pages": [{"id": "168831381", "questions": []}, {"id": "168831382", "questions": [{"id": "667461606", "answers": [{"choice_id": "4385174255"}]}, {"id": "667461628", "answers": [{"choice_id": "4385174360"}]}, {"id": "667461630", "answers": [{"choice_id": "4385174372"}]}, {"id": "667461651", "answers": [{"choice_id": "4385174485"}]}, {"id": "667461652", "answers": [{"choice_id": "4385174498"}]}]}, {"id": "168831388", "questions": [{"id": "667461666", "answers": [{"choice_id": "4385174599"}]}, {"id": "667461670", "answers": [{"choice_id": "4385174622"}]}, {"id": "667461674", "answers": [{"choice_id": "4385174634"}]}, {"id": "667461676", "answers": [{"choice_id": "4385174645"}]}, {"id": "667461686", "answers": [{"choice_id": "4385174678"}]}]}]}, "emitted_at": 1681238104078}
+{"stream": "survey_responses", "data": {"id": "12731091270", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843688", "survey_id": "307785408", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=eL4vDkGrDZfi5BiJC001E_2FoL_2Bo1mAtZxB97VuOw0Ue7x2Y_2Fvj9cWXWEFAG1_2For6z", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731091270", "total_time": 33, "date_modified": "2021-06-10T09:12:38+00:00", "date_created": "2021-06-10T09:12:05+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785408/responses/12731091270", "pages": [{"id": "168831381", "questions": []}, {"id": "168831382", "questions": [{"id": "667461606", "answers": [{"choice_id": "4385174252"}]}, {"id": "667461628", "answers": [{"choice_id": "4385174360"}]}, {"id": "667461630", "answers": [{"choice_id": "4385174372"}]}, {"id": "667461651", "answers": [{"choice_id": "4385174483"}]}, {"id": "667461652", "answers": [{"choice_id": "4385174493"}]}]}, {"id": "168831388", "questions": [{"id": "667461666", "answers": [{"choice_id": "4385174600"}]}, {"id": "667461670", "answers": [{"choice_id": "4385174623"}]}, {"id": "667461674", "answers": [{"choice_id": "4385174634"}]}, {"id": "667461676", "answers": [{"choice_id": "4385174646"}]}, {"id": "667461686", "answers": [{"choice_id": "4385174678"}]}]}]}, "emitted_at": 1681238104079}
+{"stream": "survey_responses", "data": {"id": "12731107632", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843688", "survey_id": "307785408", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=VzELV_2Bc1GPJfJsXsRIabrQVAi9_2BSDOS6F_2B68zR_2BP4u98MGtxvy_2BeSOjCh5s1HKa5", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731107632", "total_time": 32, "date_modified": "2021-06-10T09:20:17+00:00", "date_created": "2021-06-10T09:19:44+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785408/responses/12731107632", "pages": [{"id": "168831381", "questions": []}, {"id": "168831382", "questions": [{"id": "667461606", "answers": [{"choice_id": "4385174254"}]}, {"id": "667461628", "answers": [{"choice_id": "4385174360"}]}, {"id": "667461630", "answers": [{"choice_id": "4385174370"}]}, {"id": "667461651", "answers": [{"choice_id": "4385174483"}]}, {"id": "667461652", "answers": [{"choice_id": "4385174496"}]}]}, {"id": "168831388", "questions": [{"id": "667461666", "answers": [{"choice_id": "4385174598"}]}, {"id": "667461670", "answers": [{"choice_id": "4385174621"}]}, {"id": "667461674", "answers": [{"choice_id": "4385174636"}]}, {"id": "667461676", "answers": [{"choice_id": "4385174649"}]}, {"id": "667461686", "answers": [{"choice_id": "4385174678"}]}]}]}, "emitted_at": 1681238104079}
+{"stream": "survey_responses", "data": {"id": "12731124423", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843688", "survey_id": "307785408", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=QIT1tkBlcTVTBkkHm7dpbWllNNXyBriN0RSobCplWUm5LoJpA_2FC93B5N8fFbc0Zs", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731124423", "total_time": 31, "date_modified": "2021-06-10T09:28:00+00:00", "date_created": "2021-06-10T09:27:28+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785408/responses/12731124423", "pages": [{"id": "168831381", "questions": []}, {"id": "168831382", "questions": [{"id": "667461606", "answers": [{"choice_id": "4385174252"}]}, {"id": "667461628", "answers": [{"choice_id": "4385174362"}]}, {"id": "667461630", "answers": [{"choice_id": "4385174371"}]}, {"id": "667461651", "answers": [{"choice_id": "4385174484"}]}, {"id": "667461652", "answers": [{"choice_id": "4385174498"}]}]}, {"id": "168831388", "questions": [{"id": "667461666", "answers": [{"choice_id": "4385174598"}]}, {"id": "667461670", "answers": [{"choice_id": "4385174620"}]}, {"id": "667461674", "answers": [{"choice_id": "4385174634"}]}, {"id": "667461676", "answers": [{"choice_id": "4385174645"}]}, {"id": "667461686", "answers": [{"choice_id": "4385174677"}]}]}]}, "emitted_at": 1681238104080}
+{"stream": "survey_responses", "data": {"id": "12731142107", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843688", "survey_id": "307785408", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=URkLmYAmILJkZgOzrwRncRyLAGrxL_2FGHdeqmjSqrSYjS_2F7cjqy4e3nBWqRsOOv0r", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731142107", "total_time": 31, "date_modified": "2021-06-10T09:35:42+00:00", "date_created": "2021-06-10T09:35:10+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785408/responses/12731142107", "pages": [{"id": "168831381", "questions": []}, {"id": "168831382", "questions": [{"id": "667461606", "answers": [{"choice_id": "4385174252"}]}, {"id": "667461628", "answers": [{"choice_id": "4385174361"}]}, {"id": "667461630", "answers": [{"choice_id": "4385174370"}]}, {"id": "667461651", "answers": [{"choice_id": "4385174482"}]}, {"id": "667461652", "answers": [{"choice_id": "4385174498"}]}]}, {"id": "168831388", "questions": [{"id": "667461666", "answers": [{"choice_id": "4385174601"}]}, {"id": "667461670", "answers": [{"choice_id": "4385174621"}]}, {"id": "667461674", "answers": [{"choice_id": "4385174636"}]}, {"id": "667461676", "answers": [{"choice_id": "4385174643"}]}, {"id": "667461686", "answers": [{"choice_id": "4385174677"}]}]}]}, "emitted_at": 1681238104080}
+{"stream": "survey_responses", "data": {"id": "12731159230", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843688", "survey_id": "307785408", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=O0O262_2ByzCPZXGbz3NLSBdAJfB9rNAyLSz4YX4ubxd_2BIrVIo2jJ_2Bzk8KQNxCcjXb", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731159230", "total_time": 31, "date_modified": "2021-06-10T09:43:20+00:00", "date_created": "2021-06-10T09:42:49+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785408/responses/12731159230", "pages": [{"id": "168831381", "questions": []}, {"id": "168831382", "questions": [{"id": "667461606", "answers": [{"choice_id": "4385174252"}]}, {"id": "667461628", "answers": [{"choice_id": "4385174361"}]}, {"id": "667461630", "answers": [{"choice_id": "4385174371"}]}, {"id": "667461651", "answers": [{"choice_id": "4385174482"}]}, {"id": "667461652", "answers": [{"choice_id": "4385174497"}]}]}, {"id": "168831388", "questions": [{"id": "667461666", "answers": [{"choice_id": "4385174600"}]}, {"id": "667461670", "answers": [{"choice_id": "4385174623"}]}, {"id": "667461674", "answers": [{"choice_id": "4385174636"}]}, {"id": "667461676", "answers": [{"choice_id": "4385174643"}]}, {"id": "667461686", "answers": [{"choice_id": "4385174677"}]}]}]}, "emitted_at": 1681238104080}
+{"stream": "survey_responses", "data": {"id": "12731176347", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843688", "survey_id": "307785408", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=LVM3eoF2xyKmckO7bkvBEw0i_2FoajMZMA_2Fc_2FVcI95ReDdVUuQQ_2Babxm1nILbPUISC", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731176347", "total_time": 33, "date_modified": "2021-06-10T09:51:04+00:00", "date_created": "2021-06-10T09:50:30+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785408/responses/12731176347", "pages": [{"id": "168831381", "questions": []}, {"id": "168831382", "questions": [{"id": "667461606", "answers": [{"choice_id": "4385174253"}]}, {"id": "667461628", "answers": [{"choice_id": "4385174361"}]}, {"id": "667461630", "answers": [{"choice_id": "4385174370"}]}, {"id": "667461651", "answers": [{"choice_id": "4385174486"}]}, {"id": "667461652", "answers": [{"choice_id": "4385174497"}]}]}, {"id": "168831388", "questions": [{"id": "667461666", "answers": [{"choice_id": "4385174600"}]}, {"id": "667461670", "answers": [{"choice_id": "4385174621"}]}, {"id": "667461674", "answers": [{"choice_id": "4385174634"}]}, {"id": "667461676", "answers": [{"choice_id": "4385174649"}]}, {"id": "667461686", "answers": [{"choice_id": "4385174676"}]}]}]}, "emitted_at": 1681238104081}
+{"stream": "survey_responses", "data": {"id": "12731195152", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843688", "survey_id": "307785408", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=SDlGK5Xxc7lpBehXWM_2B47eY24yPtwGB4NBBehIidUXtChXAXOgjA_2F8CxAHW97nUA", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731195152", "total_time": 35, "date_modified": "2021-06-10T09:59:39+00:00", "date_created": "2021-06-10T09:59:03+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785408/responses/12731195152", "pages": [{"id": "168831381", "questions": []}, {"id": "168831382", "questions": [{"id": "667461606", "answers": [{"choice_id": "4385174253"}]}, {"id": "667461628", "answers": [{"choice_id": "4385174360"}]}, {"id": "667461630", "answers": [{"choice_id": "4385174372"}]}, {"id": "667461651", "answers": [{"choice_id": "4385174485"}]}, {"id": "667461652", "answers": [{"choice_id": "4385174497"}]}]}, {"id": "168831388", "questions": [{"id": "667461666", "answers": [{"choice_id": "4385174598"}]}, {"id": "667461670", "answers": [{"choice_id": "4385174621"}]}, {"id": "667461674", "answers": [{"choice_id": "4385174635"}]}, {"id": "667461676", "answers": [{"choice_id": "4385174647"}]}, {"id": "667461686", "answers": [{"choice_id": "4385174677"}]}]}]}, "emitted_at": 1681238104081}
+{"stream": "survey_responses", "data": {"id": "12731215248", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843688", "survey_id": "307785408", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=ft3pzaYpicC1h6Ah26Wj0wRkCmTK1Yu7BTxxTQ0po_2FC00oJaK3YHuX9XV5WB5T60", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731215248", "total_time": 32, "date_modified": "2021-06-10T10:07:34+00:00", "date_created": "2021-06-10T10:07:02+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785408/responses/12731215248", "pages": [{"id": "168831381", "questions": []}, {"id": "168831382", "questions": [{"id": "667461606", "answers": [{"choice_id": "4385174253"}]}, {"id": "667461628", "answers": [{"choice_id": "4385174360"}]}, {"id": "667461630", "answers": [{"choice_id": "4385174370"}]}, {"id": "667461651", "answers": [{"choice_id": "4385174485"}]}, {"id": "667461652", "answers": [{"choice_id": "4385174493"}]}]}, {"id": "168831388", "questions": [{"id": "667461666", "answers": [{"choice_id": "4385174599"}]}, {"id": "667461670", "answers": [{"choice_id": "4385174623"}]}, {"id": "667461674", "answers": [{"choice_id": "4385174635"}]}, {"id": "667461676", "answers": [{"choice_id": "4385174646"}]}, {"id": "667461686", "answers": [{"choice_id": "4385174676"}]}]}]}, "emitted_at": 1681238104082}
+{"stream": "survey_responses", "data": {"id": "12731234853", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843688", "survey_id": "307785408", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=2W_2B7kOeuvhHSN7s0oUQZQwt3iySUHWLv5qq0xw8gojd0RWsFcAMM6NILAk_2FZJbdX", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731234853", "total_time": 31, "date_modified": "2021-06-10T10:15:23+00:00", "date_created": "2021-06-10T10:14:51+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785408/responses/12731234853", "pages": [{"id": "168831381", "questions": []}, {"id": "168831382", "questions": [{"id": "667461606", "answers": [{"choice_id": "4385174252"}]}, {"id": "667461628", "answers": [{"choice_id": "4385174361"}]}, {"id": "667461630", "answers": [{"choice_id": "4385174372"}]}, {"id": "667461651", "answers": [{"choice_id": "4385174485"}]}, {"id": "667461652", "answers": [{"choice_id": "4385174497"}]}]}, {"id": "168831388", "questions": [{"id": "667461666", "answers": [{"choice_id": "4385174601"}]}, {"id": "667461670", "answers": [{"choice_id": "4385174622"}]}, {"id": "667461674", "answers": [{"choice_id": "4385174634"}]}, {"id": "667461676", "answers": [{"choice_id": "4385174650"}]}, {"id": "667461686", "answers": [{"choice_id": "4385174678"}]}]}]}, "emitted_at": 1681238104082}
+{"stream": "survey_responses", "data": {"id": "12731253651", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843688", "survey_id": "307785408", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=0yectjqXWcCHTMhyv3pd4HqlpH_2FjslmIWhw59V07Em7ASx_2FsHGk5ZFvSKThLEb3f", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731253651", "total_time": 31, "date_modified": "2021-06-10T10:23:12+00:00", "date_created": "2021-06-10T10:22:41+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785408/responses/12731253651", "pages": [{"id": "168831381", "questions": []}, {"id": "168831382", "questions": [{"id": "667461606", "answers": [{"choice_id": "4385174252"}]}, {"id": "667461628", "answers": [{"choice_id": "4385174362"}]}, {"id": "667461630", "answers": [{"choice_id": "4385174370"}]}, {"id": "667461651", "answers": [{"choice_id": "4385174482"}]}, {"id": "667461652", "answers": [{"choice_id": "4385174497"}]}]}, {"id": "168831388", "questions": [{"id": "667461666", "answers": [{"choice_id": "4385174600"}]}, {"id": "667461670", "answers": [{"choice_id": "4385174621"}]}, {"id": "667461674", "answers": [{"choice_id": "4385174636"}]}, {"id": "667461676", "answers": [{"choice_id": "4385174646"}]}, {"id": "667461686", "answers": [{"choice_id": "4385174677"}]}]}]}, "emitted_at": 1681238104082}
+{"stream": "survey_responses", "data": {"id": "12731272195", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843688", "survey_id": "307785408", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=owJREFrbM6_2Fu6fqPiWbW3rJ15U9q9DLJ_2BlAZMq6Gi_2BGKjQ2AGiWVNE5RBM_2FKLyMs", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731272195", "total_time": 31, "date_modified": "2021-06-10T10:30:52+00:00", "date_created": "2021-06-10T10:30:20+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785408/responses/12731272195", "pages": [{"id": "168831381", "questions": []}, {"id": "168831382", "questions": [{"id": "667461606", "answers": [{"choice_id": "4385174255"}]}, {"id": "667461628", "answers": [{"choice_id": "4385174361"}]}, {"id": "667461630", "answers": [{"choice_id": "4385174371"}]}, {"id": "667461651", "answers": [{"choice_id": "4385174482"}]}, {"id": "667461652", "answers": [{"choice_id": "4385174495"}]}]}, {"id": "168831388", "questions": [{"id": "667461666", "answers": [{"choice_id": "4385174600"}]}, {"id": "667461670", "answers": [{"choice_id": "4385174623"}]}, {"id": "667461674", "answers": [{"choice_id": "4385174634"}]}, {"id": "667461676", "answers": [{"choice_id": "4385174646"}]}, {"id": "667461686", "answers": [{"choice_id": "4385174677"}]}]}]}, "emitted_at": 1681238104083}
+{"stream": "survey_responses", "data": {"id": "12731292534", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843688", "survey_id": "307785408", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=zAYnDyr9Dxd9Em4YpxVpKH7_2BtJbsMFiI0bH89dH2LhhokCrBrNjKYFI0nacFEIpq", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731292534", "total_time": 32, "date_modified": "2021-06-10T10:38:57+00:00", "date_created": "2021-06-10T10:38:25+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785408/responses/12731292534", "pages": [{"id": "168831381", "questions": []}, {"id": "168831382", "questions": [{"id": "667461606", "answers": [{"choice_id": "4385174254"}]}, {"id": "667461628", "answers": [{"choice_id": "4385174362"}]}, {"id": "667461630", "answers": [{"choice_id": "4385174370"}]}, {"id": "667461651", "answers": [{"choice_id": "4385174483"}]}, {"id": "667461652", "answers": [{"choice_id": "4385174494"}]}]}, {"id": "168831388", "questions": [{"id": "667461666", "answers": [{"choice_id": "4385174599"}]}, {"id": "667461670", "answers": [{"choice_id": "4385174623"}]}, {"id": "667461674", "answers": [{"choice_id": "4385174634"}]}, {"id": "667461676", "answers": [{"choice_id": "4385174649"}]}, {"id": "667461686", "answers": [{"choice_id": "4385174678"}]}]}]}, "emitted_at": 1681238104083}
+{"stream": "survey_responses", "data": {"id": "12731312208", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843688", "survey_id": "307785408", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=uSGoF1sumsyf_2B3iBhadh_2F73k_2BM0dxEwFfAlWl70AwraHwQHcfj64cL0FUt9StbRx", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731312208", "total_time": 34, "date_modified": "2021-06-10T10:46:52+00:00", "date_created": "2021-06-10T10:46:18+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785408/responses/12731312208", "pages": [{"id": "168831381", "questions": []}, {"id": "168831382", "questions": [{"id": "667461606", "answers": [{"choice_id": "4385174255"}]}, {"id": "667461628", "answers": [{"choice_id": "4385174361"}]}, {"id": "667461630", "answers": [{"choice_id": "4385174371"}]}, {"id": "667461651", "answers": [{"choice_id": "4385174486"}]}, {"id": "667461652", "answers": [{"choice_id": "4385174495"}]}]}, {"id": "168831388", "questions": [{"id": "667461666", "answers": [{"choice_id": "4385174598"}]}, {"id": "667461670", "answers": [{"choice_id": "4385174621"}]}, {"id": "667461674", "answers": [{"choice_id": "4385174635"}]}, {"id": "667461676", "answers": [{"choice_id": "4385174643"}]}, {"id": "667461686", "answers": [{"choice_id": "4385174677"}]}]}]}, "emitted_at": 1681238104084}
+{"stream": "survey_responses", "data": {"id": "12731331308", "recipient_id": "", "collection_mode": "default", "response_status": "completed", "custom_value": "", "first_name": "", "last_name": "", "email_address": "", "ip_address": "91.242.192.88", "language": null, "logic_path": {}, "metadata": {"contact": {}}, "page_path": [], "collector_id": "405843688", "survey_id": "307785408", "custom_variables": {}, "edit_url": "https://www.surveymonkey.com/r/?sm=vQGF4JMphBOwv8kJxOmtjdRG81lTGr7CW73feMGxDEMLSwybystpUFV76KKxYQR6", "analyze_url": "https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731331308", "total_time": 31, "date_modified": "2021-06-10T10:54:29+00:00", "date_created": "2021-06-10T10:53:58+00:00", "href": "https://api.surveymonkey.com/v3/surveys/307785408/responses/12731331308", "pages": [{"id": "168831381", "questions": []}, {"id": "168831382", "questions": [{"id": "667461606", "answers": [{"choice_id": "4385174253"}]}, {"id": "667461628", "answers": [{"choice_id": "4385174362"}]}, {"id": "667461630", "answers": [{"choice_id": "4385174370"}]}, {"id": "667461651", "answers": [{"choice_id": "4385174486"}]}, {"id": "667461652", "answers": [{"choice_id": "4385174498"}]}]}, {"id": "168831388", "questions": [{"id": "667461666", "answers": [{"choice_id": "4385174598"}]}, {"id": "667461670", "answers": [{"choice_id": "4385174620"}]}, {"id": "667461674", "answers": [{"choice_id": "4385174636"}]}, {"id": "667461676", "answers": [{"choice_id": "4385174644"}]}, {"id": "667461686", "answers": [{"choice_id": "4385174676"}]}]}]}, "emitted_at": 1681238104084}
{"stream":"survey_pages","data":{"title":"sy4ara","description":"Сурвейманки жлобы","position":1,"question_count":13,"id":"165250506","href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506"},"emitted_at":1674149681286}
{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168831413","href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831413"},"emitted_at":1674149682414}
{"stream":"survey_pages","data":{"title":"xsgqdhdakh7x","description":"wlju6xsgkxyig0s1","position":2,"question_count":5,"id":"168831415","href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831415"},"emitted_at":1674149682415}
+{"stream":"survey_pages","data":{"title":"ajsn8v0tvicgt7u063","description":"dcwmhxdx6p8buu","position":3,"question_count":5,"id":"168831437","href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831437"},"emitted_at":1674149682415}
+{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168831459","href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831459"},"emitted_at":1674149683744}
+{"stream":"survey_pages","data":{"title":"ijw0pw2tlfb0vd3","description":"k8tycaedxbl4","position":2,"question_count":5,"id":"168831461","href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831461"},"emitted_at":1674149683744}
+{"stream":"survey_pages","data":{"title":"krd3l3bj7vaym6pc4","description":"oy458fugj0k","position":3,"question_count":5,"id":"168831467","href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831467"},"emitted_at":1674149683745}
+{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168831344","href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831344"},"emitted_at":1674149684444}
+{"stream":"survey_pages","data":{"title":"q4fuvltqc6","description":"7kfibw7aer8mr937a3ko","position":2,"question_count":5,"id":"168831345","href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831345"},"emitted_at":1674149684445}
+{"stream":"survey_pages","data":{"title":"p5sdpb0pus6","description":"o9gbkpmfik2x","position":3,"question_count":5,"id":"168831352","href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831352"},"emitted_at":1674149684445}
+{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168831357","href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831357"},"emitted_at":1674149685687}
+{"stream":"survey_pages","data":{"title":"133nvr2cx99r","description":"shwtfx0edv","position":2,"question_count":5,"id":"168831358","href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831358"},"emitted_at":1674149685687}
+{"stream":"survey_pages","data":{"title":"otgwn5b4wicdemu1q","description":"s3ndgrck3qr4898qwtgh","position":3,"question_count":5,"id":"168831365","href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831365"},"emitted_at":1674149685687}
+{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168831381","href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831381"},"emitted_at":1674149686909}
+{"stream":"survey_pages","data":{"title":"ooj54g8q2thh","description":"8hrryr258se","position":2,"question_count":5,"id":"168831382","href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831382"},"emitted_at":1674149686909}
+{"stream":"survey_pages","data":{"title":"mva5ojqgmx6wnv62as","description":"wq6q460p143mi0","position":3,"question_count":5,"id":"168831388","href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831388"},"emitted_at":1674149686909}
+{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168830049","href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830049"},"emitted_at":1674149687592}
+{"stream":"survey_pages","data":{"title":"v3q97ckq2438fqkppcyn","description":"oforikk3wu4gin","position":2,"question_count":5,"id":"168830050","href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830050"},"emitted_at":1674149687593}
+{"stream":"survey_pages","data":{"title":"t57ybjyll8fwgu39w","description":"ttlkuqp07ua6kpsh","position":3,"question_count":5,"id":"168830060","href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830060"},"emitted_at":1674149687594}
+{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168831470","href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831470"},"emitted_at":1674149688355}
+{"stream":"survey_pages","data":{"title":"q3wpp1ufpi5r058o","description":"ay91aymge2vuacmrl9co","position":2,"question_count":5,"id":"168831471","href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831471"},"emitted_at":1674149688356}
+{"stream":"survey_pages","data":{"title":"m345ab1u6tjjo4nn3d","description":"ec22umvdkhxd0ne575","position":3,"question_count":5,"id":"168831478","href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831478"},"emitted_at":1674149688357}
+{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168830093","href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830093"},"emitted_at":1674149689582}
+{"stream":"survey_pages","data":{"title":"7t9dgejtlw5wsofbt","description":"mfqrejibgc831bp31","position":2,"question_count":5,"id":"168830094","href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830094"},"emitted_at":1674149689583}
+{"stream":"survey_pages","data":{"title":"9kri0ao4fh8e3i0j2hms","description":"dh7qg9jc1k65x","position":3,"question_count":5,"id":"168830108","href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830108"},"emitted_at":1674149689583}
+{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168830067","href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830067"},"emitted_at":1674149690505}
+{"stream":"survey_pages","data":{"title":"9vpm4e5ecjis5hge0p","description":"r6e38n2fp33skkjrl","position":2,"question_count":5,"id":"168830068","href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830068"},"emitted_at":1674149690506}
+{"stream":"survey_pages","data":{"title":"nvv6kl2njpt5b1l2p","description":"rd2j09sxv4ssu976g","position":3,"question_count":5,"id":"168830074","href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830074"},"emitted_at":1674149690506}
+{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168830082","href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830082"},"emitted_at":1674149691681}
+{"stream":"survey_pages","data":{"title":"v1yxmq6n1ix","description":"aeoyc3hiak9vui1hevm","position":2,"question_count":5,"id":"168830083","href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830083"},"emitted_at":1674149691682}
+{"stream":"survey_pages","data":{"title":"g84sqoltkc2jen8iaj0","description":"ss2439kly1u4j1k1","position":3,"question_count":5,"id":"168830087","href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830087"},"emitted_at":1674149691682}
+{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168831335","href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831335"},"emitted_at":1674149692346}
+{"stream":"survey_pages","data":{"title":"k91l1laduo8","description":"4tmb1eke23bi1l2ev","position":2,"question_count":5,"id":"168831336","href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831336"},"emitted_at":1674149692347}
+{"stream":"survey_pages","data":{"title":"gisj5ms868kxxv","description":"4g1iiqg0sa15pbk","position":3,"question_count":5,"id":"168831340","href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831340"},"emitted_at":1674149692348}
+{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168831392","href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831392"},"emitted_at":1674149693064}
+{"stream":"survey_pages","data":{"title":"p71uerk2uh7k5","description":"92cb9d98j15jmfo","position":2,"question_count":5,"id":"168831393","href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831393"},"emitted_at":1674149693064}
+{"stream":"survey_pages","data":{"title":"bqd6mn6bdgv5u1rnstkx","description":"e0jrpexyx6t","position":3,"question_count":5,"id":"168831402","href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831402"},"emitted_at":1674149693065}
+{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"36710109","href":"https://api.surveymonkey.com/v3/surveys/510388524/pages/36710109"},"emitted_at":1674149694191}
{"stream":"survey_questions","data":{"id":"652286724","position":1,"visible":true,"family":"click_map","subtype":"single","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"Click on the area you like best about this product.","image":{"url":"https://surveymonkey-assets.s3.amazonaws.com/survey/306079584/20535460-8f99-41b0-ac96-b9f4f2aecb96.png"}}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286724","answers":{"rows":[{"position":1,"visible":true,"text":"Click 1","id":"4285525098"}]},"page_id":"165250506"},"emitted_at":1674149694470}
{"stream":"survey_questions","data":{"id":"652286725","position":2,"visible":true,"family":"click_map","subtype":"single","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"Click on the area you like least about this product.","image":{"url":"https://surveymonkey-assets.s3.amazonaws.com/survey/306079584/79215d25-9dbc-4870-91cd-3a36778aae52.png"}}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286725","answers":{"rows":[{"position":1,"visible":true,"text":"Click 1","id":"4285525102"}]},"page_id":"165250506"},"emitted_at":1674149694470}
{"stream":"survey_questions","data":{"id":"652286726","position":3,"visible":true,"family":"open_ended","subtype":"essay","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"Why did you make that selection?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286726","page_id":"165250506"},"emitted_at":1674149694471}
+{"stream":"survey_questions","data":{"id":"652286715","position":4,"visible":true,"family":"single_choice","subtype":"vertical_two_col","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"What is your first reaction to the product?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286715","answers":{"choices":[{"position":1,"visible":true,"text":"Very positive","quiz_options":{"score":0},"id":"4285525063"},{"position":2,"visible":true,"text":"Somewhat positive","quiz_options":{"score":0},"id":"4285525064"},{"position":3,"visible":true,"text":"Neutral","quiz_options":{"score":0},"id":"4285525065"},{"position":4,"visible":true,"text":"Somewhat negative","quiz_options":{"score":0},"id":"4285525066"},{"position":5,"visible":true,"text":"Very negative","quiz_options":{"score":0},"id":"4285525067"}]},"page_id":"165250506"},"emitted_at":1674149694471}
+{"stream":"survey_questions","data":{"id":"652286721","position":5,"visible":true,"family":"single_choice","subtype":"vertical_two_col","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"How would you rate the quality of the product?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286721","answers":{"choices":[{"position":1,"visible":true,"text":"Very high quality","quiz_options":{"score":0},"id":"4285525083"},{"position":2,"visible":true,"text":"High quality","quiz_options":{"score":0},"id":"4285525084"},{"position":3,"visible":true,"text":"Neither high nor low quality","quiz_options":{"score":0},"id":"4285525085"},{"position":4,"visible":true,"text":"Low quality","quiz_options":{"score":0},"id":"4285525086"},{"position":5,"visible":true,"text":"Very low quality","quiz_options":{"score":0},"id":"4285525087"}]},"page_id":"165250506"},"emitted_at":1674149694472}
+{"stream":"survey_questions","data":{"id":"652286716","position":6,"visible":true,"family":"single_choice","subtype":"vertical_two_col","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"How innovative is the product?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286716","answers":{"choices":[{"position":1,"visible":true,"text":"Extremely innovative","quiz_options":{"score":0},"id":"4285525068"},{"position":2,"visible":true,"text":"Very innovative","quiz_options":{"score":0},"id":"4285525069"},{"position":3,"visible":true,"text":"Somewhat innovative","quiz_options":{"score":0},"id":"4285525070"},{"position":4,"visible":true,"text":"Not so innovative","quiz_options":{"score":0},"id":"4285525071"},{"position":5,"visible":true,"text":"Not at all innovative","quiz_options":{"score":0},"id":"4285525072"}]},"page_id":"165250506"},"emitted_at":1674149694473}
+{"stream":"survey_questions","data":{"id":"652286718","position":7,"visible":true,"family":"single_choice","subtype":"vertical_two_col","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"When you think about the product, do you think of it as something you need or don’t need?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286718","answers":{"choices":[{"position":1,"visible":true,"text":"Definitely need","quiz_options":{"score":0},"id":"4285525078"},{"position":2,"visible":true,"text":"Probably need","quiz_options":{"score":0},"id":"4285525079"},{"position":3,"visible":true,"text":"Neutral","quiz_options":{"score":0},"id":"4285525080"},{"position":4,"visible":true,"text":"Probably don’t need","quiz_options":{"score":0},"id":"4285525081"},{"position":5,"visible":true,"text":"Definitely don’t need","quiz_options":{"score":0},"id":"4285525082"}]},"page_id":"165250506"},"emitted_at":1674149694474}
+{"stream":"survey_questions","data":{"id":"652286722","position":8,"visible":true,"family":"single_choice","subtype":"vertical_two_col","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"How would you rate the value for money of the product?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286722","answers":{"choices":[{"position":1,"visible":true,"text":"Excellent","quiz_options":{"score":0},"id":"4285525088"},{"position":2,"visible":true,"text":"Above average","quiz_options":{"score":0},"id":"4285525089"},{"position":3,"visible":true,"text":"Average","quiz_options":{"score":0},"id":"4285525090"},{"position":4,"visible":true,"text":"Below average","quiz_options":{"score":0},"id":"4285525091"},{"position":5,"visible":true,"text":"Poor","quiz_options":{"score":0},"id":"4285525092"}]},"page_id":"165250506"},"emitted_at":1674149694474}
+{"stream":"survey_questions","data":{"id":"652286717","position":9,"visible":true,"family":"single_choice","subtype":"vertical_two_col","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"If the product were available today, how likely would you be to buy the product?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286717","answers":{"choices":[{"position":1,"visible":true,"text":"Extremely likely","quiz_options":{"score":0},"id":"4285525073"},{"position":2,"visible":true,"text":"Very likely","quiz_options":{"score":0},"id":"4285525074"},{"position":3,"visible":true,"text":"Somewhat likely","quiz_options":{"score":0},"id":"4285525075"},{"position":4,"visible":true,"text":"Not so likely","quiz_options":{"score":0},"id":"4285525076"},{"position":5,"visible":true,"text":"Not at all likely","quiz_options":{"score":0},"id":"4285525077"}]},"page_id":"165250506"},"emitted_at":1674149694475}
+{"stream":"survey_questions","data":{"id":"652286723","position":10,"visible":true,"family":"single_choice","subtype":"vertical_two_col","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"How likely are you to replace your current product with the product?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286723","answers":{"choices":[{"position":1,"visible":true,"text":"Extremely likely ","quiz_options":{"score":0},"id":"4285525093"},{"position":2,"visible":true,"text":"Very likely ","quiz_options":{"score":0},"id":"4285525094"},{"position":3,"visible":true,"text":"Somewhat likely","quiz_options":{"score":0},"id":"4285525095"},{"position":4,"visible":true,"text":"Not so likely","quiz_options":{"score":0},"id":"4285525096"},{"position":5,"visible":true,"text":"Not at all likely","quiz_options":{"score":0},"id":"4285525097"}]},"page_id":"165250506"},"emitted_at":1674149694475}
+{"stream":"survey_questions","data":{"id":"652286714","position":11,"visible":true,"family":"matrix","subtype":"rating","layout":{"bottom_spacing":0,"col_width":80,"col_width_format":"percent","left_spacing":0,"num_chars":null,"num_lines":null,"position":"new_row","right_spacing":0,"top_spacing":0,"width":100,"width_format":"percent"},"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"How likely is it that you would recommend our new product to a friend or colleague?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286714","answers":{"rows":[{"position":1,"visible":true,"text":"","id":"4285525061"}],"choices":[{"position":1,"visible":true,"text":"Not at all likely - 0","id":"4285525050","is_na":false,"weight":-100,"description":"Not at all likely"},{"position":2,"visible":true,"text":"1","id":"4285525051","is_na":false,"weight":-100,"description":""},{"position":3,"visible":true,"text":"2","id":"4285525052","is_na":false,"weight":-100,"description":""},{"position":4,"visible":true,"text":"3","id":"4285525053","is_na":false,"weight":-100,"description":""},{"position":5,"visible":true,"text":"4","id":"4285525054","is_na":false,"weight":-100,"description":""},{"position":6,"visible":true,"text":"5","id":"4285525055","is_na":false,"weight":-100,"description":""},{"position":7,"visible":true,"text":"6","id":"4285525056","is_na":false,"weight":-100,"description":""},{"position":8,"visible":true,"text":"7","id":"4285525057","is_na":false,"weight":0,"description":""},{"position":9,"visible":true,"text":"8","id":"4285525058","is_na":false,"weight":0,"description":""},{"position":10,"visible":true,"text":"9","id":"4285525059","is_na":false,"weight":100,"description":""},{"position":11,"visible":true,"text":"Extremely likely - 10","id":"4285525060","is_na":false,"weight":100,"description":"Extremely likely"}]},"page_id":"165250506"},"emitted_at":1674149694476}
+{"stream":"survey_questions","data":{"id":"652286719","position":12,"visible":true,"family":"open_ended","subtype":"essay","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"In your own words, what are the things that you like most about this new product?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286719","page_id":"165250506"},"emitted_at":1674149694476}
+{"stream":"survey_questions","data":{"id":"652286720","position":13,"visible":true,"family":"open_ended","subtype":"essay","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"In your own words, what are the things that you would most like to improve in this new product?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286720","page_id":"165250506"},"emitted_at":1674149694477}
+{"stream":"survey_questions","data":{"id":"667461858","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"vprw9pgg3d xiygcvd0suru k7rews838g6qc ndsukv2 7sa31urnvoskixw c52sg4uoete874i"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831415/questions/667461858","answers":{"choices":[{"position":1,"visible":true,"text":"m5kpo9621yynjey kdt5w6pkkit yqyocxqf yw1p3uh2e5b 7gtmvs4 6em5ugqat x6pmhcfrvq4pit t67pif54aj jbgure","quiz_options":{"score":0},"id":"4385175366"},{"position":2,"visible":true,"text":"usdfft kvi9yqh1m38w3m 6uxryyvhrk1 nfxlt gnhjy826e rqks3jjuyj9hd 3y8755o","quiz_options":{"score":0},"id":"4385175367"},{"position":3,"visible":true,"text":"m6xv3yca7 up9u0qwx23h2skj 0cjlw19k5emypgm awi5tg l9atp kv4jrd73y9","quiz_options":{"score":0},"id":"4385175368"},{"position":4,"visible":true,"text":"todhc7 krw2v8qa rt2iu19vhxyw1dp x6oav54yak4vj yu4le2fc7 fksvl ejbr7x2u69 k9n9n7g3f","quiz_options":{"score":0},"id":"4385175369"}]},"page_id":"168831415"},"emitted_at":1674149694578}
+{"stream":"survey_questions","data":{"id":"667461861","position":2,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"rl3uabslq46p mnwh0fle3xfs ejupx8e26q55va svfm11o"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831415/questions/667461861","answers":{"choices":[{"position":1,"visible":true,"text":"m6g15xqsuwpbh3 x0116lkpod 5vkgg7duiq23sp ot884xd67v6fv2q 1u2mpgo ttj3ehahbljf1j6 pwj46w1d","quiz_options":{"score":0},"id":"4385175380"},{"position":2,"visible":true,"text":"cuff7 mbn2k1hxd6n6 jg9kffdkccjh bpodqpt2wtxu 7x38qxmvg42ap qpv0cddfumvix s0vv161iytceelx","quiz_options":{"score":0},"id":"4385175381"},{"position":3,"visible":true,"text":"jm5q6yu4rn pl8wwv23lnxs ou5r8m3np4fis6 6wlatg yeh3kafns0 h8u0o8f yhqni064ev6","quiz_options":{"score":0},"id":"4385175382"}]},"page_id":"168831415"},"emitted_at":1674149694579}
+{"stream":"survey_questions","data":{"id":"667461876","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"hn4xnf ox0joj4inoy6ja jh02428n qeqxm9nopevjca sccwladi v63ks6mdqf0h0 4pug94eya 5et1g3t4 exbryyy6hv9mvd"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831415/questions/667461876","answers":{"choices":[{"position":1,"visible":true,"text":"w6nvr mkrj8q1g 740smg3nda m3afibg8 224jb59fon975t w9t8ma","quiz_options":{"score":0},"id":"4385175447"},{"position":2,"visible":true,"text":"cerw942pk xv1wg4gk4l7jq q3grdgasaol 75ghj ppo6ivm3r hxodiktx9rxs","quiz_options":{"score":0},"id":"4385175448"},{"position":3,"visible":true,"text":"5os82a1jwgygye 61dhsf6v sgy0ui7ib78ws7f j3pymv","quiz_options":{"score":0},"id":"4385175449"}]},"page_id":"168831415"},"emitted_at":1674149694580}
+{"stream":"survey_questions","data":{"id":"667461897","position":4,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"5a32s3dhl a967a54aoj3cr ttu0uk4hu4h1 r360wdohq1x9xu7 qvqpg1eb6qg3 01ogn ucbhive fpwstwi6hre0ynb xu3c3txpma7eoh3"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831415/questions/667461897","answers":{"choices":[{"position":1,"visible":true,"text":"6gngt 5w10n7fl47r07 68t8t79 66pqqth5urrw 1ve2kn385x0u9s 99vcfs08at","quiz_options":{"score":0},"id":"4385175533"},{"position":2,"visible":true,"text":"pnwrx dwj1dx dpdan1wpqs 9lhgks36 1w8a2utjbxas31t rlc1u51mdpjr 90tcj6i8ibicvxt q1ahtd2x doujpba kjjjdi0","quiz_options":{"score":0},"id":"4385175534"},{"position":3,"visible":true,"text":"wu74ewyb4grv fqb8h3yoldsn 0nxv5844yn0lpx jct7na y9sp3u ueq7vk83ix7g7sx f5sl73r2r29e84","quiz_options":{"score":0},"id":"4385175535"}]},"page_id":"168831415"},"emitted_at":1674149694581}
+{"stream":"survey_questions","data":{"id":"667461902","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"sdek6wejcdn 82r223sfhy6xkm5 65gns2m7phi 0fx8dx5bp psvndjnn5b 5kki467 a8faadeid0gl13 x2t3e 03xco2 cf39nv9mdq3vj"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831415/questions/667461902","answers":{"choices":[{"position":1,"visible":true,"text":"nfiq0 d7gwft9 8bhinfrsv6r6 k3vylofokamx3 9hrik k2ageb5amyj89a toli0yrsq bqbrcp","quiz_options":{"score":0},"id":"4385175559"},{"position":2,"visible":true,"text":"8c5qdiklqb8tb 5uhc6w1a1o9 er8h4w0mf779o 14nsksqs65j10","quiz_options":{"score":0},"id":"4385175561"},{"position":3,"visible":true,"text":"5wpggsufojm 4decq179m5 0brpk1la0kyno e8ctqi fxa4j0uo9atp","quiz_options":{"score":0},"id":"4385175563"},{"position":4,"visible":true,"text":"5it4y4q 49im15osxk2j0 j8twpv8j nei1egowtm9a lyrigqwu0eby tpg5o7kuvgn34l spdu5icxlc 2f4qf qb55g 8si14ri4bdw1v72","quiz_options":{"score":0},"id":"4385175564"}]},"page_id":"168831415"},"emitted_at":1674149694582}
+{"stream":"survey_questions","data":{"id":"667461933","position":1,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"4vnmxluvh7a l8s5r0i5ck pa7pckqf tnah7fan76p38n8 m1i5r ea9ib0t823amcn k98290k23wh7qn"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831437/questions/667461933","answers":{"choices":[{"position":1,"visible":true,"text":"aldwijo3p9mh3 v26dql0wbrctg0 98sqogqfmi2 558gsvip","quiz_options":{"score":0},"id":"4385175732"},{"position":2,"visible":true,"text":"c5fqe o43qm3oq9i 23qgoxg85 cg5hr5wj79469n 328j7ji1kugb 60jlwtbu4eoh63 alyho5","quiz_options":{"score":0},"id":"4385175733"},{"position":3,"visible":true,"text":"882jtclxvq15yk dgive oqhqdf a8a2rgxse4b8fw 87oeyfbk7 wcevsx 4mv1lyp6lyxysrm 3m8yayarq7wm 9bpmul9 el2j1j4yw","quiz_options":{"score":0},"id":"4385175734"},{"position":4,"visible":true,"text":"3so1buxa 88ypp61nq6bhi0 lwa2pfg6tg lra8e1r5bn4k umstgwdck9 wslq681gvn3g2f a20nr1eovr3 feo0p5bqbgrcvun np851e23cojfv1 uqlwg","quiz_options":{"score":0},"id":"4385175735"}]},"page_id":"168831437"},"emitted_at":1674149694582}
+{"stream":"survey_questions","data":{"id":"667461934","position":2,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"k6ba3wdl 6c0nvj5es h0dttl3krobdcd va6klkdyf 79e2a lhmov"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831437/questions/667461934","answers":{"choices":[{"position":1,"visible":true,"text":"h8dywnj ithq4el 98e20manw xxyp0f9oike55 t56arby dhmmxh4pehs","quiz_options":{"score":0},"id":"4385175736"},{"position":2,"visible":true,"text":"14p6263c 7khx2y rpjy6432cy7kkr 0po0vol3uk1cuf 1oejmy viircj9b nyw76yqpf","quiz_options":{"score":0},"id":"4385175737"},{"position":3,"visible":true,"text":"vtdf2x 2kme3 vhpqi5s82k7v4 1mjr5r jp0ox03i6t d5ef5228du3ck 536btd7etv","quiz_options":{"score":0},"id":"4385175738"},{"position":4,"visible":true,"text":"yt2e6nk6 v2wl4k047h1n5 civs8 tjjr7lkeay9i3","quiz_options":{"score":0},"id":"4385175739"}]},"page_id":"168831437"},"emitted_at":1674149694583}
+{"stream":"survey_questions","data":{"id":"667461936","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"u1jbhrxyrg30ra9 qs6b5m237lag 7tlvv 05okuge2imipht bg813 hixvf9bd9n10gk lwxdjnajbu9gsra uyh3fjd40bs"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831437/questions/667461936","answers":{"choices":[{"position":1,"visible":true,"text":"yl8yqqhtr9rxi 049x312 oogub1figyg4e tixix79g85hxi2l bin0fp5g goq3kwu2eaase x9mihu0erdhl9v4 4yausp34y2rgyx iwyfuo4b7yme8lr","quiz_options":{"score":0},"id":"4385175740"},{"position":2,"visible":true,"text":"gfqbxk8 3tosymacon00av uoxydvdy28 iuce5bjdvpg gwxdpkudg24ouk u2ns1u x10hujmiiy9l62i soln75a14nm8q0","quiz_options":{"score":0},"id":"4385175741"},{"position":3,"visible":true,"text":"j299iy64y804 k709a5kk9 yjsifyt4ksu b4fnp4a","quiz_options":{"score":0},"id":"4385175742"}]},"page_id":"168831437"},"emitted_at":1674149694584}
+{"stream":"survey_questions","data":{"id":"667461937","position":4,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"06qgl j7f89g3 5ok0ilvhvpa ojcs6ixbovvf u6xympul0 o00vc 6bjg7jmvy9s 543ndxd jmugw njqhxa3phj4jd"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831437/questions/667461937","answers":{"choices":[{"position":1,"visible":true,"text":"5v1hangb7u0bj8 44xo3y4o inytm95s16m dvn5e2leb6sf7 hamaw8l538eph 6xuyp5030i538c 0ym6m831 duar0bo76 kl36ykf5w9ugh","quiz_options":{"score":0},"id":"4385175745"},{"position":2,"visible":true,"text":"3iiaxf5dgi tr6crqs i51ocgg ka1ri0ffd8xeh cv12807q5pq 7fmq8lxy7 5wuas7gcn4kln tv6mf3pqq4jm x3yfr sm7idq2nvoonk","quiz_options":{"score":0},"id":"4385175746"},{"position":3,"visible":true,"text":"mj5cmssx3htoni ld622ppaiqr uw63p1q4up3 lfxioj94gd3jky0 2tj631 5ql6116xsyp r5hwhy2","quiz_options":{"score":0},"id":"4385175747"},{"position":4,"visible":true,"text":"llb9oe7fk8v3w4q xpd66rgbyp9m 0opo19df7n6 scr70cg86pn o1qtr7rclqxjl kmpnf79790 6wmig6mjwflh2vq 1oe033jyd","quiz_options":{"score":0},"id":"4385175748"},{"position":5,"visible":true,"text":"pg851 mju7py cdp1jqcaeg66 3gv05ohwromt u0uot","quiz_options":{"score":0},"id":"4385175749"},{"position":6,"visible":true,"text":"mu0hn799v 4ch8i7j5o5tf8s 6rn9y0ft67mchc u5ds14s9 aj1qg26dwf41suc i1mdhdk","quiz_options":{"score":0},"id":"4385175750"},{"position":7,"visible":true,"text":"6w4xjejtc9j 50n12 u1cdbulvkqykvci x79sdq9y hmbem37x7 s7pwufdjnmn xo8qy81a3fjmv","quiz_options":{"score":0},"id":"4385175751"},{"position":8,"visible":true,"text":"k582dst vgjvse b2h3mxi dteo4p9lrtx m54ug","quiz_options":{"score":0},"id":"4385175752"}]},"page_id":"168831437"},"emitted_at":1674149694585}
+{"stream":"survey_questions","data":{"id":"667461986","position":5,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"gjahy0fl7 fs6b3q6e7 rsvbmotgt9p7 w9l2l7 hvj8fhrqwc vays8 4yh7qch hjj5lx0 co6a5rqd 5pt79or0a7evc"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831437/questions/667461986","answers":{"choices":[{"position":1,"visible":true,"text":"b7fbynqu hwhvtbqwbmxy 9bjgxs1 1e05mo toj685p5v w34e97j","quiz_options":{"score":0},"id":"4385175878"},{"position":2,"visible":true,"text":"n5e5yl9c6 yw12588olh swl7nwm1dl9n2l 9v7n8wursm6739 p67woq9u27w7p y3ge5y1iji819g7 uklmy7q8 7ocv68por","quiz_options":{"score":0},"id":"4385175879"},{"position":3,"visible":true,"text":"h08nyyi 1393hst fcdij6j yepfw2","quiz_options":{"score":0},"id":"4385175880"},{"position":4,"visible":true,"text":"rdme8pwwjl07 4ju4xn47ofvbj i31u4ty4f4 wteatx2 gc3nqgji pu9h7","quiz_options":{"score":0},"id":"4385175881"},{"position":5,"visible":true,"text":"jxkod8gx x8tcsxxle4f0lv4 vcmjicpk7v i19dxl3 3lvmmdkx","quiz_options":{"score":0},"id":"4385175882"}]},"page_id":"168831437"},"emitted_at":1674149694587}
+{"stream":"survey_questions","data":{"id":"667462078","position":1,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"vrwr5e5qwxqu4 mn9jcdpf 0e5u3k ansge 2hwkipig u0wn3acc2sct xnv4y8 3irjcv i0cgva8762tfosw"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831461/questions/667462078","answers":{"choices":[{"position":1,"visible":true,"text":"55yvst1hihf4br ialhkcxm73fjln 1lelxuw93g0 nukml0","quiz_options":{"score":0},"id":"4385176721"},{"position":2,"visible":true,"text":"okdweedyn93 mua59r2l4haj orem637bgltyb 7jc2yral4o8qov j15ry fkkgjxdea rjd297yot eq57kefir4if3c 2l098 ech2y5fv","quiz_options":{"score":0},"id":"4385176722"},{"position":3,"visible":true,"text":"b3sgu7kkbjowg ux7qqyw41yb umfqpq6 dfgu4awr uy2i4j626 cb17jp5xal6","quiz_options":{"score":0},"id":"4385176723"},{"position":4,"visible":true,"text":"5igq4pw5ul la3i72sh30 uk24o0qi jh51hl9s3a43s 9tgq0ip8k1nev ar6it adgfobu491 f8qke95 o2f9u2ubb49t28c obyoj9cfsl","quiz_options":{"score":0},"id":"4385176724"},{"position":5,"visible":true,"text":"r73ge7qkd8mjfu d7kdhfmco d0pcoyqqyjrph4g 06xs83492x 5ajmrgy1 x4ev3aroh9q86r gwiu17g02i6h75c np3r62er4x5n 73hbkk43af 7f5b333hk7tkc","quiz_options":{"score":0},"id":"4385176725"},{"position":6,"visible":true,"text":"vo6u3 9gpy2s57xh u8dcib 4f8gbbng3wq0h36","quiz_options":{"score":0},"id":"4385176726"}]},"page_id":"168831461"},"emitted_at":1674149694691}
+{"stream":"survey_questions","data":{"id":"667462079","position":2,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"6d3w2gqt8056 h5vl4u3kcuvlqc lk2ip62d kpkowwj"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831461/questions/667462079","answers":{"choices":[{"position":1,"visible":true,"text":"agvpu24j1 g51hr01jbjsk vw6gq cftg9oeklijpda qbibhtf35pl4gtq wu48wsd5 c6jifqlyt4e","quiz_options":{"score":0},"id":"4385176727"},{"position":2,"visible":true,"text":"4kbb46n 0vmm0c4we qwaiv1f731l y8iaiu3bkcb6 loqrsy","quiz_options":{"score":0},"id":"4385176728"},{"position":3,"visible":true,"text":"rwm2cgejb qc4g9 7y68obgewd fou0um xh7dkb89o bfosq3 v9bdp7s9450","quiz_options":{"score":0},"id":"4385176729"}]},"page_id":"168831461"},"emitted_at":1674149694692}
+{"stream":"survey_questions","data":{"id":"667462082","position":3,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"dvpu842k yh6g475bbwk75 qtkq7f5yd01igo ixldsnn uqbpr ngarg6pf f6ueafaq 4ch8dhr nqsm5uydajns9"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831461/questions/667462082","answers":{"choices":[{"position":1,"visible":true,"text":"hfrp92k576cl 4yjdkhqj0vr9 qx16a oc86p8hhonp5xs fn4lo1wmewe5n7 sue7kinfb6 8qpyh auccq7xlw1b","quiz_options":{"score":0},"id":"4385176734"},{"position":2,"visible":true,"text":"lqon4mp qhj98iee7o 37f50nvkrs3va 18vxkbch636kh yn8ih 8jxqpq03v 6j5lurdu7c17 knmjb3 0868hyuu7","quiz_options":{"score":0},"id":"4385176735"},{"position":3,"visible":true,"text":"obj26 pb0pwmt gxvk8isp04c42 77ocbs1 y7jyxsbl vbbtsy d1t8el31vu7x6d r44iyhr2y810o0o","quiz_options":{"score":0},"id":"4385176736"},{"position":4,"visible":true,"text":"yebv8qvq dd5qeecs45k 2un02jrywfqf1 u96tcry54cxiyu mnbgr2mqe a43wm7 1rnggj b99hudv2g0kgor","quiz_options":{"score":0},"id":"4385176737"},{"position":5,"visible":true,"text":"b6v1txm65a40 h1sah8 84enie0e 57clim 2eew4","quiz_options":{"score":0},"id":"4385176738"},{"position":6,"visible":true,"text":"d88o04mls0oddci d61gj k4acpqp r3ugg2t1e55s ldb3ll5gjkn ruerq4w4w95j649 c3bea007si4t 4jp1ctllptvfao2 m78584fllehmi b9fpb","quiz_options":{"score":0},"id":"4385176739"}]},"page_id":"168831461"},"emitted_at":1674149694692}
+{"stream":"survey_questions","data":{"id":"667462084","position":4,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"n6y1nnlv45movkl vkjge u5wp4unnsf cp6y14e"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831461/questions/667462084","answers":{"choices":[{"position":1,"visible":true,"text":"2ak2bbt6l 958nphvdetkv4 ycoevsx u49by0 eohbcorqyd2fk","quiz_options":{"score":0},"id":"4385176763"},{"position":2,"visible":true,"text":"6lnrx0h 8rtivmuwxpy8wv ebygucb3xu1m42 iyep7ijy4gu0mvl s1oco7cxc0","quiz_options":{"score":0},"id":"4385176764"},{"position":3,"visible":true,"text":"m5ysyahej9ffbl hiob9pqg7je5r oqyup1bmda i142y odbg2sgkibp5a5n","quiz_options":{"score":0},"id":"4385176765"},{"position":4,"visible":true,"text":"r56bqr7ts07qj7l 0odv2rxnmffpw ctmr30tp61ibr l64xab0cs nmqjd 21rw3b cy2xks0me55b05","quiz_options":{"score":0},"id":"4385176766"},{"position":5,"visible":true,"text":"wjnn6f 4at64hj rif45s1bu9asypf vmjw8wv55isa 87va6t705w","quiz_options":{"score":0},"id":"4385176767"}]},"page_id":"168831461"},"emitted_at":1674149694693}
+{"stream":"survey_questions","data":{"id":"667462086","position":5,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ikhsonq7 fadyfis1w 1qmo7d2wgcq 5nht9h9j esydnd1m a5ehikxk6ypubk dtanss721p6"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831461/questions/667462086","answers":{"choices":[{"position":1,"visible":true,"text":"3p8dvrh6lr0 iejlsiah ch3n24c7d9tt 7w9rvdkxpqe8xh fo9jq7k8sa1 er31i44d633 xurs2ie khm8mmp5d8gc9 egn43 86jj22","quiz_options":{"score":0},"id":"4385176918"},{"position":2,"visible":true,"text":"r5qhjy06onu7loq n6htekeur 2xm1jh99 ibsp4oat8878fy 940xq9 n4tmuhn e5901s317nbq pevqvednus0ph8g","quiz_options":{"score":0},"id":"4385176919"},{"position":3,"visible":true,"text":"at4b6f9tud4tvpl uf1d5p jgci9m0u17qkj 8tmdkc9o lb7b63gth6 6ds89i5 uu91pd2ybc wwk60i ntwtf5enlg5h8o","quiz_options":{"score":0},"id":"4385176920"},{"position":4,"visible":true,"text":"ovrn2np gg0nxt88wji6fp ckphrf1l3 0um296qkhvgh","quiz_options":{"score":0},"id":"4385176921"}]},"page_id":"168831461"},"emitted_at":1674149694694}
+{"stream":"survey_questions","data":{"id":"667462094","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"uhxc9mpgrh9c9aa 05iqvfqi y8rip1qcmmxh b8jj5k cavri2y5 1sqge 7ywuxm3awoh ddul9pvje6dcr kggd2y4"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831467/questions/667462094","answers":{"choices":[{"position":1,"visible":true,"text":"t30umxtof3b6e 9o88p i9hcrmm57pq42 16pnnhw idraibx70sby1i","quiz_options":{"score":0},"id":"4385176959"},{"position":2,"visible":true,"text":"xnxw9wa4fo 157vk4i0d 1m9fluu gmmy39m41 icu2b548yd9p3o 3yj0tyamvyjci1 1c19qkbuqb031r","quiz_options":{"score":0},"id":"4385176960"},{"position":3,"visible":true,"text":"ehjwxib3hha9 bjj11etv shhdikfh1iy0u nioigschrcpqi2 v7mgatm l98c4no7k9 bf2j11cmi1dgbt2 f8etga4g kg2w2yngt62","quiz_options":{"score":0},"id":"4385176961"},{"position":4,"visible":true,"text":"uyqt6g2o61rc wcwn8q7ohbhegr wtwkdefljgy uli9v6","quiz_options":{"score":0},"id":"4385176962"},{"position":5,"visible":true,"text":"7pg26slappuq1 aw3vsgc4317be eqe9a8v6s5whg0 dvrw9imoe o9wl91vi282 4h7f26","quiz_options":{"score":0},"id":"4385176963"},{"position":6,"visible":true,"text":"wjipnxgtewp8r ddtad8 yqo4rj5x657nge ykw2qghp3e r3tqrvk1m7l ir60pwi5g5 h7exqf4","quiz_options":{"score":0},"id":"4385176964"},{"position":7,"visible":true,"text":"aafwgbh80 ip6mgadg 8ls8v4ss2fk4y s19ti1jvfnaey g0v4qdn ifk0ve j2trlbjolhuc3 op07p93t1xsh0 kqiw7s ktofe9muryqxe","quiz_options":{"score":0},"id":"4385176965"}]},"page_id":"168831467"},"emitted_at":1674149694694}
+{"stream":"survey_questions","data":{"id":"667462096","position":2,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"hh8r3c6evhaj2ug 34w4tpf8 b41jtyj tn7vh1hwl 7rrs5 p5rct6v9pg7k 7nw3etg9"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831467/questions/667462096","answers":{"choices":[{"position":1,"visible":true,"text":"4jlthohsbk gq1uy9yt 83htjom d5udup0g0jfsido a6nxtc2vkdn 7tfgt9 6e6wsq","quiz_options":{"score":0},"id":"4385176968"},{"position":2,"visible":true,"text":"nt9b0e1tk eq9ckgs2u2fiu probh n7929oe950jcs7c uvdxlffx66obu 6oschegtcq q2a7d hwp71gp7 s3b03f5p3g24h","quiz_options":{"score":0},"id":"4385176969"},{"position":3,"visible":true,"text":"u1p9r on01v021jli y4n4d2gpcbvk fe3y53pjwje6ms atckrpa2r44f 5lkaim1 coo8gs4mer wfbusogrereep 3r2i1qlkh6097d1","quiz_options":{"score":0},"id":"4385176970"},{"position":4,"visible":true,"text":"i4liv68323s xc5i56ba5pa osxulquad221n xbmov jnhv1ogkdw9","quiz_options":{"score":0},"id":"4385176971"},{"position":5,"visible":true,"text":"tlinp 6b4ig tcw2f9no5xm7stv qv6l4foeesgh","quiz_options":{"score":0},"id":"4385176972"},{"position":6,"visible":true,"text":"jfxlbnonc tee9khi75t0ah wr83dgnnsc0l pvyf5t266eq1ev","quiz_options":{"score":0},"id":"4385176973"},{"position":7,"visible":true,"text":"rv7aly5o19 y3hvj5byk uojji58u9thv w8dnv stba3pan 5yho9m1f3o097n7","quiz_options":{"score":0},"id":"4385176974"},{"position":8,"visible":true,"text":"0kmmyvxkq0ixg wmm2bnydk3xg nf2e5e3fn4e 0jd59 tu9bib d6i9t6 3ikku8yd42gnt 0uusc9kip2w","quiz_options":{"score":0},"id":"4385176975"}]},"page_id":"168831467"},"emitted_at":1674149694695}
+{"stream":"survey_questions","data":{"id":"667462099","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"952l4noismh4 jwlr6yhgbpo 9waador5oikm xg4aqk0w5o08j 7bg3d02bw22df 84xdy6eq34snqhk h4ngqp6rpih4 9jevsisqvxcv"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831467/questions/667462099","answers":{"choices":[{"position":1,"visible":true,"text":"lknhasa3eu03sf p1uflsed0h3sr q1b0gmga v8swv5rbv","quiz_options":{"score":0},"id":"4385176976"},{"position":2,"visible":true,"text":"u6hdwwqb4cc84s8 8jo8vmqx7 klsxteic7f 9m3mg59ov s7npsi1 89i5dq8chb 919k2r7u0t","quiz_options":{"score":0},"id":"4385176977"},{"position":3,"visible":true,"text":"xjpll0bpay536 2ex024o9rd 7boywqww rktvkxinf9fmoh 7d9cb06es933e jm2hsgge2cjy5jj 1ecnm8shkp a3flgyb gcf1622ijpsj ydnun9wos44","quiz_options":{"score":0},"id":"4385176978"},{"position":4,"visible":true,"text":"n7q0ogrerpn8dl qmip86lbe sl1xjutnlap7 3bov7 5fihf81ek49s 9p0f4 r1rptp","quiz_options":{"score":0},"id":"4385176979"},{"position":5,"visible":true,"text":"kwdbb5 hi349arw9 r2f0df eee097e k5035hpewmi6 ky0f9 kh7oio2u0bilxue 5l0moimxob7fid oeno82n5rkplm6i","quiz_options":{"score":0},"id":"4385176980"},{"position":6,"visible":true,"text":"finhomjk 48ciiw7x1g2f c50x4 9kenej45r","quiz_options":{"score":0},"id":"4385176981"},{"position":7,"visible":true,"text":"e7ravpe7reoe5il 9kgwh794cl9x0w snp3wnpq1ryga p4vpk03q7","quiz_options":{"score":0},"id":"4385176982"},{"position":8,"visible":true,"text":"ao3rdw8o5r0xvy x07pd7op60cce ylfrtqpvu81e3u 3f7jtv448v mfoeywlt","quiz_options":{"score":0},"id":"4385176983"}]},"page_id":"168831467"},"emitted_at":1674149694695}
+{"stream":"survey_questions","data":{"id":"667462100","position":4,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"onm04qqjiu e5hh4bm1nrm 4lql830cednt4y m4vd6n kk1rvup ghucvtc uw8xrjg6 u6giu1qxo oywqk5fc4elxs"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831467/questions/667462100","answers":{"choices":[{"position":1,"visible":true,"text":"n66vr4n4vn w57cw3jovcl9 9xhjvp8 mkuivep2954e71r","quiz_options":{"score":0},"id":"4385176986"},{"position":2,"visible":true,"text":"dncqrcm vkp1wf2u0d9j 9o2d4ag7rwt827i wo23d8v14j1e3p 8wty8ixwwhnc6 huw4we49ag40 fruxk5p9080lxhb hjvf468vja8rcxr","quiz_options":{"score":0},"id":"4385176987"},{"position":3,"visible":true,"text":"54u3kd450tpm i9jjwlr8r3xbduw 3k1ic1tg4 4tijdweafs ypprmy7wcpxeg yvvc4l19sd5p gmleu45","quiz_options":{"score":0},"id":"4385176988"},{"position":4,"visible":true,"text":"a1hrtqesu1ph 88spqcx6hyo7 dt64okx798gal cy3tbwljajmrr","quiz_options":{"score":0},"id":"4385176989"},{"position":5,"visible":true,"text":"ehg03 uyx121pwsyo 7rhvgcdfy2st8p 7ahaiboegtn5kd iu8bkj3imm3eo8d k2s2gg4g 2ys9hfx 8vpui26opm6n vsf5rfq6tqi2 jwxoe4suo4","quiz_options":{"score":0},"id":"4385176990"},{"position":6,"visible":true,"text":"c7lxx90luvc6y ogvbopnx 12v4swfg lofg3gcj dq1r6s8ptp5qho h04pqe67tbcnno xhyh0rp62kqkb dvtuwyu u89ppkdl876m","quiz_options":{"score":0},"id":"4385176991"}]},"page_id":"168831467"},"emitted_at":1674149694696}
+{"stream":"survey_questions","data":{"id":"667462102","position":5,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"bwurewbkcd12 acvusgq 3u00c224nnv iyfj31 i9qtkl9tolx2fjr"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831467/questions/667462102","answers":{"choices":[{"position":1,"visible":true,"text":"m6ihyhdpxt1 0xf9391 y8wvcnlw tfvxn6m 0bswb5w5p4","quiz_options":{"score":0},"id":"4385177002"},{"position":2,"visible":true,"text":"2kdjxc93o enx72tbxki oj43409eg90kt1 5fbnj d8rvo5c7a7vrgf 3c66h1 guo3c x6uv8kl qy0ttl 8r8dgqope","quiz_options":{"score":0},"id":"4385177003"},{"position":3,"visible":true,"text":"h3292 dtp4cjf11njvbhh huvgv1 onie86 tvdr09jg2lvp","quiz_options":{"score":0},"id":"4385177004"},{"position":4,"visible":true,"text":"16ua2fvav 75q7b2odhv fbw0xrnfn 2t3ivdrphr agrq241x d447hwdy rxa3g9gwe23","quiz_options":{"score":0},"id":"4385177005"},{"position":5,"visible":true,"text":"1dl0nhl0bx 7v1hc ooiv3gogf nxecupy","quiz_options":{"score":0},"id":"4385177006"},{"position":6,"visible":true,"text":"97geexnx4ussry4 s2x8sduenrfgwq y4s8f5v e6nrx0st23b f1xq1ax2xwl6yl c1to792d3i l0aq9 92s0aix8l31n5 qnnn38brgah","quiz_options":{"score":0},"id":"4385177007"},{"position":7,"visible":true,"text":"cg3w94v47ecgrik hviug 5xub14 808gw4 g0j3vn 5y58dv7vn8r5 xg72mp91 2l4ubwdo1wrw0t6","quiz_options":{"score":0},"id":"4385177008"},{"position":8,"visible":true,"text":"t92n3lmvuxaf5o5 29jh4afc h2wvqr9xf1q4w 27xf5d9ij1on qvbuiu7 8oghx0dt3nr5 g1mw6f9y6 muu0hhili","quiz_options":{"score":0},"id":"4385177009"}]},"page_id":"168831467"},"emitted_at":1674149694697}
+{"stream":"survey_questions","data":{"id":"667461468","position":1,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"fn1i25upg io6aniuf yrrrp8vt07fo19 48d5ol09146s8m ldy0ebojp819g"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831345/questions/667461468","answers":{"choices":[{"position":1,"visible":true,"text":"t56ghqeix s9huggwiub4 7tqxa1m0h7kj5 yk8r2 0f65tvl3fnpo 0gebiihpxcovnht","quiz_options":{"score":0},"id":"4385173226"},{"position":2,"visible":true,"text":"5o75tse0c okpssn319qiklp 5uyby90fx7n slfgxco07i ejp0kn xmr7ghykkxbypc","quiz_options":{"score":0},"id":"4385173227"},{"position":3,"visible":true,"text":"qe6tkjiccorb lxdmlb30 jmh6j4d6p vces42b344ry gbgmssamx0tvcs 785dl brkbvpl3ctq4nj2 yjjy0hh9b4sr yq2v7lhwtje33x2 7pbqmqgul4gqg","quiz_options":{"score":0},"id":"4385173228"},{"position":4,"visible":true,"text":"lyn712e8uyrrar 0qvy855feo 5l3egg 6t5uin58qrj1hj","quiz_options":{"score":0},"id":"4385173229"}]},"page_id":"168831345"},"emitted_at":1674149694802}
+{"stream":"survey_questions","data":{"id":"667461471","position":2,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"wcrsas 0v14j5i3e8eb2an ymydb45sqwsn g8j35s649o3rq g582wdp eoraxaf8dc7gf qtdw5a27iucmesj"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831345/questions/667461471","answers":{"choices":[{"position":1,"visible":true,"text":"nd18cy2gv u2bvpyki k0f38w8 qtlqut6ttsdyk83 pptqq84jmec6bfd a1aks3iy0i oykgg4gv0 busn0o8cc","quiz_options":{"score":0},"id":"4385173236"},{"position":2,"visible":true,"text":"mbd0ll7jes0qm 02w87s60 jslfxkj7yeh1 ol4yj 405yk1b kddsvxnk4hsw7 v1t7q9h8k26rt","quiz_options":{"score":0},"id":"4385173237"},{"position":3,"visible":true,"text":"jl49hsj6tjdf aq1njo56no2 f2gw9 eyqqekovg0c7ov kwwlc9b77 i4yu6aa7uxu","quiz_options":{"score":0},"id":"4385173238"},{"position":4,"visible":true,"text":"5v78pcotkwvvlr 7gvcf3xsd1s2 1y6oc8df 3n3f0 d3cg8ihr3ox9qdc rnyw7g 0lv7p6bka ia0p1tqjcew","quiz_options":{"score":0},"id":"4385173239"},{"position":5,"visible":true,"text":"xtha0tjj1 1j0vri su2xvilf9734 te51yhl03q558lc","quiz_options":{"score":0},"id":"4385173240"},{"position":6,"visible":true,"text":"w4st1 gljqfop06 2bu4fs7b fiia7kj22xl0i4v dl88vjnwo3pf","quiz_options":{"score":0},"id":"4385173241"},{"position":7,"visible":true,"text":"ivfna3y9ru jhxob vuncvdavfek1dsd 80ha2m2 8raod4lyb40 3r895onujni4onh xm9h0g6di g8e735xi ax62ju3eihf9a84","quiz_options":{"score":0},"id":"4385173242"}]},"page_id":"168831345"},"emitted_at":1674149694803}
+{"stream":"survey_questions","data":{"id":"667461473","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"xc4wjnko0i6 g7p33u41n 1tjsntksw58hn4 ewweiwcgt 58rs9ek5qi1bgvx"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831345/questions/667461473","answers":{"choices":[{"position":1,"visible":true,"text":"t09fsskd08sl88r 36sh46a2jva sd91wxy 5dncy1vabsf yfkliw o2spc5k ud2oktdabb7bv l76he8ba3y6 1veap0sd vh2aeoqb5","quiz_options":{"score":0},"id":"4385173256"},{"position":2,"visible":true,"text":"fvdf828g92n4cr4 jt9qg8529uihyge n69seyn8haq ido6m3","quiz_options":{"score":0},"id":"4385173257"},{"position":3,"visible":true,"text":"4n2rpc6iv82cene b7pvp 9fakf0 qmfrbf3","quiz_options":{"score":0},"id":"4385173258"}]},"page_id":"168831345"},"emitted_at":1674149694804}
+{"stream":"survey_questions","data":{"id":"667461476","position":4,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"wojs6fb lri4g 9cd8kjrhy9rd3 j9s5e32o8i l82xpfkqgwhj jma6htdue e1kk3u071rcef 9ivvnisv asaqww"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831345/questions/667461476","answers":{"choices":[{"position":1,"visible":true,"text":"j5lja4pu f0iq7pnkrk 9pra3hkah6abp 92wxt7ox6c dcukwklc k46geqe 2xk4g405p39t62 516tsgu xes5tkhjts","quiz_options":{"score":0},"id":"4385173268"},{"position":2,"visible":true,"text":"1l04q3mtxn75 t7ghyls2hqug j2hu42 uyoecoks6edsqns 57ya7vtyoyt u6k0gtnmf 1mm6wtektvp808 fkk89 qqprq k07oheboie1tfhs","quiz_options":{"score":0},"id":"4385173269"},{"position":3,"visible":true,"text":"9kvc37 gqyklsggws9 db070xge8y7fjr qmdym3ft1jp 5rh1txs","quiz_options":{"score":0},"id":"4385173270"},{"position":4,"visible":true,"text":"y9obh2bu8yk7e94 0ftyrjtcxhicd4 iobxi70wog4vf uokiplls1e ah0g8v mpsslhisijk lmomrov 07cfwh auqwaujyytig","quiz_options":{"score":0},"id":"4385173271"}]},"page_id":"168831345"},"emitted_at":1674149694805}
+{"stream":"survey_questions","data":{"id":"667461498","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"0tljucg0y3kh l2fh1q1i umeldoo665wgb 92c0k ldeevedeust7pg icrfpt7m1cq l6sfwhhk3vtql qpue297bcaeb7 yrn4gauy007n8q"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831345/questions/667461498","answers":{"choices":[{"position":1,"visible":true,"text":"8lcirsh0a t4ydqb06w0pqv 54k3qmnrjdyf j3ebgxwih2m4wa calo6wrbt 88n96xatpw3 hxaq56r brlwuuymmm jc5psliso3joc aoa41qwdhm0inny","quiz_options":{"score":0},"id":"4385173412"},{"position":2,"visible":true,"text":"bxc3u7guumu w525yaov3om5 3n0ld61 bhlpnw e252afl6giiia 56ybyswiyivgqs s1svdd30gf9kqks 522nxgw3obgj","quiz_options":{"score":0},"id":"4385173413"},{"position":3,"visible":true,"text":"dc3t2djjjqkvmfi cu7osl pxtlaevr117irr ji3qcr","quiz_options":{"score":0},"id":"4385173414"},{"position":4,"visible":true,"text":"qqr9ksi gob32wx p01fp4yqobput39 fryunx r020wh2ctxg 7hxy9g8m9m nuqel75h vwr1mjecaopo1hi o9fc3o","quiz_options":{"score":0},"id":"4385173415"},{"position":5,"visible":true,"text":"cf6162qvdywm crcubxjk5m5ju 7vhy5q5kj4j2q 5b55n9h w9v6c9n r7m6xx","quiz_options":{"score":0},"id":"4385173416"}]},"page_id":"168831345"},"emitted_at":1674149694806}
+{"stream":"survey_questions","data":{"id":"667461513","position":1,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"18i8lhabavlr 32wsccj5f rx8pvk4unsgm7r s5x7es2uepdb 96xgtjo7voy08d7 n4e9p fayts khd1nb8pow rpjp6"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831352/questions/667461513","answers":{"choices":[{"position":1,"visible":true,"text":"b0wj1y3wel57 ktqj3mdnpi dhr0k r3tasjvw 5mx1wclhjj","quiz_options":{"score":0},"id":"4385173452"},{"position":2,"visible":true,"text":"qott2n8w37qaai 1qn102yos4 imupcls4nm th4ob4","quiz_options":{"score":0},"id":"4385173453"},{"position":3,"visible":true,"text":"9uksb 862xwr8j1 6vxdyc4 goi32thkhq93 helvbkt266nnrw xvit2acd67olt pvvkx","quiz_options":{"score":0},"id":"4385173454"},{"position":4,"visible":true,"text":"ees3ivm7fphpd 9jj95pohh4 8sc972k8tyxk ge9j787 nxjkeee670jiec o36kcvbluxrp03 mb4e0et0qwqjxyc d13juonhq","quiz_options":{"score":0},"id":"4385173455"},{"position":5,"visible":true,"text":"294dtkjuyn ttbf6ikcy7s 84hmb t17hw 82aljhi8fwnf65 usuwl5d7ytrca x52ehyic447miq isobapv 3gkr1 2wphdit0p","quiz_options":{"score":0},"id":"4385173456"},{"position":6,"visible":true,"text":"nc1kush2rbxkqrr rhbdvjy xn4au2o0o94 xjq5ll","quiz_options":{"score":0},"id":"4385173457"},{"position":7,"visible":true,"text":"mh1igjt m7gteqlf8 q87g5gj n1g1w7s80","quiz_options":{"score":0},"id":"4385173458"},{"position":8,"visible":true,"text":"sfnq7n g13n21dx5cy aky2s t6h2y8j 5rbdufdcu7i ji8jgrcanxhxv piyrbdr72031gh6 7nna7 gn4gfqo3o 9tbatn8r","quiz_options":{"score":0},"id":"4385173459"}]},"page_id":"168831352"},"emitted_at":1674149694807}
+{"stream":"survey_questions","data":{"id":"667461516","position":2,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"7gnta43 5s7jfw8axcw3tkf vkg8bmasyo6u 91wwhy c1pae9eu342 3tg0jl70wuoc9 yyxo4v8se myu4ls9xoaiqsep"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831352/questions/667461516","answers":{"choices":[{"position":1,"visible":true,"text":"qfjo9n 5a7yv16lp71 ow2bbt3n2ke 0jb1xfpxf51s1u f4k77hkwmu wprku4 55311lxm0wcpw0 c53g4v24","quiz_options":{"score":0},"id":"4385173473"},{"position":2,"visible":true,"text":"j4n9jfdyr4cgs gfc0c a8trns3c4m 5mem4dona y097q wxpm5 q4gqos2ukx ufjxck1lmi1nn1","quiz_options":{"score":0},"id":"4385173474"},{"position":3,"visible":true,"text":"4kb04jje8c8d m12jddaa1iljt fr4qqhj 579w6 6u57xdn gaduvgl0u3 887ffq2vq9b58 q4r02mfsjdx6 3v8yskph8uyu srpxeiuxm0ber3","quiz_options":{"score":0},"id":"4385173475"},{"position":4,"visible":true,"text":"biom7l20wjpvl la1rwpf51ia1ex 23gosg8xvae87 ev2iaj4bo c2581d1re2 93rl9 tmj3467ajulb","quiz_options":{"score":0},"id":"4385173476"},{"position":5,"visible":true,"text":"om88wcjqp6f 5fn54j nmdg9 1sriyr pt6p1h4cm vkdmgxanhh 96847e1mgp l8b2t jl8oxa ifs1c","quiz_options":{"score":0},"id":"4385173477"},{"position":6,"visible":true,"text":"l8bo1yes158 w294970vmw33c yp6x582 6sa834 j86xhb qfm2f2 tj7gt7g xkgtymut","quiz_options":{"score":0},"id":"4385173478"}]},"page_id":"168831352"},"emitted_at":1674149694808}
+{"stream":"survey_questions","data":{"id":"667461517","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"uy1ifum6sjcimr he9dly7g it4v8exuhulo ffdod9aof90 9cdfum2phl11nin 5habw5hvuj9pqio ce6ftayekj"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831352/questions/667461517","answers":{"choices":[{"position":1,"visible":true,"text":"gd5221owwi1 tjya80m2al3k62t xq0sa9fp leyp52b5ahghpaa","quiz_options":{"score":0},"id":"4385173481"},{"position":2,"visible":true,"text":"lk1rk9 94xju3kfoc1w5 8dybd90 9qdq98 rxu5edq9gs99 kks85ifc03qye","quiz_options":{"score":0},"id":"4385173482"},{"position":3,"visible":true,"text":"ykpin7yh wv14vdjfwf0l 295s1en8cwa2 s6vafhu1fops 8k2vvkt9pftfc2 d1jxuoudjb 614hx251hr6fouy x3w49ql1 7b50ohc76","quiz_options":{"score":0},"id":"4385173483"},{"position":4,"visible":true,"text":"dewxv4aajhaw yij71ndhch8 76bjhg71csdc4w 5gn1l cmu7yo vdn7mtuy 6oplwmikjyvv1bi l3kw7j","quiz_options":{"score":0},"id":"4385173484"},{"position":5,"visible":true,"text":"kuoin09q0 lm3vqjykpb ji7lrp5ylkt58 qb0mhh86kcgm crjjoqq gvfejauprgj mlsjegwm 7psv8r4tc4365j8 98t96g2ifjm","quiz_options":{"score":0},"id":"4385173485"},{"position":6,"visible":true,"text":"5c8y8 f7droof ha5vfclhyivm6kl bfylm txvwxasx1j9l qpyifm4y qwhcsobdo 3ui2qts 97h9i1v5jv5g7","quiz_options":{"score":0},"id":"4385173486"}]},"page_id":"168831352"},"emitted_at":1674149694809}
+{"stream":"survey_questions","data":{"id":"667461521","position":4,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"pgb7ltsb96ed dep0echkqixfc l4rcb230c wl14ohr2hre1o fn94g0r87nde"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831352/questions/667461521","answers":{"choices":[{"position":1,"visible":true,"text":"55yon1b4lyavl 6v6trvxwrc8 s1hwd2 d4hrxv9tbga9e0","quiz_options":{"score":0},"id":"4385173492"},{"position":2,"visible":true,"text":"x8ak4mn2 601o7cb6qnhxox2 k8q23 24nb8q6tx diuko kre6p82em vrf8yxch2 53klbp1xtber s29v8xwbiqm4s8 trwpy6qd1464q","quiz_options":{"score":0},"id":"4385173493"},{"position":3,"visible":true,"text":"s1pxp wsngl9et r2o40 18ltd3 r1b8qpyqskyx a94qup","quiz_options":{"score":0},"id":"4385173494"}]},"page_id":"168831352"},"emitted_at":1674149694810}
+{"stream":"survey_questions","data":{"id":"667461526","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"q859nk 369qqyw7scs77jo 9ji0c9vow2uv yjucgiioytvwm x0x95w 222dyntjt8pue 1ndsg06k"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831352/questions/667461526","answers":{"choices":[{"position":1,"visible":true,"text":"tnea3634 p2lnkyut0h yllu3g pufn062o 2etbix7jtgiqx4","quiz_options":{"score":0},"id":"4385173522"},{"position":2,"visible":true,"text":"0qf4fyco1ea itos8brey3wgkp xje8mlffe4m8wlv a9b44 jgmtf","quiz_options":{"score":0},"id":"4385173523"},{"position":3,"visible":true,"text":"hc4a1wgbqqryji 4x7enmw1nam8o1o yn3nxtni y7bwpr wm1oww66f5ox","quiz_options":{"score":0},"id":"4385173524"},{"position":4,"visible":true,"text":"0giuwu7l3v 5ufp8 u3mupcfr0 r8977cguqc2 hrfeq0ug7wo0 fjmkook g8up66tqb7shgg","quiz_options":{"score":0},"id":"4385173525"},{"position":5,"visible":true,"text":"xp5qsik ipf6q be83j63io 5kw68q bwb1mxf gt4l3besb ikfckl9f f3lgigcoib t8wa3hjgn00 csln5ikv2a","quiz_options":{"score":0},"id":"4385173526"},{"position":6,"visible":true,"text":"ai0mef32co1ohl qfwbhctboxq89ye u5v2kyq ebo7e 2u7q9yvlgd1oc 8uxx84l65n7lf0","quiz_options":{"score":0},"id":"4385173527"}]},"page_id":"168831352"},"emitted_at":1674149694811}
+{"stream":"survey_questions","data":{"id":"667461529","position":1,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"5c2dy1fcqn80 athbhqoadncx3n v1lt9m7799 6s154slj6ga"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831358/questions/667461529","answers":{"choices":[{"position":1,"visible":true,"text":"rqa77mh3qxuc 6c5uywhchx1bgd f6or0t6s ds7hiuwb3bu9 u9x2d8hs 52pocgqntfeejo4 oaryhk woq1xb7akj","quiz_options":{"score":0},"id":"4385173536"},{"position":2,"visible":true,"text":"hxex6h1upkfw81 pad50wjl 8fo1fiqvtqfe 3xg4xms66g6l luckdtn1 udk8r284o iwpvh21 xotxpvww6p29 4gmqucj4 my8vynnaemow89q","quiz_options":{"score":0},"id":"4385173537"},{"position":3,"visible":true,"text":"jyb1qcl8o2gtte jlwtdhkxh65a9e q6xfymirg7g 24hkqyd0x0 9w4wb4dostk 6i8s8mh5 rxmq5y8ti r99xgye0urvl bdq2598nnha o6gaqqdvg5q","quiz_options":{"score":0},"id":"4385173538"},{"position":4,"visible":true,"text":"qtgjiim109 xoslnipbfe v28m271knt yquk8m2j96w6 xff8kw1 1jhr5l14","quiz_options":{"score":0},"id":"4385173539"},{"position":5,"visible":true,"text":"me39vca xqytbsfb 8uiad g1elq77xy1 tv88etyc gj1g8580e1lbmg4 bjnj4es","quiz_options":{"score":0},"id":"4385173540"}]},"page_id":"168831358"},"emitted_at":1674149694919}
+{"stream":"survey_questions","data":{"id":"667461530","position":2,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"v2whrhb82ev kvvqlgl ek50nx1ar9 a7h4fo9xuaynt2"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831358/questions/667461530","answers":{"choices":[{"position":1,"visible":true,"text":"e8nxccvdcdm 6wfcehdl1 o7g5ce64yvs efob6e 9bj7ny6aipb 4dc2wsqwtr6u24 xsxa081k8 4fyis3oyl9t42 lmu0hhgj4ok24m6 fg0p0lt","quiz_options":{"score":0},"id":"4385173549"},{"position":2,"visible":true,"text":"a5cw9gn7fy95q 8ui6bhr1j0djvtl sr2o8a3 kojha7w 1itxl7twgq avmrl2q5jbwds9 gva3tqhpgk8y5 v4aylod k5ci4cngn6h44jv","quiz_options":{"score":0},"id":"4385173550"},{"position":3,"visible":true,"text":"s3s7w5clw y2uvtas6qhvbk qc1vwrlyi2bk goqfgfe1 1ayx9l73nb78dq a0ykwprnx8gxm1 xn695vlym9rt4mk","quiz_options":{"score":0},"id":"4385173551"},{"position":4,"visible":true,"text":"c4qwlt8a dgnsqhqut5cy iq1htk kitbw 5mwuqxv92w70s c8hxelnesk 75craldvy4w","quiz_options":{"score":0},"id":"4385173552"},{"position":5,"visible":true,"text":"qp2pgo2f63 wmlcuryftjwedj yq0xo a1n5ayjf jikmqnf4mdbw 02r05wsu14a146b","quiz_options":{"score":0},"id":"4385173553"},{"position":6,"visible":true,"text":"ootl4 kp8ae6ggbjabg hgusbwsla83 rnl7dnuqo","quiz_options":{"score":0},"id":"4385173554"}]},"page_id":"168831358"},"emitted_at":1674149694920}
+{"stream":"survey_questions","data":{"id":"667461549","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"sn8gp1r0uc1og wobjh 6x0e6t4wug m6466nxyawm k81p20 883oi8u wgeeiqdcmxwa1rt mc0fnojb"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831358/questions/667461549","answers":{"choices":[{"position":1,"visible":true,"text":"wy826 0uog090ox923 2m3arldq 9v6wr7xwvxfk lbxye5v0svm7 93ji5 vkfvxgr7iy 1r09yxnkpjm23 0bbktk3rfg0bscf","quiz_options":{"score":0},"id":"4385173656"},{"position":2,"visible":true,"text":"krqy1l9f dj0wppa p93gk rvffc v6cfo0 o1areevq8 jbhm4t gcc224tu 3thelsk2","quiz_options":{"score":0},"id":"4385173657"},{"position":3,"visible":true,"text":"f1cpwqowl4ju9 43sdy2 qdqyqw17lxw2v enee166iohhy kq5khb6s r3pucoufnsh hrhcpt q4ukten6scjuvg ldvapiy bg61mb0pf8ofd5i","quiz_options":{"score":0},"id":"4385173658"},{"position":4,"visible":true,"text":"eq2hnewfaec e9jxrip xrrkl1wh3rbcx7 23t2bp5535o2e qwjbhf5051mi iqgykvmdvsbqr 8s3wwn8tqc513c 4q3a2gr6uhdvlc 7dr6m","quiz_options":{"score":0},"id":"4385173659"},{"position":5,"visible":true,"text":"jth67q sto4nhh23s op593ly6lw4p1o gxwnyfr4m99nbvc dplgcarhd m24hy6i1d n28tg7mytetk","quiz_options":{"score":0},"id":"4385173660"},{"position":6,"visible":true,"text":"rlo3t 7ppem2 bx29gt ucqxmy0 jm67u2dynhq iqfpiyufxif 8lm6ydc9u16rj y7ombxa0meqr2","quiz_options":{"score":0},"id":"4385173661"},{"position":7,"visible":true,"text":"vijhvdm7x6h6 4swh9tom vcr06ugp1hl6 50al5 3ndajrt9ilers 2gnm8il0h ry9dtv jqpu16b0ukt qsb5rqrnmglh arno84j1kroy3","quiz_options":{"score":0},"id":"4385173662"},{"position":8,"visible":true,"text":"3ujkb4krosaln 4lk1ckhounns7qy ap07a65ruvnjed vygxbabompj8dn op8annyrush8v p6t0nd2qi w4pp18y4x lljwuc ubknhjf31m6l1tu","quiz_options":{"score":0},"id":"4385173663"}]},"page_id":"168831358"},"emitted_at":1674149694920}
+{"stream":"survey_questions","data":{"id":"667461551","position":4,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"jf7fw46e14 vd9x8vs6f0av npyn7 ymxbaq24mqtvj bci1xcln9ch6302 eeghuyauh mjkw9hkx0oooduf 0ui0l93x 6m5tbpl yoplf8cqmbl"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831358/questions/667461551","answers":{"choices":[{"position":1,"visible":true,"text":"rwk1x rtfy9upgpmj xkawlfe0vo8 3ounnnx3e9rl2d4 e8pqns3nwx pr5st9qy o6yi4klar9onlp innrgi2ua3f","quiz_options":{"score":0},"id":"4385173675"},{"position":2,"visible":true,"text":"pcupu8t3iodmw34 67g78ktu6rmr6nq 8nph4ohmv 9xtmtr2a7p9 6rb6h6","quiz_options":{"score":0},"id":"4385173676"},{"position":3,"visible":true,"text":"m6xlaj5xutmgw l08mgyjovq 6vk9sibk r9am0kbr 9qmm4d18mxnx u1sw4to 3a8ek ekp479980 hbuxaj2bf sbio7yw7","quiz_options":{"score":0},"id":"4385173677"}]},"page_id":"168831358"},"emitted_at":1674149694921}
+{"stream":"survey_questions","data":{"id":"667461553","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"uue1b3 s4rj4 dawj4ao j5xhorntprj5p9s obfe7 y47vcjc s2gp2fh6 oysg9o5"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831358/questions/667461553","answers":{"choices":[{"position":1,"visible":true,"text":"bf1i44 xxi5e2h7orevv2 d737wgpt4pu3 pmbeixrmvw1 ya3ww2x gpvmeo04nh5 sx2a7ey cv9ldq57qkus","quiz_options":{"score":0},"id":"4385173678"},{"position":2,"visible":true,"text":"ocmcxbjsqw o1vr3t 8fhpimedvui rn1hqm5m559bcq kw3138dxm77 vsdor8m v55p3f tn721 l4w4a6j3c","quiz_options":{"score":0},"id":"4385173679"},{"position":3,"visible":true,"text":"sme3nthgos 7c5bv0n80ymsa7 x02op26 jjum7w0s7lt2ll6","quiz_options":{"score":0},"id":"4385173680"},{"position":4,"visible":true,"text":"3p2mj4nlrsgu4d 8rygmmsqqxm2pl6 yshbvwq l5mcc5a kdpqvuul","quiz_options":{"score":0},"id":"4385173681"},{"position":5,"visible":true,"text":"o7ehnkg 134kywmgi wm8jcrpnl45if j86ffs6jfgcp 2e25qvayvwj18pp 3rduk lqjqyar2 xhq7yxb8i9ef6u","quiz_options":{"score":0},"id":"4385173682"},{"position":6,"visible":true,"text":"axh7312qg827nk s7tl78iwcr h1b6pv7hn6 o51sbag","quiz_options":{"score":0},"id":"4385173683"},{"position":7,"visible":true,"text":"onu50gtox9de40 v638eyavt886 mu6y85 6a54r1n9","quiz_options":{"score":0},"id":"4385173684"},{"position":8,"visible":true,"text":"0on3vhb3 94ujem74f4 0git5 fr73t6hds rfc4iyd4gwc","quiz_options":{"score":0},"id":"4385173685"}]},"page_id":"168831358"},"emitted_at":1674149694921}
+{"stream":"survey_questions","data":{"id":"667461555","position":1,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"8nym349ifndc4 1ergxvcs rg8nxji7wngvfo ha1fx7qgh0p4m 3tkgf"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831365/questions/667461555","answers":{"choices":[{"position":1,"visible":true,"text":"r7wm8q65rf0ed wj7kk61hjpqrt nkjjva6busq fuhp9098sc6 8ro2p6ww","quiz_options":{"score":0},"id":"4385173711"},{"position":2,"visible":true,"text":"wjxlbkjgaps2 sep73b5ia8yj5 a9wr0gq 9o2wqf7du1v0tl 81u2apxnt ww3588h","quiz_options":{"score":0},"id":"4385173712"},{"position":3,"visible":true,"text":"8r7tkvpljdu 8a667c88iw vtasj a5vacvo6pbxwsw 8in6kb nv2yeug1x 3lv9de7rw8rtq","quiz_options":{"score":0},"id":"4385173713"},{"position":4,"visible":true,"text":"obyau9nl8c9 jj7tk8n3wv1gb qmiuhuql 1m01qx26c213r6 aj6u9iw459er mxax2id3o8iv riondp2tea3 ay77ba gpl30307 440clb21coauy","quiz_options":{"score":0},"id":"4385173714"},{"position":5,"visible":true,"text":"0wm0f2w wykr4 9lcofhvrxdiwlp0 u8yf3 p1bwwa","quiz_options":{"score":0},"id":"4385173715"}]},"page_id":"168831365"},"emitted_at":1674149694922}
+{"stream":"survey_questions","data":{"id":"667461558","position":2,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"0wjijbi1kwvxt h19om9 kjvx4 jqeprmna15i bwqfaihmlk0"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831365/questions/667461558","answers":{"choices":[{"position":1,"visible":true,"text":"q7y7hkgfgi1plk s1nwdd 0d7dt14f q604qs 47cwawfbo m1mmdsyi3fsp3l r0qma8q f5buoh","quiz_options":{"score":0},"id":"4385173727"},{"position":2,"visible":true,"text":"sn5hskkfn0ykw if30ikcbmfjsxj g6u5fay eauotfitd2 9cg6qkon 9t0l88ops7633","quiz_options":{"score":0},"id":"4385173728"},{"position":3,"visible":true,"text":"c678ymx 92bxd icea1i4p cjdl771k u37cuw rnjvrihdi89s2x a1vef","quiz_options":{"score":0},"id":"4385173729"},{"position":4,"visible":true,"text":"uqlmm5yk5 1v12y59qw hv82bo91a0leef 111gmwav8pnwe np5mfx6nsq6 cxgilxkmtvmm2kw 8mb5wiet5q wdbyo993 uh7kcfhy59 sebg3lik","quiz_options":{"score":0},"id":"4385173730"},{"position":5,"visible":true,"text":"uq2uqj20gchd ly2k4d4goq1 ehe66mwx ei0a0d4ggv0al9a 744s2h u254g40o5m 0i9o7dqjdkrtys","quiz_options":{"score":0},"id":"4385173731"},{"position":6,"visible":true,"text":"nyy288shht 3eibqfcm69se94 de2u01w0k5o 342ouq sb68ogkspj61j3p blbhcqok 8vdd2u7b2 su21c5iwou qgi1dj","quiz_options":{"score":0},"id":"4385173732"},{"position":7,"visible":true,"text":"fkidasstba rfn3erxiv282 vy0fqx 3acgtlyka1 mykyngnc 8u2kws4tp 35wst9aglv2 chbms5wm974 ajaygp8vjkhq","quiz_options":{"score":0},"id":"4385173733"},{"position":8,"visible":true,"text":"lmp71nc3bt 6eic0k8kacvx 17ititl v9u25fh1x78 vgfpglqvf6j ajv15gaccdsa elo40oe8ht75c","quiz_options":{"score":0},"id":"4385173734"}]},"page_id":"168831365"},"emitted_at":1674149694922}
+{"stream":"survey_questions","data":{"id":"667461561","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"su1ullpk4 t553g unva8lk6wfw7 ipvkkika"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831365/questions/667461561","answers":{"choices":[{"position":1,"visible":true,"text":"j463gx5a 1n4fa1q94 x4yw9ack6xoh u5l2fmvwlvktyw7 kpgulj5y49q d03pdq 0bl58ibk39hpe g6m66xw y8ajm5qk2uyu 02pbmuywb7h9m","quiz_options":{"score":0},"id":"4385173755"},{"position":2,"visible":true,"text":"4w8kyesurm3674 est71dh9qi23fw jbowojvmon40p jeggkq5soym 4dgqd70 6fx65rd2f94b5t lnsm1pjg0bypfv jt7d9jj","quiz_options":{"score":0},"id":"4385173756"},{"position":3,"visible":true,"text":"atun8p07f006myd wotd669048pp4 j2wa6v97pbj d7uvpqvrv7omvxw p8ef7giw88ft04 rgn3uwqgx08 rhe5yu0hg16b tdaflfh 2jpl4e","quiz_options":{"score":0},"id":"4385173757"}]},"page_id":"168831365"},"emitted_at":1674149694923}
+{"stream":"survey_questions","data":{"id":"667461580","position":4,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"in0q9d6e580p28o 65hh3n3rbth4000 jowj89wgvpem9u lc918vs7s pt2r8mt n5t61mrm1nw i64uqjqjxw jhpgayjd"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831365/questions/667461580","answers":{"choices":[{"position":1,"visible":true,"text":"d1k3kg doxgp648opvyvwx o6xwbacsy2nvo oglkc2p5fegn l7cfksxmkd3ekk es7rvcb8t8v243","quiz_options":{"score":0},"id":"4385174059"},{"position":2,"visible":true,"text":"tc374t uo4de jkgh56fi 7ttvi102i5fbjw 78i6rml o5gekwgh5r rtxw6mrnqi9","quiz_options":{"score":0},"id":"4385174060"},{"position":3,"visible":true,"text":"mfwrrhume d5c5kcy7n32d ovt2xo d3cm1 shv19 r339qbp","quiz_options":{"score":0},"id":"4385174061"},{"position":4,"visible":true,"text":"l4pnl52o9gc 6q4ufrpc7q bw16kqt 6bagaclfl21f9 x92gg7slb2h gs7qxwmj6mg o81ntc46r8q3 3tkbuhrp0","quiz_options":{"score":0},"id":"4385174062"},{"position":5,"visible":true,"text":"9nbdwy6f06wn g2tdvcsqsg 74jmcd ulao4 i4f5y r3yn39fp vsxqmxocm59s10d 9l98r8lp7554 eek3weuw","quiz_options":{"score":0},"id":"4385174063"},{"position":6,"visible":true,"text":"l7am7i8hxiy u3ylucwt8lvms bl5ftdk19mxheie gt5x6 4eiq6 7an0oa731ay2p a9gyy1qsjse xif4ton3b hu5v6cg kuasc8ce9ihbjxi","quiz_options":{"score":0},"id":"4385174064"},{"position":7,"visible":true,"text":"iw5t0k3fr7tv454 lmsbkhfkfx6 vq5ds3yhq20b2 jom26vaad fu7w8 f0t9nanj2","quiz_options":{"score":0},"id":"4385174065"},{"position":8,"visible":true,"text":"18u6s9r5 na05j55lqd i6its t96py9n9q h03ueyjkfewy rhiv9a8nxh 3adtql0ksc9l2s","quiz_options":{"score":0},"id":"4385174066"}]},"page_id":"168831365"},"emitted_at":1674149694923}
+{"stream":"survey_questions","data":{"id":"667461598","position":5,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"fg2ok1k5x73j xi2i2leb9xip0jl nbjab ut48risbmg0 cmxjg1y14a b350n2yl90sq r2fpg 9u3fc44vd"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831365/questions/667461598","answers":{"choices":[{"position":1,"visible":true,"text":"6ia2cfy435ajc4 qwja8 186ntjx 8jshqf5 i32esbjh08 yhf12enewt5 8shld76x18d18 qw01jndxbuhj50 4mtgy6fbn7nfbs","quiz_options":{"score":0},"id":"4385174182"},{"position":2,"visible":true,"text":"e5phn4tqfq 5xee0uu5x v4lw52 hkhk8lpakvb 304yi j23bhqyat9h5c j52nrstj5cqo3q5","quiz_options":{"score":0},"id":"4385174183"},{"position":3,"visible":true,"text":"swapu0ru 89dqkvum0e2 ybf7xmg d0atxxfgpb3ag ylnjkwaufdj8 rj6dedrfte xkc6hqtimwg","quiz_options":{"score":0},"id":"4385174184"},{"position":4,"visible":true,"text":"n4l9n4wq5yas blbdmjmr nkhx7l gh95jmffy0p69j 8kg39ic3a05l41 dmjd7","quiz_options":{"score":0},"id":"4385174185"},{"position":5,"visible":true,"text":"du734l u98n1d5ovgxe 1i94woho8w2k u16an6dw ha0sc8v11aeep 1p9pawo5f6v 9s6ysd nv3v3","quiz_options":{"score":0},"id":"4385174186"}]},"page_id":"168831365"},"emitted_at":1674149694924}
+{"stream":"survey_questions","data":{"id":"667461606","position":1,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"f9jgr myr928nokvyw5jg fqoan6w aqdnfas0gapwd 9hobof x7d7vy7xd9il kh6cd dteve1vnaoq6o uccii826ldkj1c"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831382/questions/667461606","answers":{"choices":[{"position":1,"visible":true,"text":"1ak71apsl1lb2 dtgtym8ftk 52syq wtnfautgqxev t2sp9icu3465pll i4rhctmtx rh5yifue1 k91tlt","quiz_options":{"score":0},"id":"4385174252"},{"position":2,"visible":true,"text":"3t2uxb my2rtujx8njmbtm a2cyspuk yvfub6ofm8a9 819o7h8o eac0xea","quiz_options":{"score":0},"id":"4385174253"},{"position":3,"visible":true,"text":"4t3bj1jwi5bo ofhe7 cg6nbcys7lu v2qv7q11u48 7oowwv12fndqe","quiz_options":{"score":0},"id":"4385174254"},{"position":4,"visible":true,"text":"7etbg4thd4k k6d0nlv 02cobf bby0p2i","quiz_options":{"score":0},"id":"4385174255"}]},"page_id":"168831382"},"emitted_at":1674149695048}
+{"stream":"survey_questions","data":{"id":"667461628","position":2,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"fx8h961tahe na1oufba ybjyqi qm6girwad8b1xq"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831382/questions/667461628","answers":{"choices":[{"position":1,"visible":true,"text":"lakrew7c6qd wsih7a2nkq0no4 94gtxvs36 87wp1kbadg1l 1hkmpi6 2g1juofi5a fmmygrjehmcuygi 0bs6ka 2pj0gvmjpd6b","quiz_options":{"score":0},"id":"4385174360"},{"position":2,"visible":true,"text":"jjsfl l1sxtcih8fyeeof 6m9lk94qqmuaegl ki7wf11a9i93 xypqh9bjq1av7d1","quiz_options":{"score":0},"id":"4385174361"},{"position":3,"visible":true,"text":"eb4np f3xpqwjcv ypljmiu0y337 lu913m i9uet4t 6dvp7afcy3uqh 1xiu25 1qqn7cyv","quiz_options":{"score":0},"id":"4385174362"}]},"page_id":"168831382"},"emitted_at":1674149695048}
+{"stream":"survey_questions","data":{"id":"667461630","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"576vlo18en3 1bxycqddfhn6v rsbd7a1e4bbyf ugieqgvywq4 g3qltn1jy8 0ebdn 78lxt9iwu1jx rbdjre1cujgtsq"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831382/questions/667461630","answers":{"choices":[{"position":1,"visible":true,"text":"5k5p528j2o b9frywomc0 aukxrjdqt wiuvud9asln2f3w 6a4mdsa22mygo bnwh1sv 5l5s9ae rbo5hecsrd w0x40 6a86lloan5","quiz_options":{"score":0},"id":"4385174370"},{"position":2,"visible":true,"text":"o8jtnh4keupcl6 ff77c s862cc89 avdo6n25pw","quiz_options":{"score":0},"id":"4385174371"},{"position":3,"visible":true,"text":"vq7kbm97 p8svkwom2lo dg91j0 i570c 7gve09y 9xn2svsiu 22oh8ub7crysocm","quiz_options":{"score":0},"id":"4385174372"}]},"page_id":"168831382"},"emitted_at":1674149695049}
+{"stream":"survey_questions","data":{"id":"667461651","position":4,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"799t8 uw9o03 89r6ndohi8r8bvs gv887i 14be70qd88w qgux0yh3"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831382/questions/667461651","answers":{"choices":[{"position":1,"visible":true,"text":"dtvq3u jyp1h165k86n y0rkc4ich02nw qshv8da ppf7j9x raeq9k abqfxgd","quiz_options":{"score":0},"id":"4385174481"},{"position":2,"visible":true,"text":"i2muubbwbuf 3ffi5361bv wdoq2xkw2hsgpkj t45p9rr5mhi 8xwetg9 gc9u9p4hpmkkev do1ik5y 1439x s9k4vbcj4uaay8","quiz_options":{"score":0},"id":"4385174482"},{"position":3,"visible":true,"text":"0bwq2juhggn68 d2ioj rs8ybqs07gxkcri pgqiiha ir4cb94rbh71q u5mssukw nsyithmc5ismqc fyjxgqjx48fsdp dcua4s9spewq63","quiz_options":{"score":0},"id":"4385174483"},{"position":4,"visible":true,"text":"t3298cfyqx7toco rvkbw4338qk9 k5vd0u42if tkkkkm hfxufgj1i3f7vm8 69yd8hxcl5 swv8ipasty 4g6qsfyb0hdpa mx6s5tmxs","quiz_options":{"score":0},"id":"4385174484"},{"position":5,"visible":true,"text":"o7itx tcbcw8snyw 6jmor7biu7 x59bcw2hwr t94tgt axflfvftpmd0h 46td0yk 67ydkpti6t m3v2de7","quiz_options":{"score":0},"id":"4385174485"},{"position":6,"visible":true,"text":"u7s76bgo3nsbob i7yi958x br6wqw77f3mv b4f5yubeq q7ubaeju1t x5t0cx1bc25jhy acvms2 pggajefpr6 c7prvy9 6ain0uox3g3rd95","quiz_options":{"score":0},"id":"4385174486"}]},"page_id":"168831382"},"emitted_at":1674149695050}
+{"stream":"survey_questions","data":{"id":"667461652","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ske92t16t19co1u 3qou5xj75ksuy 1rfxe q5tbfl9xa6dx"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831382/questions/667461652","answers":{"choices":[{"position":1,"visible":true,"text":"gn0e03jdsij ops28 wxpn34 o9q6o9otb uxw5rwr5xh g855ayu37wsg","quiz_options":{"score":0},"id":"4385174493"},{"position":2,"visible":true,"text":"6yft8d7xv vwn2h vrlpr8r7ppbnfr vtvgbje916jf5 kv7g2ax 292bgj62fdk","quiz_options":{"score":0},"id":"4385174494"},{"position":3,"visible":true,"text":"iicugnyhyj 0t742iccrlgnc olaw2v e67g2xd1etgcq","quiz_options":{"score":0},"id":"4385174495"},{"position":4,"visible":true,"text":"55ganyc qk6vvo 1gfswk294 t4qxy0nirv3a y1wr6vmvd","quiz_options":{"score":0},"id":"4385174496"},{"position":5,"visible":true,"text":"5hjxv2qf8jr svkm4b90cs6n7u 44ewbk0getyk g6hhmaqvlcdj9g7 if6lqdknx rr5abg5ylw7ho2f rabuvef2t0k5x 0a7x5oqof9xhi8 o8tv6ke3ev7r","quiz_options":{"score":0},"id":"4385174497"},{"position":6,"visible":true,"text":"sy4uf cxu4rsabrlmaw kdov7 hx6ta8d4c0x290","quiz_options":{"score":0},"id":"4385174498"}]},"page_id":"168831382"},"emitted_at":1674149695051}
+{"stream":"survey_questions","data":{"id":"667461666","position":1,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ssubl 48hjj9vj31v omr18dpic pp65f94 j35xxoh u04pidx8dp7i bo1ae4ptsntu3 o6v99q"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831388/questions/667461666","answers":{"choices":[{"position":1,"visible":true,"text":"04s0qv msoghfkw0fr4hmq kdv92tuo2 l8htirpt 4h2nxjcla5rjor n1wy2w5","quiz_options":{"score":0},"id":"4385174598"},{"position":2,"visible":true,"text":"64o6m jya4p7twvvs ls75jv9lvf 8gr7y35au5hcqfq","quiz_options":{"score":0},"id":"4385174599"},{"position":3,"visible":true,"text":"x6ijo4tj5qrljkh dk5dmknmhn 3rm63 kdym4 bxjsru9kvh1 g2vp966a8nkh 6dhh6k99a88gt 9b7emois0ldfr swbnqor4k66","quiz_options":{"score":0},"id":"4385174600"},{"position":4,"visible":true,"text":"4uhchfo7n2wmrtx e211emk0v53w a7ckw5lg40n qrx8pw0r5xrph q8ndfdm5g08tex8","quiz_options":{"score":0},"id":"4385174601"}]},"page_id":"168831388"},"emitted_at":1674149695052}
+{"stream":"survey_questions","data":{"id":"667461670","position":2,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"lbje0ppud4so8xk ax7vnbef0l3fv7j alcnsi48jehkf8c 9fghb3uop 8qfnul9 w8d6lma9 ejcm4j9x604p t7b7dk"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831388/questions/667461670","answers":{"choices":[{"position":1,"visible":true,"text":"i6exa76ck98 9pkrhl37j88s 8k6dvdhxg5axw3q 0dtn8xt6 ji1gm0qu 9pie3iotb","quiz_options":{"score":0},"id":"4385174620"},{"position":2,"visible":true,"text":"knjsfkea66j bp5sxiba qa1yvg m3vul 96hgbjtin7ux7","quiz_options":{"score":0},"id":"4385174621"},{"position":3,"visible":true,"text":"jf90cc rc80q71mvp1 8f3qlcc4pls wvixh60l7b","quiz_options":{"score":0},"id":"4385174622"},{"position":4,"visible":true,"text":"u8275ses4k sq0bax8 vbpfs7qwh yhbborapj3ai t6eo1n6o9rf uitrqawsi p2oe4x5ie","quiz_options":{"score":0},"id":"4385174623"}]},"page_id":"168831388"},"emitted_at":1674149695053}
+{"stream":"survey_questions","data":{"id":"667461674","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"7xuudm hd85d2fbd49 hxo4gmsnhaxn53y r3oo0piiij5 hvifmm5 mfep196v1yi q9o6w9gksyedtgs o3y01cyw4ca91"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831388/questions/667461674","answers":{"choices":[{"position":1,"visible":true,"text":"7h3hoeucihjd41o 4la76h8i8 8dgl2v5eub 962jah6wws8 qdtm85x9t3y96w5 mkq9yvj 81nsju0 koqkfhpe7pw","quiz_options":{"score":0},"id":"4385174634"},{"position":2,"visible":true,"text":"vpmf8jyppptscjq 3ujxkee7dye ggqm9tg9svjgx ashilo1ffin","quiz_options":{"score":0},"id":"4385174635"},{"position":3,"visible":true,"text":"nselknrgymf vq2vd1efu 3a9b7whs2k7bj5 nujxdbcbg8qcjp 2va7wdag r0k00wo6 bd5u5 btk0p","quiz_options":{"score":0},"id":"4385174636"}]},"page_id":"168831388"},"emitted_at":1674149695053}
+{"stream":"survey_questions","data":{"id":"667461676","position":4,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"0g353xw0tmg9uj yjpp4gp6d kkvtb90xqw7se5s 1rtjhd"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831388/questions/667461676","answers":{"choices":[{"position":1,"visible":true,"text":"qi3ml trfm3r0 hij01mx6lt6 olgi265lrg7a45","quiz_options":{"score":0},"id":"4385174643"},{"position":2,"visible":true,"text":"sip0lix7kpf g1vjmce6cj u3qgbnitdp2w3 gxgg5cc 53rn81g6mr 008agselt2cfwmo","quiz_options":{"score":0},"id":"4385174644"},{"position":3,"visible":true,"text":"29qp4n5j92gre bwkmqp821xab2ri kyqdft g46vvp19jlvq1k 2sgm90q2b6 1ewvm 8491gfakn3p esqiug2cxmg6ka gb9cdrtlc9qs","quiz_options":{"score":0},"id":"4385174645"},{"position":4,"visible":true,"text":"mcijdsetfwvx 9b6tmxv phlw18ap37 20s5wv","quiz_options":{"score":0},"id":"4385174646"},{"position":5,"visible":true,"text":"3g748xwkq6o 2ut8g nb63dyj stbl5wm 2dkk61h6 29bjrer dxet33 v6f36uqes9qu vgqoxu1nmi5lm gtuqaph","quiz_options":{"score":0},"id":"4385174647"},{"position":6,"visible":true,"text":"j5p31 t1ltv5rpt 85q5tlwq2sfsv3l bh4a2e rev7lbj7 2qwf83ylrc3n fiufpgf h3fp2fd0y5o uw3phwkrek ihy0faqy9s1rsp","quiz_options":{"score":0},"id":"4385174648"},{"position":7,"visible":true,"text":"prd59 gqs7t8tmls 633ujsd7d9ni u1fkx5a6mx318w k71rc82lydu43 orkxf utbtip9c1ky72","quiz_options":{"score":0},"id":"4385174649"},{"position":8,"visible":true,"text":"dc5yl63yj6lv jqeok71lte 4leao9ms1xu3oh 0fdb4m50ip t31tl6q57jjpmh v2osljafdca1x6","quiz_options":{"score":0},"id":"4385174650"}]},"page_id":"168831388"},"emitted_at":1674149695054}
+{"stream":"survey_questions","data":{"id":"667461686","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"987ob 7kiuo4teh1 8s7deqmvpopsp txo4fxjj5e 8eqdafh1k7yjhwf 889ll 0s23juj5vyyq99g 7390ddsh565 lpni4hn1bi0"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831388/questions/667461686","answers":{"choices":[{"position":1,"visible":true,"text":"1vdqk14 sjvrskliu ejn42p38f ougj5qtxi6k5q 6d2ccy9073i9","quiz_options":{"score":0},"id":"4385174676"},{"position":2,"visible":true,"text":"b0yc27 c3v3i nhneas7k4y dqth374wqfs9hqf eg6g53l03g 8fg7266kcffpx7 6i9d7rffvncy s0f2on","quiz_options":{"score":0},"id":"4385174677"},{"position":3,"visible":true,"text":"k2kv88vnieg5pk fxdpcorngy bmidk g2lb58 qkbeew82lmprw","quiz_options":{"score":0},"id":"4385174678"}]},"page_id":"168831388"},"emitted_at":1674149695055}
+{"stream":"survey_questions","data":{"id":"667455128","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"21b2d1nm vcduxp396s3f vrgn9riooeu 2w1y9r0lhe5j0po cfv6aya xsek4vnv4"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830050/questions/667455128","answers":{"choices":[{"position":1,"visible":true,"text":"1cqki1ijt cnkrfpewyh hloep tun23aq fm2hlturu wp1hn1005","quiz_options":{"score":0},"id":"4385137324"},{"position":2,"visible":true,"text":"8q54jh807g67 0chem4m32w 6g6cg4kfbpyp48 wgbo0l1 3ivc27 h1g0jagebgvj36d loo7agxubx imfmbchanx4w47p o4rfv9","quiz_options":{"score":0},"id":"4385137325"},{"position":3,"visible":true,"text":"axjh0ev2g5g0s01 d1f1ekg41aq 1r7fcho4 adaclkcgj0ra1h5 obp9ot rak96hmu bx3804jjlr5vg wruubenes3g4p h41e18dufrs40kb 9t34k1uad6g2a0y","quiz_options":{"score":0},"id":"4385137326"},{"position":4,"visible":true,"text":"0rvnqa934hd356 yx0p7kab01kubvj yuy2tik0o6t 3854yf6up2mgfc kqn54h6qvfoj jecuuxm0d9s u5d8y0hmv5bcww eumwsigjumvc543","quiz_options":{"score":0},"id":"4385137327"},{"position":5,"visible":true,"text":"sutsvkyg7 x3pr1f8 gnn8yg 32ls0it6m8c5c3 5xhh23hb0bck c5kbcphdgm 8n1839 8oe5f4wdsxv oyijcnki143a","quiz_options":{"score":0},"id":"4385137328"},{"position":6,"visible":true,"text":"a14e7gtqqbrm ei6h8ynhoi92vs dq0oj6m rulpoxmdtew b1cnc7v 8pxkgtbq6vu0o","quiz_options":{"score":0},"id":"4385137329"}]},"page_id":"168830050"},"emitted_at":1674149695180}
+{"stream":"survey_questions","data":{"id":"667455130","position":2,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"9no46q bgj8bu9 qbwy78onx0sp5df 1s2n38k6ly8xo5 xanlhf0dqvej htj1rl0wp ip01j7fb6qm"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830050/questions/667455130","answers":{"choices":[{"position":1,"visible":true,"text":"7dpysnial1 w484xmm33rpralf fsb2j19 r599iaw30wgp gk8tit5i681m 14lsb5gmddkr qrncp46 vp0lw srtca1i587dq","quiz_options":{"score":0},"id":"4385137340"},{"position":2,"visible":true,"text":"0yflf5ua3 5l5tu93l 45fu03hrvt kii5twmbs6n uqppc ca18nfpevvny 8od85fpdw gc9isqks5ou7","quiz_options":{"score":0},"id":"4385137341"},{"position":3,"visible":true,"text":"uuv580b3 ejgygxa3nxuod qx2s8cx85l1vu c96g3513rcjdmuv 161c5f mrclx05fg2o 9r8lk172","quiz_options":{"score":0},"id":"4385137342"},{"position":4,"visible":true,"text":"8jhq2vl1hj6 dvnvp6su wshwoa9 unbnfs wjkm9w4w5w glupwsmbjeb3 26q9svrti 21b4potlf4d","quiz_options":{"score":0},"id":"4385137343"},{"position":5,"visible":true,"text":"y1xu41qdgnk hw9yooajs6n xhaqwoc8 hxi6ioaqcnf3 le1ein6yt","quiz_options":{"score":0},"id":"4385137344"},{"position":6,"visible":true,"text":"y7vgshrq086w 18x5gdxg0 ibct5mdxqm78py aq9lw3kx kq3rfwnnod q4a8qk7q 2mytdfvtgxe q7w14xsgcfsw4","quiz_options":{"score":0},"id":"4385137345"}]},"page_id":"168830050"},"emitted_at":1674149695181}
+{"stream":"survey_questions","data":{"id":"667455161","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"8piluvv5gm y4fyg bdn90lnhlw hlp49ut5by 1wcskj bo4qich35bkbh84 9s7n4art qxh35"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830050/questions/667455161","answers":{"choices":[{"position":1,"visible":true,"text":"7v9pb77j2u5h8lq fjdckl44c6tdi oxtly8metbj35c7 2coi267okn 772jt3x4 8pdrkhod14i eeyu3ox bkl79rtci65 0jt9nxkpamu5","quiz_options":{"score":0},"id":"4385137468"},{"position":2,"visible":true,"text":"w13utk5t7u98 ltxgdnhqgh3 tv729vqrf2g8 a3kf9ym ddp3yd ryqfnhyyshm","quiz_options":{"score":0},"id":"4385137469"},{"position":3,"visible":true,"text":"4o86igx uap6ssaxn rej7oi49j4nj g1afe aj0rahjii gdy2ygm yrq0r33ljaqav","quiz_options":{"score":0},"id":"4385137470"},{"position":4,"visible":true,"text":"ywmratfmy ko10n3cmegap9f vor9gwdvwevpi2 7oid9t72lp yc37r5pssxrm d9fdyo6kj9g5","quiz_options":{"score":0},"id":"4385137471"},{"position":5,"visible":true,"text":"l1ei3wav57twf yn5mmi2almiidx7 gdkyhn 3npig9sip","quiz_options":{"score":0},"id":"4385137472"},{"position":6,"visible":true,"text":"rr84y ht7saym46 rqxpn8 qix3c","quiz_options":{"score":0},"id":"4385137473"},{"position":7,"visible":true,"text":"dtaeau8 wv5ay39bjtph6 uxvtv8 bfa13j2 t1cxi9sgxs9u wh5it","quiz_options":{"score":0},"id":"4385137474"}]},"page_id":"168830050"},"emitted_at":1674149695182}
+{"stream":"survey_questions","data":{"id":"667455172","position":4,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"f4i385t8gi2y iukko6gtimv6 2ljnv 3s7mawxra ueavu x4pl1nkyt1s0b abfab7bvxtkmrw d4843lq j5n0c7"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830050/questions/667455172","answers":{"choices":[{"position":1,"visible":true,"text":"5dkq8pnhf1gag8 u73xqg mej8lwdqo qs1tuihyc heabchr403srhq0 51c5ipel70a csfc3dwuxn9mt9m m9j6t37f xe547smil yy8ji7kgqx","quiz_options":{"score":0},"id":"4385137485"},{"position":2,"visible":true,"text":"q02a6wo56w 6fc33b k7d7a9n7grsgt n7j84b6552eyy58 xapgm1 xxxxklio 1m6q53gxh23a sl0kn09v kdw23flh1k9ss 1kfm8tao","quiz_options":{"score":0},"id":"4385137486"},{"position":3,"visible":true,"text":"d3482iajo1udye ian1i2sop8y5 6j6u9vi h2flbi3mhh 8bo3d4b7wnwto x7dlap9vcos","quiz_options":{"score":0},"id":"4385137487"},{"position":4,"visible":true,"text":"ytjtpqs9tcdnb 5pxact7wjjdtx filtao5oyv w02h42un1hxtd5h dbagrj511v8 d2k7wxlw","quiz_options":{"score":0},"id":"4385137488"}]},"page_id":"168830050"},"emitted_at":1674149695184}
+{"stream":"survey_questions","data":{"id":"667455179","position":5,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"orgitaiw xmkvjmfm ev9wjtt7jn r1c6c1a2w01 axiagkpsr7 n6shk7sv7miuqa cjsunx5lysasx7"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830050/questions/667455179","answers":{"choices":[{"position":1,"visible":true,"text":"v2fci0n3 q922d8hp kc1mka6c9 9hkt1vtlsv nx48ppjd kaisn r586rs 5awcm 1y8b5ew","quiz_options":{"score":0},"id":"4385137492"},{"position":2,"visible":true,"text":"fv4rhyxgmweyo1r g2yoh7nm88 ubgo22v 8e2ukol","quiz_options":{"score":0},"id":"4385137493"},{"position":3,"visible":true,"text":"6b1kwthm24uw054 42yns43d9d2 9aelxhek6m9cer 1scie9 ob3erxdvkvv 5bccusj 9pwd586","quiz_options":{"score":0},"id":"4385137494"},{"position":4,"visible":true,"text":"0x7t0 engoyj qcv0e ta9rgyjcob sqj1y247 2f6nqh0s4e9qtbb o3q661emk54yvlq am4wkqctn26fblr 4yd280s9dpbyq","quiz_options":{"score":0},"id":"4385137495"},{"position":5,"visible":true,"text":"1mm0gylkc8tpmj vpmvo0eme0 9kriqmlb dm300brkw7certk 096rh8ts1ll 4j1pr","quiz_options":{"score":0},"id":"4385137496"}]},"page_id":"168830050"},"emitted_at":1674149695185}
+{"stream":"survey_questions","data":{"id":"667455202","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"tius10di41k9wls fmdlvphlmbl4fd 8t41mn pkss9 f7qg4uouq15l 9al8qjnu8lg4c d62wfnkbe4mx5"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830060/questions/667455202","answers":{"choices":[{"position":1,"visible":true,"text":"pxw0w9ui9m4oc inicqftdpfe dyp4ai vn1pmsp6 6cm2gr9b 0ruklaf8 xhb0a8q","quiz_options":{"score":0},"id":"4385137700"},{"position":2,"visible":true,"text":"p28lapcj xmelobuak9wnfe k0ilacxb575 54eam 96ng7","quiz_options":{"score":0},"id":"4385137701"},{"position":3,"visible":true,"text":"gw913n4emtltob sqr3rxe9q alm4u96n5dbp 79stl7bky bseq17ndb ibhcv2mf06av","quiz_options":{"score":0},"id":"4385137702"}]},"page_id":"168830060"},"emitted_at":1674149695186}
+{"stream":"survey_questions","data":{"id":"667455205","position":2,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"o5429bwk bdk9efwp y207rta 5ir7a m3btvu7doifx o2as6uky bmp4untymjr 2qx7e254wxygi pwf681dh3l"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830060/questions/667455205","answers":{"choices":[{"position":1,"visible":true,"text":"ihqtbuwrc7tkk t8rxgekiec q546dffi6yo7ato ip17xm5fe","quiz_options":{"score":0},"id":"4385137740"},{"position":2,"visible":true,"text":"ithl3 gl2tfo1dl uuiy7ls5 7wkeslse","quiz_options":{"score":0},"id":"4385137741"},{"position":3,"visible":true,"text":"ul101be 6w0o3urllk5o4rc m6ttbhcts3nrpq cd93g3j6","quiz_options":{"score":0},"id":"4385137742"},{"position":4,"visible":true,"text":"keye6y0 vxjehf4oga975i hh0hwvp20y0 hmvp1i de9i0gf 309gv73vahw5tv6 b7th25myd dl56yk9tjsnwbkg nlwrih","quiz_options":{"score":0},"id":"4385137743"}]},"page_id":"168830060"},"emitted_at":1674149695187}
+{"stream":"survey_questions","data":{"id":"667455210","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ccus8ci s30ote6pf5enhkv 3xw226wx0r4r soqp6i56rx7p"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830060/questions/667455210","answers":{"choices":[{"position":1,"visible":true,"text":"ror4u04bm535i fajv10 ji7v3kn9 nu7pljg4qd vtkx1s","quiz_options":{"score":0},"id":"4385137775"},{"position":2,"visible":true,"text":"5xjy8qckk 6w20pov 9ductfhj r469e wem8w rc0jks9hwv","quiz_options":{"score":0},"id":"4385137776"},{"position":3,"visible":true,"text":"difesvxw9al ygl163e5w9dv6 x2glb8m5g6fxm eiibhejl","quiz_options":{"score":0},"id":"4385137777"},{"position":4,"visible":true,"text":"tnfsnewa16k155 klbxdolp it7hi 3bwcsq4kxfs6ag y4rjmghck8fb1 kbr64tikluwhtsh m6uwesc5861 tdfj8p qrf7oe2ydofs vy2xx8qsmcvubj","quiz_options":{"score":0},"id":"4385137778"},{"position":5,"visible":true,"text":"w4u167 jcxljoenbixyu2 xmxki pnigr00vdimxddq","quiz_options":{"score":0},"id":"4385137779"},{"position":6,"visible":true,"text":"s4ksxp4wgiv24 jd0h5q9cdqbaf2 at9rhpltsnm9e 9vvcvfubdxoda 3dr2s4l bcvpvk5qq","quiz_options":{"score":0},"id":"4385137780"},{"position":7,"visible":true,"text":"p0nngm2a15gos i48053r8tp2si 5c356fdw 7lwo3016oo2u ysdomx7ts utp4qqa6","quiz_options":{"score":0},"id":"4385137781"},{"position":8,"visible":true,"text":"hjopydw3jidvpdk opbjs2sr 86c6g94l 1045p9imdm h0ewun d0ki3w4t li53wdcc9 v0m8nd0q8rim c9kuoh 986j08boiew4s","quiz_options":{"score":0},"id":"4385137782"}]},"page_id":"168830060"},"emitted_at":1674149695188}
+{"stream":"survey_questions","data":{"id":"667455212","position":4,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ycd70f 3tlkc9fg5 uhsj13x 3fy1deg e3x8xxtprtx 35w2t0fb0kt 3c7sp4a9l vekf5fhta3agc tqtiua55"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830060/questions/667455212","answers":{"choices":[{"position":1,"visible":true,"text":"3nd2k 12iqy qcy1q78egxti b88f20djp60v 6orn1h44 xb2fsut8p63fd spd9rybvtlrx6 p79lf27l","quiz_options":{"score":0},"id":"4385137792"},{"position":2,"visible":true,"text":"w6va3wm5af u5earys3j7d2w0 aigku 8mhkw6l24gftb lj78ittnu2lhxct","quiz_options":{"score":0},"id":"4385137793"},{"position":3,"visible":true,"text":"1vjpoerlc8kf lnqycklqdoe yt06t24brl aoqrq","quiz_options":{"score":0},"id":"4385137794"},{"position":4,"visible":true,"text":"syf9d5k3axfjhqx f1un5ergu68m7h hf5by9f1 0qf94 docxia9h qcda6u ja83rjw7gdm","quiz_options":{"score":0},"id":"4385137795"},{"position":5,"visible":true,"text":"al4dbwow9is7xut pif50a9 434fsto nh16xfiu34c0eld beshoy","quiz_options":{"score":0},"id":"4385137796"},{"position":6,"visible":true,"text":"q9ufu06kh4d 4oogck630yox 7wsoh 0l2dsb3 8noi1cwam8ukth","quiz_options":{"score":0},"id":"4385137797"},{"position":7,"visible":true,"text":"3e5ijt o0m3chiw3pitxr8 4hciaiuh9c gpc5q4olp3cib 0bhsd3payjog 562gi7o4647qe 39j8aa4ptw jbydrqc7ujb iqlxnqn4uea","quiz_options":{"score":0},"id":"4385137798"}]},"page_id":"168830060"},"emitted_at":1674149695189}
+{"stream":"survey_questions","data":{"id":"667455215","position":5,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"0qm15jfh tv1ui2w edoha95n wbhjp4 rui3rtv6xf4n5 v920f2a1hrd 5d7gj7guq r7ljcjdk2f8t jv5iocm9mv7pg cmow0h6"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830060/questions/667455215","answers":{"choices":[{"position":1,"visible":true,"text":"sewil7695q3 nu4xd9w cr1qqpg4h9qlr ktchj5oeb4 1ns6cdqbjex5f w2y8iflb52 kpkid 1f8unrp e17xh5 qn47cr","quiz_options":{"score":0},"id":"4385137810"},{"position":2,"visible":true,"text":"q21t3nuf 71sfp kag1g9kes bx74gjdj1 uvk0chaofja60","quiz_options":{"score":0},"id":"4385137811"},{"position":3,"visible":true,"text":"nkbskl7xaxqbh76 pgggq5trhj3t isut5qlmwmxnbw apxr23h4v0l","quiz_options":{"score":0},"id":"4385137812"},{"position":4,"visible":true,"text":"jotjdok64gv ya4g5j b0w379 riavnfi10mu3bm 739xph torva74 9dcgi9ns8qlnho","quiz_options":{"score":0},"id":"4385137813"}]},"page_id":"168830060"},"emitted_at":1674149695190}
+{"stream":"survey_questions","data":{"id":"667462113","position":1,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"xvodyrmsj8o5 vqjqrurdq h74609w5o8cj kpy303cf 5qyfp1flg hpfvhtg412qu bwhmup tfxwjcltbmp"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831471/questions/667462113","answers":{"choices":[{"position":1,"visible":true,"text":"x5gvnnvh 39thim64p k3naeh9 ebx5et8ci8vnjwq mwfb0867jts36 lq8ghnv8c23c86i","quiz_options":{"score":0},"id":"4385177065"},{"position":2,"visible":true,"text":"5atgqxr5w uk3ussdg7 29qlw s20qfx0w1u1d cdx47v m76g66t1j x9wuj hyv5095ipd9ly","quiz_options":{"score":0},"id":"4385177066"},{"position":3,"visible":true,"text":"yqvo5j rojr27j6ww 5k0ra1y96j6 vbd70ncr0 wdoxqqhkv a283r7g tshidt7i0jw 70gxqa3 d1wh0y 8q2x4yu5u3tcga","quiz_options":{"score":0},"id":"4385177067"},{"position":4,"visible":true,"text":"53838lqaxys gt190mgek1r2r llxh86fi38xyyb puwhs54wnxa8m5r cb8w1f312hts1 80gh5hrp0o 9a6siov 5i3l99eiefhoq","quiz_options":{"score":0},"id":"4385177068"}]},"page_id":"168831471"},"emitted_at":1674149695299}
+{"stream":"survey_questions","data":{"id":"667462114","position":2,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"r5gme6gxar 540ixc g0a32bjvkgg4lh 9n8hpb qor7i9od6r max0ae1vu08"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831471/questions/667462114","answers":{"choices":[{"position":1,"visible":true,"text":"tk3pmts41 aw7w4y8e5 65iplksmu5wa0o 9ve8f0vgh eiy8hki8e3 5vbwg fa3nnnvu3uq c43makf6i","quiz_options":{"score":0},"id":"4385177095"},{"position":2,"visible":true,"text":"3kvwm3v j0x7vrrpnxmtcub 7h9g43wg71ppkn 71nswd5eq ocqpss07r05dej4 7ln0vdgw0a","quiz_options":{"score":0},"id":"4385177096"},{"position":3,"visible":true,"text":"07td1maptf9wde nrlxmvshy dgpasbrawvpndo id9yjt2tsi mkm0ri7epkw5d poj8pv8m4lu0hc 2xh0i62g5j wxokec50ps52h8 d6uqtrf td70pitsu","quiz_options":{"score":0},"id":"4385177097"},{"position":4,"visible":true,"text":"ccw6cg wd5s85rpk dqlppdkh wpqg1t9vhdq8c","quiz_options":{"score":0},"id":"4385177098"},{"position":5,"visible":true,"text":"8b85ql72lufp 3r2k118 vy5uh6mnntsq5 x49hvqp19g 3oc9laa75hjxwn7 a77dw8 aiskfi350fyh5w 2h7ra ry4mj i2el2","quiz_options":{"score":0},"id":"4385177099"}]},"page_id":"168831471"},"emitted_at":1674149695300}
+{"stream":"survey_questions","data":{"id":"667462122","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"0wpcptufvllj 4yjhb78a bxn0uwh wxberovodxawinb 414fl1hatnpl 6tdxbt dpieidpjnqba9r"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831471/questions/667462122","answers":{"choices":[{"position":1,"visible":true,"text":"c7nxl 3qrbcjg tddcypx5j63ne1 ebrs5911s ilsx5w8mvfs s24oodbw hbah99rw65wt7i","quiz_options":{"score":0},"id":"4385177138"},{"position":2,"visible":true,"text":"1lx4btr3s0pqq63 y93x5lqe xmyta126vo 07q0rnh 4f2bxvoc441 wcnvx ytjeo8g5a wjqrg 134n2q fgobl","quiz_options":{"score":0},"id":"4385177139"},{"position":3,"visible":true,"text":"t9hwm2nyw se2sl72a t70iepatjw0rsh kq6ta 6mhce jgfjh52 w3ivi m0sxg2i4 pup4tsn7a18","quiz_options":{"score":0},"id":"4385177140"},{"position":4,"visible":true,"text":"j6w78imo yhv9sgxs64ii ep2ckum1ge3 3d8gcbsuw j0b95oqfwn","quiz_options":{"score":0},"id":"4385177141"},{"position":5,"visible":true,"text":"5gn4d25al 29tdmvxhe1 svxcxt7qsq pbnlphkoa xvotqve1o79","quiz_options":{"score":0},"id":"4385177142"},{"position":6,"visible":true,"text":"sexvxfmqb jp6xina8q 3gsyu2jfgvpag d2wcp0k5ukuk igg5ecqj rtkd5j 485nmxjd tjodfsyhu5","quiz_options":{"score":0},"id":"4385177143"}]},"page_id":"168831471"},"emitted_at":1674149695301}
+{"stream":"survey_questions","data":{"id":"667462126","position":4,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"5r90gmyyy 1eaacbfag0g4dtj 4rlwnt3r jxg5ruhn tkkml hhlu8r79jma"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831471/questions/667462126","answers":{"choices":[{"position":1,"visible":true,"text":"vln5gpqjq tglcfbuxu7b dob43c qnisv2 td55l7hc91pd00q 8gig93a5h 7hrhg6drxsxy bj0oldpxa33by1 4q9mx98wbi p0wb03eabrt87q","quiz_options":{"score":0},"id":"4385177153"},{"position":2,"visible":true,"text":"fj0a0nfwmfjrong q38px84nyk rvqmj 2sv0x6n9a hm88jqn87kvws","quiz_options":{"score":0},"id":"4385177154"},{"position":3,"visible":true,"text":"ms6ilfpbca 8ota11f 1qvg0ellfxis pfyvkkuujjjg qih57geu 366h9cnbrnny9 4sx4q0hbgu","quiz_options":{"score":0},"id":"4385177155"},{"position":4,"visible":true,"text":"si9tpsg54u 13dds2djq4kh kra03y5p43 j8rej5mv d0tkvig6","quiz_options":{"score":0},"id":"4385177156"},{"position":5,"visible":true,"text":"k5ijfpctrn flm2q7kn5t4jf xkjec55tbfsgsn7 r61gy346sxt","quiz_options":{"score":0},"id":"4385177157"},{"position":6,"visible":true,"text":"v9u400dqc fii651ftc 29rn2dffioa0 1m22amm42b qhs0wpth5 mva3eqo09hvo7x 5od22d7a 7m4606e271a6yk","quiz_options":{"score":0},"id":"4385177158"}]},"page_id":"168831471"},"emitted_at":1674149695302}
+{"stream":"survey_questions","data":{"id":"667462130","position":5,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"a8ibp46e09n3ae uwv4r3pbpla uxqx8 8nlfqe2ekyj6b1u ju2o3ts 29q5blc7t5m225x rgcjb uek905hycm3 8nkpkppcdm4s vfcx6c63bfppfk"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831471/questions/667462130","answers":{"choices":[{"position":1,"visible":true,"text":"xkuphh 9sloeexwdfla qyx58xq9u ne6p3x","quiz_options":{"score":0},"id":"4385177171"},{"position":2,"visible":true,"text":"83uko6624m otef3go 1ba21xa3 6k24mmw t82m7my9ipep","quiz_options":{"score":0},"id":"4385177172"},{"position":3,"visible":true,"text":"ke2gqx614f p7y9pi89 asll5jaju89e1g vgrj3wbe x815bgx 67md1tfhviy9v","quiz_options":{"score":0},"id":"4385177173"},{"position":4,"visible":true,"text":"w5raj381jcgffq 9o1b73 0jnat47bs8bq9e 41ffc wcmivj410jtu19 njxb3v7 gurti qsjowjls niwyt2clulpdpa fe0skx96v529ui","quiz_options":{"score":0},"id":"4385177174"}]},"page_id":"168831471"},"emitted_at":1674149695302}
+{"stream":"survey_questions","data":{"id":"667462135","position":1,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ictucjn9av1 hqjkdsl56q dw9ouny 3wbjmkmik8m pxirnbm7f jq31e0w572q61j le5ke3if 8wkwmox1ow fsu8b5 ci0ot"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831478/questions/667462135","answers":{"choices":[{"position":1,"visible":true,"text":"k4q8hnwb0uticgy kx7rcy sp8nvx036 u552gi 1icsxiqmdmects 0c1d69aee soiye","quiz_options":{"score":0},"id":"4385177200"},{"position":2,"visible":true,"text":"bolb3i7f7 5d7y5 n7il93or tb2599 wlr1hh88d5bjpr vu3v5uudajbgoa s7kmwnhqpph","quiz_options":{"score":0},"id":"4385177201"},{"position":3,"visible":true,"text":"ve8olc60hjdia ake87 4iv5po m484jgkaut 5e285a0hgsrirjm qtnofl05rdtx","quiz_options":{"score":0},"id":"4385177202"},{"position":4,"visible":true,"text":"1pix5bfrx 9pncw4rp5g xf1sm2qr c474c1s67jgcrw trxj2k huiccx1kxt1 l13mo1hij12","quiz_options":{"score":0},"id":"4385177203"},{"position":5,"visible":true,"text":"kf0u04jlsopl 1b4xnt0g 3ehjhwg d9465xfy24uisef 0xv77xfgm7x","quiz_options":{"score":0},"id":"4385177204"}]},"page_id":"168831478"},"emitted_at":1674149695303}
+{"stream":"survey_questions","data":{"id":"667462136","position":2,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"c4f5ohh3sr2w xoto95lot 7lykuivbhs078b h524lu75 mvss35agi"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831478/questions/667462136","answers":{"choices":[{"position":1,"visible":true,"text":"1blqraty 6uddh9u imhcfci dho72p k7feqgqqqr3jm7a 8y7drc4m8m8f1l0","quiz_options":{"score":0},"id":"4385177210"},{"position":2,"visible":true,"text":"cnxmsuqasj3g gm6e1da2102igu c3w07jugiuro afj54 kpoom7 n11yf","quiz_options":{"score":0},"id":"4385177211"},{"position":3,"visible":true,"text":"82nkl1jumcnc6y3 raogw1xp84nswty h77x7 f26dju09o2 ajgbdjdjne6i","quiz_options":{"score":0},"id":"4385177212"},{"position":4,"visible":true,"text":"dukxs7vo kj6j0x kjsmang 6g8vgh t9ymo1h2hfln6 iyuklw ou0uq6","quiz_options":{"score":0},"id":"4385177213"}]},"page_id":"168831478"},"emitted_at":1674149695304}
+{"stream":"survey_questions","data":{"id":"667462138","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"jvr1s akb7hxxk2ptt1q jhgxvvgirs2d9 rae88p7 b54u3m1g1 vflgmpv75w5q fauxphpa8bxdutx"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831478/questions/667462138","answers":{"choices":[{"position":1,"visible":true,"text":"jnkfpiwx3ye b6osvfmkkn eek8p036ayn rt6k5em681q78c 8j9brp8e2qsa 3wu71v85le4x65g","quiz_options":{"score":0},"id":"4385177214"},{"position":2,"visible":true,"text":"oriu3pl31qd r6u7isqu2p1 s6lrtm ybawl9g3oafvxx9 sw16llmo3dpc2xx v0r4lrj serixtbxt sy64a2vcyjf f8mhp","quiz_options":{"score":0},"id":"4385177215"},{"position":3,"visible":true,"text":"v0j4ixrd gxjah4rsf03mhtt selnh 311w2 80liajkb9v2h8 m7aggx9 kmjjabnan kk3g4y8jiuv n15toj tt60bhmd","quiz_options":{"score":0},"id":"4385177216"},{"position":4,"visible":true,"text":"vmvi1nlvkd1vy 13gv0qjxtri sty84 df77l wwh82kck3x0 7jer7beg 8x6vcrnh9qiaf3 nhl5ref5v5bud dol9qivxsg8owna xsw7e0s1","quiz_options":{"score":0},"id":"4385177217"},{"position":5,"visible":true,"text":"a2fdw9jbcytl8ok 0ir460hfwm8 rqecrtla vyi4l3tpv eyhkdh47w2uixp","quiz_options":{"score":0},"id":"4385177218"},{"position":6,"visible":true,"text":"yvusg0ns7jw9tt nadlph4 0ur0o5dhan 9jlq9878999lbf","quiz_options":{"score":0},"id":"4385177219"},{"position":7,"visible":true,"text":"48eqbvdq1ubpvyk 5f4pwr438ik81xj x7ioyubgl90808k 12tr703dg0s 9xpyni000c9sbr","quiz_options":{"score":0},"id":"4385177220"}]},"page_id":"168831478"},"emitted_at":1674149695305}
+{"stream":"survey_questions","data":{"id":"667462170","position":4,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"csowuuey o93r9336 qf9fym8wbog1q l48c9"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831478/questions/667462170","answers":{"choices":[{"position":1,"visible":true,"text":"0k0agd84ev s54c44f90gaj pol5dlpg9t fa5trrngfu cvrd4cmtmq","quiz_options":{"score":0},"id":"4385177381"},{"position":2,"visible":true,"text":"9egly8imf1 9k1iapox y80fk4 58nrajt2 swkm1na","quiz_options":{"score":0},"id":"4385177382"},{"position":3,"visible":true,"text":"se2mcirb6lt5ty qqt53dn jpg4b3wk0c7 91onwco8d7ll0 e7y4mwxa ojs5nky 6u7am","quiz_options":{"score":0},"id":"4385177383"}]},"page_id":"168831478"},"emitted_at":1674149695305}
+{"stream":"survey_questions","data":{"id":"667462172","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ypxnp3k6 708jao1b5ok671 cv8x263j0f nk1a0a5cm 7y4r2bclg2rgkd7 alax412w9y76"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831478/questions/667462172","answers":{"choices":[{"position":1,"visible":true,"text":"dil7s3hpsuf ms76n abih45plj 9bw5noujg c759tcfvo7t3e","quiz_options":{"score":0},"id":"4385177392"},{"position":2,"visible":true,"text":"okltv66m4qav 88ijt vcq7k5m xcpwi9e4v7 ujqbg24ap g715rctpafkm0g","quiz_options":{"score":0},"id":"4385177393"},{"position":3,"visible":true,"text":"vev8vhb11 dc5mn3colgaea8g jflk5j niy1qt8onj788","quiz_options":{"score":0},"id":"4385177394"},{"position":4,"visible":true,"text":"hq1wbebc2gleq tj2vf867 n1aqc afpekt91re 89guq9pn9rrww 0bgvg74","quiz_options":{"score":0},"id":"4385177395"},{"position":5,"visible":true,"text":"bxkr18qipct gp9wcqfk n69e6ai66xmy01w xlh7s17hlsbcyt o16ecq6vf42q crmh6p ykbam9mxc37ah2 ii40872r6mws 2xobrm","quiz_options":{"score":0},"id":"4385177396"},{"position":6,"visible":true,"text":"x18wk 3k4tt8ae kkrj0xjbf krc0uyrj2u 0qq68","quiz_options":{"score":0},"id":"4385177397"},{"position":7,"visible":true,"text":"fkx0pjep58wx jpxs8a7vfnf bq2hlx3vhqsn qv4d1evms x64h8k3e tqaeb3mc a1yiqm7qjgi8 cnaw9173k6js msisp4d7bf12 qan9ffq3sv","quiz_options":{"score":0},"id":"4385177398"},{"position":8,"visible":true,"text":"tdjr97it3qvsl 8pfqjvhuo91 mp8kdeymnwv9f 8apy9eshudwhq veo63l6q9np w18s0102tvjru 6lckytkggn6 ncdlx68","quiz_options":{"score":0},"id":"4385177399"}]},"page_id":"168831478"},"emitted_at":1674149695306}
+{"stream":"survey_questions","data":{"id":"667455348","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"se3rt7c 9l8d9rig3sk jk791y4nv9qp2 nof9xr8 6irr0mr2uv73g4 rmv1ko9gx2 qievxp819lc o9jbr n1vrq"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830094/questions/667455348","answers":{"choices":[{"position":1,"visible":true,"text":"6sudul87 6605b94 w6ubg6a7p0v ufh3d5da nyic6pot11a64v9 awpjgnn22pdgup aidahk8krd 0vhentor51fp ujasxxx1srf","quiz_options":{"score":0},"id":"4385138588"},{"position":2,"visible":true,"text":"08yvwmw 441si6svo1bkxm o85tbsa3k wlkn3","quiz_options":{"score":0},"id":"4385138589"},{"position":3,"visible":true,"text":"uvmasd gagqr6qlswnr af0hp3nfg2vucd vbtkx8vssxlvg6k 5g3rhca48m2 y8gwlm2","quiz_options":{"score":0},"id":"4385138590"},{"position":4,"visible":true,"text":"mrjr3x0 57yyh77a3cmlcmj mmwked8tvqnt5 bwe0hh5dqp1sn3 pia1tu u7ujusnwtvt be24cc8s5olebg 5n65mmu5nki2b","quiz_options":{"score":0},"id":"4385138591"},{"position":5,"visible":true,"text":"k3wcw3bjn hq24e21 f5vvmq0kipi 1smhqty4 p8x2xxy0obkxv qsa4cuvmy81r7s 651b5hlw 2ej3xrm289eqd2 ugnf354v90h 92mk44ghps6cm","quiz_options":{"score":0},"id":"4385138592"},{"position":6,"visible":true,"text":"k8yajsxquuu 94uubd5wo9 piwa122aeek 3fhrq5gvwh14jho 6n8k5a54q7nf rnoqwd82y1 tkhxop blr0p2l7utyydd 7eto449ipd","quiz_options":{"score":0},"id":"4385138593"}]},"page_id":"168830094"},"emitted_at":1674149695413}
+{"stream":"survey_questions","data":{"id":"667455351","position":2,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"dni8kmob8f47ly 92hb1pg6lvuklf f3hvi6 yjiq3bvv yys743quapbmwm 9xclo63 ydxt59b89 iwks1mdba9iuje vmaq243f75y4m 8cqcf54w"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830094/questions/667455351","answers":{"choices":[{"position":1,"visible":true,"text":"9e7yu 2366vw4sa3 rhhgm0 yg8p9f9","quiz_options":{"score":0},"id":"4385138595"},{"position":2,"visible":true,"text":"1ldfxfr k0hnmi dcjdiaquo0xyac remaba5g8 9pslek2fmlvxf7 vn4gl8yjs10up4d b4i21994 78q3d","quiz_options":{"score":0},"id":"4385138596"},{"position":3,"visible":true,"text":"aq8d89iqk6 ytv9mg39tq5 lb5gtx1kdm5a 7scilf5j73g580i tr22c460a1vu dvpernw oy2j9qqnhhbpia9 ufy7twqsl2ovj","quiz_options":{"score":0},"id":"4385138597"},{"position":4,"visible":true,"text":"dlt857wic34l 5y0sijl8 1jmsvy9r e7psvexn8rj0nw ioo4ka04w vtk0ihmg27ac bm60oah9 chljr8vrnt8adx1","quiz_options":{"score":0},"id":"4385138598"},{"position":5,"visible":true,"text":"mk4nh6bnddk1ph 63551586l v0d3vhn w9s7xmbbm3 cbddi6vgmddb se5grc1xr2ycuu bmk1yr7kq3e","quiz_options":{"score":0},"id":"4385138599"},{"position":6,"visible":true,"text":"ob4dd4 r36mdre p96uaag57ld7vo yeqwbn7w2tgi4sj wcgvpd0 4jq0nh42ev8 23i0ye5x 4vuki","quiz_options":{"score":0},"id":"4385138600"}]},"page_id":"168830094"},"emitted_at":1674149695414}
+{"stream":"survey_questions","data":{"id":"667455358","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"79kmj4p2d 3sbolhwfrs ioe6b93hwr70jt7 679dpby y4mxy 1pr869ii"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830094/questions/667455358","answers":{"choices":[{"position":1,"visible":true,"text":"mqjitf64d0 k83dvyn 227nrf 7a5bulp 0jvp9hmiew umwdpysrqbgp he3hkvoxi8d t0ekmaqml bniybp7","quiz_options":{"score":0},"id":"4385138620"},{"position":2,"visible":true,"text":"ocaqjvupc or8s5on 2txbvlu6e20 8uxgb ll6ktjtk gnwy7knkeeev y2t9cah46lu7 rkmxywsr 8qgmy6gm3fd84 eko2r","quiz_options":{"score":0},"id":"4385138621"},{"position":3,"visible":true,"text":"3kjxifk f8vld xx9lg2ejtf3ccwx 1rfll3376hrm xwaevy7i2krc 93h2fggv1nak vvo0hqr0n 27qcal0ao","quiz_options":{"score":0},"id":"4385138622"},{"position":4,"visible":true,"text":"qqsv99lam uidx4csd1npsc nccxm6ueer 2ihx3c5ysd","quiz_options":{"score":0},"id":"4385138623"},{"position":5,"visible":true,"text":"3ooy243l5h usutwf3do32na0o t5vo8vggvjl pp44k52k3dw swg9bvhtl v4mn5goadw4 9g9jefyf6qhsijc 2j1bmvuu83brk","quiz_options":{"score":0},"id":"4385138624"},{"position":6,"visible":true,"text":"fnme6flca1yfyo kj1q1j tsfq15e2iam8 tyny80 fjb3nf p0mtkwgteciioq p5b79nk1a44d0re lwpwx8wu0e2 at5p0nbaqbp 67tqasnk0lb9dr","quiz_options":{"score":0},"id":"4385138625"},{"position":7,"visible":true,"text":"8n8el8 it06oap6nv fapkjmk yxemrfihr61i heif6anfb o9nel86ws 2t1vpytr","quiz_options":{"score":0},"id":"4385138626"}]},"page_id":"168830094"},"emitted_at":1674149695414}
+{"stream":"survey_questions","data":{"id":"667455370","position":4,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"lqroep8etllsp 3o8w6vilbyqlwkm b5velmro8 b4ylvv9kkt"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830094/questions/667455370","answers":{"choices":[{"position":1,"visible":true,"text":"4bdsyi00551 hsh1woqfmclyma sslfhk y11rdswosp4l 2my277i74fedi lool7","quiz_options":{"score":0},"id":"4385138700"},{"position":2,"visible":true,"text":"qdn040 3tljs j7juh9xjucx 31royj9xs6q lg56gf8c81s","quiz_options":{"score":0},"id":"4385138701"},{"position":3,"visible":true,"text":"ytndri0sy3noxx p2d3euo 4d2jqiygj8jwasr 38lf63x39sxb irlep2 cgi9pr 4pcvga t64nykcc4gn tv9xfejs41 er8a8pw","quiz_options":{"score":0},"id":"4385138702"},{"position":4,"visible":true,"text":"n2hd3mf5 7gg2j7cn55e77 1j1ijenv62 ntd44byw6 g86vqe62ogytk qcodrayuwmht5tn ix3qc42ybhqd 76ry3 goorkieate s2dofir","quiz_options":{"score":0},"id":"4385138703"},{"position":5,"visible":true,"text":"ct0y2yaibh 5hhaeb2u5jmncca ibf7eql6h w3k37s","quiz_options":{"score":0},"id":"4385138704"},{"position":6,"visible":true,"text":"w9647 j2wq2eisb85rlu js474wesi1j 1d7eiqq 3o7ubmmvsbl4","quiz_options":{"score":0},"id":"4385138705"},{"position":7,"visible":true,"text":"deheetxt3hlox 8e4hd76i 517ltrj0v dgi0r19ud5srqj 1qdru4f sl8p3 7gxolfxkhlc5x cm0seo7wroouww","quiz_options":{"score":0},"id":"4385138706"},{"position":8,"visible":true,"text":"4xv8h753xoo8n1 9atxgj8 5eaohgaugpu3in ybq32s67 atg5l7u4aotebk1 0asuiahw4 dyakwm kpqe9vu81dkfvcf","quiz_options":{"score":0},"id":"4385138707"}]},"page_id":"168830094"},"emitted_at":1674149695415}
+{"stream":"survey_questions","data":{"id":"667455395","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"0qnmuchico4fa8q dfvkni 15mwj2a8 1c8qh1 y3dml65 yfodif0 uik9a vja72b"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830094/questions/667455395","answers":{"choices":[{"position":1,"visible":true,"text":"k9cwqyrhvt6t2y lijf97ywdxctyr nahqrqwo o73wy4r13r","quiz_options":{"score":0},"id":"4385138779"},{"position":2,"visible":true,"text":"0dtp7umdw2tn 3qerkatyyrcndup s70sgadrf0pjwna 13cc30nv 3fku5vgj5","quiz_options":{"score":0},"id":"4385138780"},{"position":3,"visible":true,"text":"8vwwlvlx3 rl3x4l r3itwqo 2uiml2j417 p0x4d9pxyhs bdyo06b oyuo333qq","quiz_options":{"score":0},"id":"4385138781"},{"position":4,"visible":true,"text":"ua5rn0o lgn9qrvh a3xi82nkmd9s2d sdhqh3q8m yu21i9gn3 u4wyck8efnu 47ubnif60vxre wfs92q1c84 qyyup","quiz_options":{"score":0},"id":"4385138782"}]},"page_id":"168830094"},"emitted_at":1674149695415}
+{"stream":"survey_questions","data":{"id":"667455427","position":1,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"bja345d 7gmh5 u335j3ifd bmn2iwulckt qbbgde6 4l86ghgt3bnplod fsq6qpqp ogqqnp01j gycd6318in4xl s7sxc7ric"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830108/questions/667455427","answers":{"choices":[{"position":1,"visible":true,"text":"h1f77hud lvvbp8566vit8 eij3l1f6m86rt9 658f6 auhky2x 1qb9805ptcl4yvs","quiz_options":{"score":0},"id":"4385139013"},{"position":2,"visible":true,"text":"82ow11qv0ewplb iipebne7de pccthtsby8y 87tn87egsum9nd 41xopta 65fhf560c 326vjb4pp4mtdvx 4eqmo8viakl pmuv626kfxaqr 9laiyqibgse9","quiz_options":{"score":0},"id":"4385139014"},{"position":3,"visible":true,"text":"8prnel y3ygc5kxmjbxfc hdd0bos b9w3a1gfm1sm6 8wwao s6j2lw5ennapne 6psoe bxyxi pp141xm uatdplo5f60et","quiz_options":{"score":0},"id":"4385139015"},{"position":4,"visible":true,"text":"yejw4cxbnjeup 9war0kp9wl ngag1wd y6quyhtcv lhai6 6fo022bo2 0y9e1wuj sm9c4jui n9udx","quiz_options":{"score":0},"id":"4385139016"},{"position":5,"visible":true,"text":"o9i4r2ej 825mg 5rifxtuu83ox y3nhp","quiz_options":{"score":0},"id":"4385139017"},{"position":6,"visible":true,"text":"3vukbvawqxox yxo374n8xcpw s6ai05vb64 gld3jyi97 auhaq08 sl5tt43hgv n549d7mf0n7cr2q 44x9v5o31yor0 oel767u6o1evo5 knipqna","quiz_options":{"score":0},"id":"4385139018"}]},"page_id":"168830108"},"emitted_at":1674149695416}
+{"stream":"survey_questions","data":{"id":"667455439","position":2,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"yvl318t7lj 7wdmc8mttupa 2g7ogtjr976g lm77fy59yrhs4 tb928lr2 kiug5rc d4hq6y1"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830108/questions/667455439","answers":{"choices":[{"position":1,"visible":true,"text":"du6tsy5k rhhm4v540es3mo oqkt8crv5wvgvj s00kbxja5h 6kmpu","quiz_options":{"score":0},"id":"4385139062"},{"position":2,"visible":true,"text":"b52dpf uy6exuyx l6ugq4ki qkl8h9l 8ptnm 2jwismc2by8 ls428u","quiz_options":{"score":0},"id":"4385139063"},{"position":3,"visible":true,"text":"86bpwgdk1q0 4iigbk1xjrm hncx3xkk5lj e75h213rkrpjg cku6p9no3qv rn1dvjp5hmtbfar 694ly6v9m ue5ad4q xomxi5c69o6pqm f75mwyy5nd","quiz_options":{"score":0},"id":"4385139064"}]},"page_id":"168830108"},"emitted_at":1674149695416}
+{"stream":"survey_questions","data":{"id":"667455443","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"6myggi xgx2lptp oxfg8bgavhkxd h8586wxt2vv7 tba2bd 07altrm 2vmmtgfir gchrhk6kdw"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830108/questions/667455443","answers":{"choices":[{"position":1,"visible":true,"text":"5acyluby8j u7jbf p5x8foahy k5uk8ubi0 ov4ouretpl lxrf3 ufct467j99f2hfl 7dlgr8eo","quiz_options":{"score":0},"id":"4385139109"},{"position":2,"visible":true,"text":"vpcmt6klp47b0 q3o6j96 3mm9gebofu1n2 jq7dq","quiz_options":{"score":0},"id":"4385139110"},{"position":3,"visible":true,"text":"r1wmg0i0ae892 acmd77ws2k 0pk531 pb5k6xev ury0cf","quiz_options":{"score":0},"id":"4385139111"},{"position":4,"visible":true,"text":"0hemigqnwym5f0j vn57ess p5vjtn nylhr7","quiz_options":{"score":0},"id":"4385139112"},{"position":5,"visible":true,"text":"gl7otpnp 0b43hto2wr0o tnavjwnce9lc5d 7j6hs ca3qbj70t b1nc7q4 7j0696hum k6ytijiprdmdvd","quiz_options":{"score":0},"id":"4385139113"}]},"page_id":"168830108"},"emitted_at":1674149695417}
+{"stream":"survey_questions","data":{"id":"667455463","position":4,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"pjksyv7o2s qtssl1k83 r6ypxm 30krmk4j0e bp8y6m0or"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830108/questions/667455463","answers":{"choices":[{"position":1,"visible":true,"text":"olpxel7n8ktrjx l0x3kfm fg4f96cpv60w2 kpp8waqc9j1y6 2bjrk4f v33tofsgnbg s6gcg386 kcubx22oev1ju i3n5l7veb","quiz_options":{"score":0},"id":"4385139230"},{"position":2,"visible":true,"text":"jkdmotc7gfb43b2 4cfkvtut 6w3ys rn3v7u17ccsx 0gyynlvql xgsrdfrtffvr","quiz_options":{"score":0},"id":"4385139231"},{"position":3,"visible":true,"text":"7ngjrf1wlkv1 wox4shhjp4 yivmg3epgwl5d 11tfmviaf7pv59s 14c6b1vudh brl9d3b799gibr fknowr6c fi6k91n34pm270","quiz_options":{"score":0},"id":"4385139232"},{"position":4,"visible":true,"text":"o8r5r32univvk5 dhx2tc7hbbgl63n bxhmmoi6vk 1ynu42 8goapcp gh1gr8dab p1iik6y eud8jxcg jilsond0434xp77 g1s9ydwgrd6y5tb","quiz_options":{"score":0},"id":"4385139233"},{"position":5,"visible":true,"text":"p9xp9x7yepqx wg9w4q8 9f8n1maik5weupa 9s5nnuan5i co88w9s89g2pfq lxrdlybm6 fl702pf2x7 xsp9xl8yrrg m8xre7g s61if4ojul0qlm0","quiz_options":{"score":0},"id":"4385139234"},{"position":6,"visible":true,"text":"5k001wyjow 9rfq00sg6vcytu yxddli0wkif3wk1 vxk0kcy6l80jfc a06swtlqbdg 2lk8kytqeeqs 81w3s8","quiz_options":{"score":0},"id":"4385139235"},{"position":7,"visible":true,"text":"ia4knoy0u1vku io2wydrh90d6 52j9qii2gcgc9fk tx7409a0o59ffk0","quiz_options":{"score":0},"id":"4385139236"}]},"page_id":"168830108"},"emitted_at":1674149695417}
+{"stream":"survey_questions","data":{"id":"667455466","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"17ks2i1p 1roi7n8j p21kn jkrvnckxot 3nkruc3e ugsatu9qx7wsw qsttqci3i03e4"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830108/questions/667455466","answers":{"choices":[{"position":1,"visible":true,"text":"n1ic8gxnyrf1 5qacyxsh ixbp7b33rq4kigy 2rdbf2a4 rfms8di taxqa3oc","quiz_options":{"score":0},"id":"4385139244"},{"position":2,"visible":true,"text":"i4kx3k5s1t 3qw1r6n two72xjft yvu2k2 lywg4w3xhffbwrv pu20atqyr5g 34tsp4wk nwadhm3qirol8y o5x91 755w2suug91yywd","quiz_options":{"score":0},"id":"4385139245"},{"position":3,"visible":true,"text":"2xl9i1c4 11w3fsb78 bfoj2 4rmfw06mn2lxpjo wfijsno52y90 wxuik4 70c6ioht","quiz_options":{"score":0},"id":"4385139246"}]},"page_id":"168830108"},"emitted_at":1674149695418}
+{"stream":"survey_questions","data":{"id":"667455236","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ibdmqewlt gbp5yhhp c8i5s75wwg 0xosr1devp 2ijbswdblw0bjko k6httw7 kfr0tk"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830068/questions/667455236","answers":{"choices":[{"position":1,"visible":true,"text":"3nj2ikx od392yg7 akufy84 6gw9q axmbaw59fn nfc8xe410jg 6allsd7jg7u 3wyrciq0uje8rn0","quiz_options":{"score":0},"id":"4385137904"},{"position":2,"visible":true,"text":"cb0o3tqf5 ijxi31vsg1 i0ga1cu10vmcgry gfmk6","quiz_options":{"score":0},"id":"4385137905"},{"position":3,"visible":true,"text":"i4frvbso f2k3tyww70ehqkp 5qy73 21lpebsil0fwspd kbx0uypchk wqdb8j0a0 8dr1nvs 592s2coha4r0v","quiz_options":{"score":0},"id":"4385137906"},{"position":4,"visible":true,"text":"lmg2vsbrw180cm otp0wq1e2 530jnetga2dp88 e2uploqajl","quiz_options":{"score":0},"id":"4385137907"},{"position":5,"visible":true,"text":"p0gqg3u03 11u6b6 xdb1lqr bxjqwc48sis 5dd68pfpw lxtumpinwgj vwdyg0uw4u wlvjnya7n7fr","quiz_options":{"score":0},"id":"4385137908"},{"position":6,"visible":true,"text":"74mma6 8c3o4 sjp4tg uagi32nfox489p 33m8i9q2t g1ecllv3xjnumg w3i1p26o789 3g8l35xh9m33","quiz_options":{"score":0},"id":"4385137909"},{"position":7,"visible":true,"text":"217g3m8t fdh1g7f6sng3r nt3u7d6n8j1d5 k8hwfegvg4i3xhs 6wung qmv6ilblwpg4t4c r04g9x2 ra26624 hl1gnkjlcu3pn","quiz_options":{"score":0},"id":"4385137910"},{"position":8,"visible":true,"text":"hc8vkvc9 yd3dll3x 2mo5ol4vkqru4k ubqgf odk7ghioir7gc lm0je2 4q3r0 ks32ix ra4rjxv2d9","quiz_options":{"score":0},"id":"4385137911"}]},"page_id":"168830068"},"emitted_at":1674149695519}
+{"stream":"survey_questions","data":{"id":"667455240","position":2,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"6vdliabstjs pjq6v4ea sux2ll21xwm7h qt6k4qflxuslj ig5xnx aqyngvnivqhi63 k7trhm7s9n yc1uiij"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830068/questions/667455240","answers":{"choices":[{"position":1,"visible":true,"text":"n59jsjeq v4yp5kweu77pjd 6dsaj62 f51922ixg bfy1tdx0ajmwq sq2g2ca6t1ag t91oetm","quiz_options":{"score":0},"id":"4385137924"},{"position":2,"visible":true,"text":"miou6 s74ictupiv15j a1ojxwpxsc 24wjut22cino3li 3nef4p8a1onycu s2iku aluhi 78a20fa","quiz_options":{"score":0},"id":"4385137925"},{"position":3,"visible":true,"text":"96wygu4eqjryyr vft0o 1omksgrj4e4u hov2cmxl xryqlb9qe5s 69bf1gxp prv2hpeebouh","quiz_options":{"score":0},"id":"4385137926"},{"position":4,"visible":true,"text":"80jv70rswm80ng s3yupsiahmmfxf 0qerhyspf y1shqteym hu7hk9dkpo 58idxrntiwiqc h36nn","quiz_options":{"score":0},"id":"4385137927"}]},"page_id":"168830068"},"emitted_at":1674149695520}
+{"stream":"survey_questions","data":{"id":"667455243","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"1lmh6obuf8d67h 9f7639oxptfr pgb8r ud5359op7klll"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830068/questions/667455243","answers":{"choices":[{"position":1,"visible":true,"text":"ht5dtccv20hfamc 6m2dk7 edktxyp 9bpptvmpf 76dv4sin8ps33ac","quiz_options":{"score":0},"id":"4385137931"},{"position":2,"visible":true,"text":"m1e1sw2b xk8ujpclrw rnv8g5qtu04 g1hy75 887fxgre","quiz_options":{"score":0},"id":"4385137932"},{"position":3,"visible":true,"text":"8iqn4b9 ico6j1l7h b44vd6d3383m0 rkm2tqhsi00qy 5hso1f919pq 5yyhjb5h7 dhhsrml5g6kiefx apd2weqls w4hg7 p1rwc2o7pko","quiz_options":{"score":0},"id":"4385137933"},{"position":4,"visible":true,"text":"erh5b0d 47uxrflw 23r21lf24iwf bb8yqiqs79 3y8eb7le7y2ocb8 juni8","quiz_options":{"score":0},"id":"4385137934"},{"position":5,"visible":true,"text":"x32489wko4ns f0ob7be3j pmc9ui3s6qp0 08kfm8yaqcanw 8aot5prgvkqyseo q4vp4n656gj57g xygwva 96gw2r2npb2","quiz_options":{"score":0},"id":"4385137935"},{"position":6,"visible":true,"text":"sjsfbmxa97 xq0084k5hm3 hivfs05sfir 40dj15utx bo9mx1yu0","quiz_options":{"score":0},"id":"4385137936"},{"position":7,"visible":true,"text":"jrb1fu2j x90bw8mlv85gpl0 xfo84sk0jy6 l3392k bucd4nmlc7yj jdj3x2clsir95 uw9dhluee e9ai5v8pm5 4eufmbvvi","quiz_options":{"score":0},"id":"4385137937"}]},"page_id":"168830068"},"emitted_at":1674149695520}
+{"stream":"survey_questions","data":{"id":"667455245","position":4,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"h3en3q3evla 6eye52o9ijuo 078omcsgacycjn9 a76ryw2wl 5ejj2a399 r62c2jrxj2x7y"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830068/questions/667455245","answers":{"choices":[{"position":1,"visible":true,"text":"90t457 4q172 f4kmgq3 vc09o 7hqxmsg9jx6 7fenorkuyq ov1kus876aiv0p rrmrq5qlittb6y","quiz_options":{"score":0},"id":"4385137944"},{"position":2,"visible":true,"text":"9aii09 2r9oaqs23 j2x9qy94cnxfgn jrlxnqn9n","quiz_options":{"score":0},"id":"4385137945"},{"position":3,"visible":true,"text":"r8jgwe j87njrw3yo1fla bbngq3 g26et","quiz_options":{"score":0},"id":"4385137946"},{"position":4,"visible":true,"text":"91n95cu 5fp11un vngsubusfe4 vgbho","quiz_options":{"score":0},"id":"4385137947"},{"position":5,"visible":true,"text":"9qw7f8sdfws1 6wfueox bghljj3 4yal6iqt73m6han l921hy 6yr04p7c","quiz_options":{"score":0},"id":"4385137948"},{"position":6,"visible":true,"text":"trrepiynd5phbcr 35t494bg wm02s1clg9wkxl1 eemhx faxm4gd3aqepewc rp34jr2ho5gb5q ol65t043p1 66bg3yos kh4xbmdvqyvm ibrokgs","quiz_options":{"score":0},"id":"4385137949"},{"position":7,"visible":true,"text":"ni9kx4ob31 mbn9d2n3t4j6lal xel50s53bw6eydo b0s9p p512cv6lrh 2jq1h yqmu3hg70qxw99e k1xjbd vv9lbb4kvlt1jg p86c1lob16h","quiz_options":{"score":0},"id":"4385137950"},{"position":8,"visible":true,"text":"3tx1f04qbxgku4k modppm wc68tgts7o me6s4w7ikqolcg4","quiz_options":{"score":0},"id":"4385137951"}]},"page_id":"168830068"},"emitted_at":1674149695521}
+{"stream":"survey_questions","data":{"id":"667455263","position":5,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"gx0d844wwsnss b89h0hrw ihlud3p23xbv3 mtv2g99i bda7267b5 pxxsxit4ey lcji2t"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830068/questions/667455263","answers":{"choices":[{"position":1,"visible":true,"text":"e0dhk875qtxip 22ci0nbrenwe tnj1517py jfe77 wnmap goid8 s5r92q9nx9gbxf oy5bkxrwsyqx 7oemt6oc3wcw2 5iwm8","quiz_options":{"score":0},"id":"4385138060"},{"position":2,"visible":true,"text":"nnkw2nj3g1wb 6os5x3rph9 oejmdr7e u9vf9uaxis17w7p vee9xcim164h jkcq9v7e01i njv8rrgfo3hfumd ha6djf y3jckk4un mwvekphui4","quiz_options":{"score":0},"id":"4385138061"},{"position":3,"visible":true,"text":"0b1s6goa 31eeolk05pyxfvy 5fd1rlv8g8g 9iachco 3gqpac6rjo hmq9tr5huh4mxm","quiz_options":{"score":0},"id":"4385138062"},{"position":4,"visible":true,"text":"kkpmmshmp2owso tm5dsf0bt4rm474 w1wwr4 p6ltlf pxm8o1um1cv 8lh8goe9rqqo58x 9j7ej5b 4chhf50nlimyy","quiz_options":{"score":0},"id":"4385138063"},{"position":5,"visible":true,"text":"hygcvxvhqh1um 80ak8e wd9b3vkvg hkyetchu2pdm1 tn8hu6fropre lqx4jilgig1929w","quiz_options":{"score":0},"id":"4385138064"}]},"page_id":"168830068"},"emitted_at":1674149695521}
+{"stream":"survey_questions","data":{"id":"667455268","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"of74qo8c 333x5lwc2aral be0joqsxrs hvgeb7ltbcu dtyfa2y98wnn2 jbv7c vjee2juk267 o2fd4pyua"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830074/questions/667455268","answers":{"choices":[{"position":1,"visible":true,"text":"jyb7orcvpwo c9lcx 9aq0cld2fwngg5 ple2j5y3xn2px itcvwnp0rpn2 ykoj6qw las5p s01fya1co65 q6qrkss","quiz_options":{"score":0},"id":"4385138108"},{"position":2,"visible":true,"text":"vd9eniq 7lpv8hbl bq0pjeiplw0 f0hjp7xyv2pk8 82d5r7ciqjbl ngrw1mugyp 0qb5g4vnxxjjpf","quiz_options":{"score":0},"id":"4385138109"},{"position":3,"visible":true,"text":"s84erg ueidus67wjw w849glheqbx5p0m w2am53 erjlbf9pu7","quiz_options":{"score":0},"id":"4385138110"},{"position":4,"visible":true,"text":"n9yd3gp4otjuvma 16axdetwq epitspj3f8hq bgqks3 1s7wh28 qn8cff mfk5el7vr2w26pg 7bkx6xqe 1d9eryxaimnk u6sr9v3id0t","quiz_options":{"score":0},"id":"4385138111"},{"position":5,"visible":true,"text":"l3bswpvl 9obip6i6bvg ytwh8i mmn1n0p9xe9kiu rjgto5mi9ce5dm6","quiz_options":{"score":0},"id":"4385138112"},{"position":6,"visible":true,"text":"a7j5u 2td37rxj7 1lwcfapxi2cw6g 32egv55cc52fcv ay1jvha 1169qapnsa0avix w406ev2kwt1k8n y7xqqn i8uoafghx8 gelu50jf149xtg8","quiz_options":{"score":0},"id":"4385138113"}]},"page_id":"168830074"},"emitted_at":1674149695522}
+{"stream":"survey_questions","data":{"id":"667455272","position":2,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"svumjkj5ei6 t1jkf ttf93l bilmloj40l q6er242eh bojtdo6 sf5jtk 66a4anc 3j5cbh3k xdfpwwtdf3hpb3"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830074/questions/667455272","answers":{"choices":[{"position":1,"visible":true,"text":"i6ece2o dl6k3s11vd0 shf3m get86","quiz_options":{"score":0},"id":"4385138126"},{"position":2,"visible":true,"text":"fufxxy5ueb 5u74cl6a lol396aaape2 dwgaeqcphflg ogf55axqis54 1a338abonkbvc5 f0hj7rjhu 15gsns71xund4xp","quiz_options":{"score":0},"id":"4385138127"},{"position":3,"visible":true,"text":"di9p4lr30wahw 2rg14l uqqnx1roqy5k65r 2we720uhdva oyb5f74cil odhas8h1n4u3rj dqrhl943a","quiz_options":{"score":0},"id":"4385138128"},{"position":4,"visible":true,"text":"b2j0ivu58yysns 4roq2 mqukye4mmik92 wpr49dqhc6y g6ivs5m7n9 iotdbwjay566 06vv0nn17yfqb59 peuvkh9jjd jly7qt4151 roq63i3ld","quiz_options":{"score":0},"id":"4385138129"},{"position":5,"visible":true,"text":"1rceqano97 sd5m1s3hsskyv7 bwmei412e ikfkbu xhdo2mx6 aqg5dpo10 sfjb38 vj05jf71y","quiz_options":{"score":0},"id":"4385138130"},{"position":6,"visible":true,"text":"7nlryn01exq u14xxgcx8mngy 4pc2y3 48lxatpljatuox vbt7cvv2cipj7 ise8v3j9wnomr ms330kk mgjaw7kgowjfq6","quiz_options":{"score":0},"id":"4385138131"},{"position":7,"visible":true,"text":"y0sx70a14 527jr the5p62a hga0cg5nio53 hv2s0l 6e2lq473mrdqgo","quiz_options":{"score":0},"id":"4385138132"},{"position":8,"visible":true,"text":"rxtxctm7 veua1a ds34biwojid 5cjj1qvd3 v8ksghp4g 6ist9e a5xrfr8r2 ae9rb2xw lguj1iafi","quiz_options":{"score":0},"id":"4385138133"}]},"page_id":"168830074"},"emitted_at":1674149695522}
+{"stream":"survey_questions","data":{"id":"667455276","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"6ms3lgjw25pq b20i2lk pkqw6iy j77i7ux32y8 e323sjcc kh8fxxm724seg"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830074/questions/667455276","answers":{"choices":[{"position":1,"visible":true,"text":"nqewt2eyb57 a96u7u 4sr85tfu1 acbvejxvxdui ur1p5sb 4a2r81h0hnw3m 51q3v7s4kllox","quiz_options":{"score":0},"id":"4385138155"},{"position":2,"visible":true,"text":"maso4 ovhyv0ixo hu4gwpq8ky21j9 qo2qc3kuc8n lvou1 a0wbyyp bqr9bre7 csdtfe ya1ltf6kynj93y","quiz_options":{"score":0},"id":"4385138156"},{"position":3,"visible":true,"text":"bjaogae0yct1yk slo3wuygf6 wh0fyn7lym fof1mvu a23qhlj 0rkb9sms 14urdydlb5vht dbw8uh0n3rwdj2i haqry8lhmmpcnmy gw3bvde3lsyue3","quiz_options":{"score":0},"id":"4385138157"}]},"page_id":"168830074"},"emitted_at":1674149695523}
+{"stream":"survey_questions","data":{"id":"667455290","position":4,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"8rej58igix 5ev85 tiximo qcv1v11x0ixckwa uhte1umn0p v1h2mr0lm6 duw2034nurju"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830074/questions/667455290","answers":{"choices":[{"position":1,"visible":true,"text":"xx157diwdtvnm 27fuvnqueywcf2d 7fgvt3b 7qte6 xb8oaf6bdynl","quiz_options":{"score":0},"id":"4385138209"},{"position":2,"visible":true,"text":"7uixmrb45 5217t8r2se vv8oeea62 4mjg3vqh og2vgrc5v251 xe8bb89i iefjxgj 5flbdfdb77 amgpmbo6gav6i","quiz_options":{"score":0},"id":"4385138210"},{"position":3,"visible":true,"text":"1sn25lv32td8 516w18 pdmovblb0hbd50 42vmf7","quiz_options":{"score":0},"id":"4385138211"},{"position":4,"visible":true,"text":"rnlfk p5x50v6jxbdfnkc lfjnc39nl8o ok6oyhwope sr35gd1kr5r8fg5 em4qqf7wj tt8linqt 8e8c6d9 s2geie6vw15ny nbkq71k87eu","quiz_options":{"score":0},"id":"4385138212"},{"position":5,"visible":true,"text":"g0otgfss8 l5ag3n97qp b3hbjigxocewjyi dflt05hus4w ddpumu2h7dx6ff pby1r9n a8d6xu9db rwapp","quiz_options":{"score":0},"id":"4385138213"},{"position":6,"visible":true,"text":"1w7np c3t0x knc262g yrfo4f1r4f4reh i8dhd9l1v77 72eamvjcaggrn9 fb7v3v2g2","quiz_options":{"score":0},"id":"4385138214"},{"position":7,"visible":true,"text":"n5h0km6i 58fjgrqq s17q2dwxiha 9wl01dstrdvo upbsfwpyyryn 5ducq pm1vbp w4no5od9pwqf b3e18e3i","quiz_options":{"score":0},"id":"4385138215"},{"position":8,"visible":true,"text":"o9ln4neod6l3v 5p7w4sosqt95e qk9mir6c48fbqj xlglulme cbafrf2g69p6nj htqcbq8v7u24lyc","quiz_options":{"score":0},"id":"4385138216"}]},"page_id":"168830074"},"emitted_at":1674149695523}
+{"stream":"survey_questions","data":{"id":"667455293","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"virtcpk896m68m bbdg4mss12ps3 qo4gk153jqp9 iotdms cxo7l2t9 gtofci5cg0er"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830074/questions/667455293","answers":{"choices":[{"position":1,"visible":true,"text":"1vflj0ggk1o9l nbqw3aj69wprwix i955uorj 69jyg2ci6m2lj sb3sor4o2 jmnjbw3i f6weyfas9eq1 yanlggtlu8823f s7fpa7","quiz_options":{"score":0},"id":"4385138239"},{"position":2,"visible":true,"text":"mgeif2h8oilulvj 4q5x7owpgk sxoc48wbr7u3 rmt30uk4m7w7q hpqj8faxcl3qrc5 qfuhdde a1itv i3292al93b","quiz_options":{"score":0},"id":"4385138240"},{"position":3,"visible":true,"text":"3an10n o05hsocsiq0quj5 9ay5x f6p79mjl jjcw6ym9dpfwrj sygnf5 bh3mo 1x146ti6 x4u0e3pxa1ko","quiz_options":{"score":0},"id":"4385138241"},{"position":4,"visible":true,"text":"va9yadd6 xsc7t62edxbwl d7d7n7ecqsealn u9ognb1ox nmaht pwy1d 5mdngtxn4ol1tel dxlmr67c00e hw11e9xn7h","quiz_options":{"score":0},"id":"4385138242"},{"position":5,"visible":true,"text":"b1qfaxqnj91j8mj edwip5b22pdd tuh6g5uodx2 sn4e9lv7xsuul jxmu0iubodnpw 7rqts1liyv27j","quiz_options":{"score":0},"id":"4385138243"}]},"page_id":"168830074"},"emitted_at":1674149695524}
+{"stream":"survey_questions","data":{"id":"667455297","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"lq8cc4kb4wb hagmv535tvyfw4 q505o lc9pke7la"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830083/questions/667455297","answers":{"choices":[{"position":1,"visible":true,"text":"gnig56iqkr f2p71ed2w9fr gnpyvvl1 9mc6qpbow5tam mxta8 t9blqkndj9c 1gisvkrl2 0p43lebad 6v56y0e392el ahfwj9tq6lbhm7","quiz_options":{"score":0},"id":"4385138277"},{"position":2,"visible":true,"text":"77wwt btv0ntp gym5s54 lr3ji8wtg4dd qoy58mimj d2yjili","quiz_options":{"score":0},"id":"4385138278"},{"position":3,"visible":true,"text":"9hphq 5qj6yrbg2na mnmodl22e8cg siook2te8gpl","quiz_options":{"score":0},"id":"4385138279"}]},"page_id":"168830083"},"emitted_at":1674149695661}
+{"stream":"survey_questions","data":{"id":"667455299","position":2,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"0cphg3eq5u jtapt0bso07ghd 0bgtvsb 5pd5xfhq5t1fgf w0jm2nstiu 93om3crky6skr q49leuh249 3q2tkvncda03g 40orw7354cy p8eku"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830083/questions/667455299","answers":{"choices":[{"position":1,"visible":true,"text":"mrhrmoj8c c8fd51r 0lbuywjnvnmijj 0tmyxfrg fggvqmm3bvivav 8b3elaxwyb d2wp2i hr0jllmfkd7 prv23lvvws27gx 0e6okfhy5sn","quiz_options":{"score":0},"id":"4385138282"},{"position":2,"visible":true,"text":"mv5uq8u7dup2r lfo2ih2jkc5cp r6jydm0x6w 1p1c3s67p57 7eulrlih 1v7p2vig8 99esod2scbs pg87n9lp9mg476 6hmjxdey","quiz_options":{"score":0},"id":"4385138283"},{"position":3,"visible":true,"text":"ahxj3 imh6reai78juny6 bop9te8ej8q6l gwxwkjup43o6tr1 nbvorbchco4ptow pwomv9iyd9t jkrjgggo3s 6ipaxevsfrxrmtw uq3n0cmg k1odeemd29l","quiz_options":{"score":0},"id":"4385138284"},{"position":4,"visible":true,"text":"t4pu3i ixvxd q10uqer3 gkqtljjmflbts","quiz_options":{"score":0},"id":"4385138285"},{"position":5,"visible":true,"text":"xwwgqr 7hlt9dq 1tloksa kehvt","quiz_options":{"score":0},"id":"4385138286"},{"position":6,"visible":true,"text":"2vinv5qis ipjdbl cuwxgei6t8g is2ihbn xs3q9m3rl","quiz_options":{"score":0},"id":"4385138287"}]},"page_id":"168830083"},"emitted_at":1674149695661}
+{"stream":"survey_questions","data":{"id":"667455301","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"5h0aahwgk8 eoh0xct ytmtsdr15y fawlco duk30p0qejro"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830083/questions/667455301","answers":{"choices":[{"position":1,"visible":true,"text":"1ib8lq0i q896a iwg01totbr1c8 nic9ye883le 9pjfihiuxbp5 6wu9jitrk1 k3kvcggtbgboo9 nenddst 1qgr2y ilmy2v1ddb9","quiz_options":{"score":0},"id":"4385138288"},{"position":2,"visible":true,"text":"05nxifhb7u4 v0tu1 i8u8dd63ekyj h3xah1h0s7k9vn m95qi vmfn7l5i7iu3es hrywpnsl6rp","quiz_options":{"score":0},"id":"4385138289"},{"position":3,"visible":true,"text":"1fgt8f3w 2i0cyt47w3sl6o k8x6l8i3stl2cc 2h13e9tt1cwaa9 e5l78fvc x2y42gkhqhkc7r","quiz_options":{"score":0},"id":"4385138290"},{"position":4,"visible":true,"text":"ye6nyey79pu2 596slmq qgawtw10v06mtad m113i7i8sd1l x9o2f","quiz_options":{"score":0},"id":"4385138291"},{"position":5,"visible":true,"text":"2mr26jkd368pv wfxs2sxlxag3o3 o15fq 5u1n5tdvs7j0","quiz_options":{"score":0},"id":"4385138292"},{"position":6,"visible":true,"text":"ffdpeyyy nvtjrvxqnqmr f2jwutj 5uw3e0w4n2h dmah35mk v979ctn 2s683h24","quiz_options":{"score":0},"id":"4385138293"},{"position":7,"visible":true,"text":"245tmey w2ltcq50f sktfit h9ymojx j3xrggyo 51d1y","quiz_options":{"score":0},"id":"4385138294"},{"position":8,"visible":true,"text":"lv4qkg6meoylx rmlf7cdb1aht r316f1u kfcwrh5 cm1m3 s5x3eqj3t v1h721uqo3k5km7 9n1oqah9","quiz_options":{"score":0},"id":"4385138295"}]},"page_id":"168830083"},"emitted_at":1674149695662}
+{"stream":"survey_questions","data":{"id":"667455314","position":4,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ux15jxtnsx3 vofmkp85 a5kvupg5km6vq0 t5g3uf3q7hn i661htxcb s7x7r26 orjn3oisiik"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830083/questions/667455314","answers":{"choices":[{"position":1,"visible":true,"text":"9fr03iy 9xmpt6xgqwpc k6t7k9gp1ht1 6h620md9wd70hh bs3kw i9htv yil47l xn823m6ih","quiz_options":{"score":0},"id":"4385138315"},{"position":2,"visible":true,"text":"it0ef6tr6h9nt t2jwq18hq3w59p4 oyx7e1bj86bcm 02aaa4kvmf8ru77 ssmts45dadkf gl1spgihc4 acylm 0vmvvgxv6yvey0 8xi073ec2m5","quiz_options":{"score":0},"id":"4385138316"},{"position":3,"visible":true,"text":"8m4mr5q 7wkbq4t8vplwih 0cvqrnnt qt9mjry1n xyqbuaepupf3 ed52xu5ak bd1vxipoo5ad s7pxs874 a9imnp7nm","quiz_options":{"score":0},"id":"4385138317"},{"position":4,"visible":true,"text":"2clmq75t 252dtb2ce3i fld27xux vrip5ox3ds8qnb lvp972rcrcjc ruvk2sclvimuvx 1ud7hrsbm567","quiz_options":{"score":0},"id":"4385138318"},{"position":5,"visible":true,"text":"0l86fyh8uo 090ymhll1pq 9lkwl89vq f1pcky3lidacy9 3ecmm11niu fu8tfp","quiz_options":{"score":0},"id":"4385138319"},{"position":6,"visible":true,"text":"h37f95j7qxup0fe tbx1l3bgii ol4bri0itarcwk doh3p2p0pi jq9guw3h382 08fje7vyonhmfe5 s2ioi7c4v6ci","quiz_options":{"score":0},"id":"4385138320"}]},"page_id":"168830083"},"emitted_at":1674149695662}
+{"stream":"survey_questions","data":{"id":"667455318","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"1gm3ed2s89 p2xfqhaj4r p7fwo6 12imab59cds2p aqmmilr2dvmwvky nljfs ts3g4cw6au9jii snbv40hbjcu3"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830083/questions/667455318","answers":{"choices":[{"position":1,"visible":true,"text":"dfyvo2qlanm8s ikbv3wa7030 rmjt80 o7cym2 1r6qae7c70v30 fko724jo7me82s1 bsuhjbov2ttwr q3w1wpn5twsv5e slrnk3sx m3u87rixhv6nmc","quiz_options":{"score":0},"id":"4385138386"},{"position":2,"visible":true,"text":"f47smf7vov8sp1 24r5d2b6q4s duka34dqpn6si 4r2wn 92ekkv2p794l8h l8n6cdc","quiz_options":{"score":0},"id":"4385138387"},{"position":3,"visible":true,"text":"okl5ki7v1r5 4oqdy4 x7ny0qmas 0ddqlr1 ja5wspe 2ieqa m3ucowjq1krai","quiz_options":{"score":0},"id":"4385138388"},{"position":4,"visible":true,"text":"gt5y6 vpjp0e5p6 vqhwb2dytiuihsv ru25v6bm mcihbuved71h2 quy2rej9e8eb97","quiz_options":{"score":0},"id":"4385138389"}]},"page_id":"168830083"},"emitted_at":1674149695662}
+{"stream":"survey_questions","data":{"id":"667455323","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"wv0en qigyrej bappxu8q j3ihl9p6ki"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830087/questions/667455323","answers":{"choices":[{"position":1,"visible":true,"text":"xv1me9s6hd aihplmw6 plhv5b k52pvh68j so1ggnlishy5m 6qe1fhw75gt k1jxdmddlhj35en","quiz_options":{"score":0},"id":"4385138412"},{"position":2,"visible":true,"text":"7ecrthfm97aysv 8u9a9sn1f9kj8 90owtm 0h8qgota7j3qpn vnfs9vleja36","quiz_options":{"score":0},"id":"4385138413"},{"position":3,"visible":true,"text":"v519ikhgw0fl s8x0shqsi ssr005 8xm1b7fal622l","quiz_options":{"score":0},"id":"4385138414"},{"position":4,"visible":true,"text":"gbpim9ar0dfgi94 nj0mq3ejst csj5e 763j6d5eo gf4fvw0 s2ea20n33yo iqd5r5l9 3t0okvw2oyh","quiz_options":{"score":0},"id":"4385138415"},{"position":5,"visible":true,"text":"jyxp0s7xfc7td5y vom52gda3dxr ko6256dtc5nv5f 7s8nej n32hyka ywsoxywn","quiz_options":{"score":0},"id":"4385138416"}]},"page_id":"168830087"},"emitted_at":1674149695662}
+{"stream":"survey_questions","data":{"id":"667455325","position":2,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"jdkmr4b5t3o9qd6 0u4huyxr8whu cxqri4e2i1a 88yyx cq3xbymudltf y6hmsrn4socbj"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830087/questions/667455325","answers":{"choices":[{"position":1,"visible":true,"text":"5aacsmqn 9p8l1tvy9i 0f92rvnxn9 to5xiaghqmiw 6xik80 jxvy64ut9 bjk3w6ywb","quiz_options":{"score":0},"id":"4385138421"},{"position":2,"visible":true,"text":"bc85jh39p 7nskr87a3x ny6d4 jlbavo9t8h6j6hu dh5ne","quiz_options":{"score":0},"id":"4385138422"},{"position":3,"visible":true,"text":"3vykabcspbl7qt ajqad2gu3v0jbg yeo3sobedrdfe0 1wcrn35 5l7jwq3 f5bc8bx","quiz_options":{"score":0},"id":"4385138423"},{"position":4,"visible":true,"text":"sm6lx7btphddbw 0882qf4o omh4u2i446c9p4q 5hqyq27jlse1e7 ns3xkqg8gcx8pc sjd0skhv 9ydxkadh8e814j7 0mk8m5tm9d38e 23cvhf22g lxb5c7c3p0oe1","quiz_options":{"score":0},"id":"4385138424"},{"position":5,"visible":true,"text":"2x7f7xmgur5a 6mn40jjs2dde 3th2mj8cn dv2pbu6s 7n8hw1f ptapt6nxgddk7a 4cj77u6m3mm idvm31 mx9ygnq3i 4lw1gmm4cwaig","quiz_options":{"score":0},"id":"4385138425"},{"position":6,"visible":true,"text":"3q51n sofjjqlu2y 6088c4c ncdkdt8exikoiir ew86v6gkob94v 7jsgkctqkhm1","quiz_options":{"score":0},"id":"4385138426"},{"position":7,"visible":true,"text":"7lffwkal h4d2j5 dqjf3y5 jwopu 0xf2vqmb6an igo5ri3px747b 0l5s9df7w7s","quiz_options":{"score":0},"id":"4385138427"}]},"page_id":"168830087"},"emitted_at":1674149695662}
+{"stream":"survey_questions","data":{"id":"667455328","position":3,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ieffti0yi qcxktrskkug9ij ebvs68ni79 1vrpnp mobkmem70 7uc86c7sx"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830087/questions/667455328","answers":{"choices":[{"position":1,"visible":true,"text":"7vvg5h tc4vy 5c5194t1n6eu wutfyil","quiz_options":{"score":0},"id":"4385138432"},{"position":2,"visible":true,"text":"17dh5pnpe3bc 6gmy6r15tq7 fuwlrcnnt61wotb mj08g80e2pri","quiz_options":{"score":0},"id":"4385138433"},{"position":3,"visible":true,"text":"414pty e5a4vs1 4p6122ihy qnjg9a xuowh226f18 hc449ct tdwm0wu29u","quiz_options":{"score":0},"id":"4385138434"},{"position":4,"visible":true,"text":"24k06ig dhy3huyx0plis 0n5vomlwuo38j 0nft5aw obgn4qcoq0l44b l5dtviydcom58cn 699vqm6 06i0mr52i0 u1mvn mm1bqovxpvtwkok","quiz_options":{"score":0},"id":"4385138435"},{"position":5,"visible":true,"text":"3fr4ttmtr3mhvr d7xcfp6tx48mne3 ttcyvypnom ik9eqkf o7q5x4veph 31y5w8u036c56rh 9yar58y9t5d","quiz_options":{"score":0},"id":"4385138436"},{"position":6,"visible":true,"text":"jrghjb5g3h6t dlpx7hve7lijy 77ergx421ad dgekp5dauuod5t 3mn6a 7m9wvlhvgeua 5orruhepinotb hd948u958 23p4f fmprms","quiz_options":{"score":0},"id":"4385138437"},{"position":7,"visible":true,"text":"dvjf23fp1f8slys 6120e2kbl8p1 f2ildddc i9ocnxo dk1c5jm5bx3 1mmcj3qmntljpbt 889694rivh72g07 25yrmna iwjlytheaogoxq fanj2","quiz_options":{"score":0},"id":"4385138438"},{"position":8,"visible":true,"text":"f2tlh hih5om u7aqefshc47ph sxxt22yg7hi","quiz_options":{"score":0},"id":"4385138439"}]},"page_id":"168830087"},"emitted_at":1674149695663}
+{"stream":"survey_questions","data":{"id":"667455329","position":4,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"96mfgjfkj4g 1roun x4g5tcrq d52byhs855 cjc897qm8l udgjrsby"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830087/questions/667455329","answers":{"choices":[{"position":1,"visible":true,"text":"2ny2fhgpm6 aturc40fuggi de2bnbhjnc a8jmpcw54h3nu pij7dkc3 sbrbi0rbi40ox2 wskx4gyt7aoc65 coi4cfe4y p44mj88ikx 93sodjvxi7ny30","quiz_options":{"score":0},"id":"4385138440"},{"position":2,"visible":true,"text":"t1f53t6jo 5s7kaoe ma28g93gfjjsm nwfjlfr2 h4k3jav 4xvidc3fv 8enehee7txlhvp ca6vkoxrb465pi xmi35um8q54r6 4rvruqr46m","quiz_options":{"score":0},"id":"4385138441"},{"position":3,"visible":true,"text":"i7iw5 ap5gjyafbm2l adp3lcc1 52hc8 j6ldt5","quiz_options":{"score":0},"id":"4385138442"},{"position":4,"visible":true,"text":"468nunilylfthe gwy8lhtgga9re4f 5xacgti673jfgs 3eei9s6qwg4avy ksqn6cwpvl585 wtyw59jhy7kck m462cr65qglmq ev7c0b5","quiz_options":{"score":0},"id":"4385138443"},{"position":5,"visible":true,"text":"yxrha98q xgjtmqc6x6tbsq l5co87ln2j3044 49lpv4 l8rfhvt2 rp4v9ofww2bekc7 ops08osul9","quiz_options":{"score":0},"id":"4385138444"},{"position":6,"visible":true,"text":"dbah1h80x 07f9vbs n89jmtwm0t2 47sd0ilc umky7iesp5j1ye f825fm7sn5fteb","quiz_options":{"score":0},"id":"4385138445"},{"position":7,"visible":true,"text":"9ybbt8x1xk o12xtb esgrab5p169kpou jyx54 456l76rs9f 3pcmlfoju rfyofv71 lb7gr6gi2ab0 gmexy","quiz_options":{"score":0},"id":"4385138446"},{"position":8,"visible":true,"text":"k3s5bwg5b2q 0ikv741vhxu3x4w efpp0p21i1s 44ca0fl4bklmn","quiz_options":{"score":0},"id":"4385138447"}]},"page_id":"168830087"},"emitted_at":1674149695663}
+{"stream":"survey_questions","data":{"id":"667455332","position":5,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"v80ku mx1co9qwm34tat e9i3mdjcvixs grggkttt lhn014lmqj86 achjddrt9o5fx 9v07aged4niq0g ye1woaclolxuaq w5e7jclooee"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830087/questions/667455332","answers":{"choices":[{"position":1,"visible":true,"text":"u1e4v4rx27412v v9mjw7oaf 0t873cte 57y89l xdqtturimm5 b4stpodx65s8u 2mk2es7jwrpn 7enb3sp29","quiz_options":{"score":0},"id":"4385138468"},{"position":2,"visible":true,"text":"w0mid5oagg qx0e1bvil6w5v6 0cadbm51x7hbg rpxgn9yni","quiz_options":{"score":0},"id":"4385138498"},{"position":3,"visible":true,"text":"7rex013 m75tu1nu9orrc2 k4du9rcsy2n5l0 cfbiki1u6cp2f qe81rjnguphrum j4019 tbl21q37","quiz_options":{"score":0},"id":"4385138499"},{"position":4,"visible":true,"text":"sat97b1hk6dx9k uq924nht7pr8cb 7nr3h2hclmiqg txrkxr29wtrc217 bxmed4ll1b23561 vvsu7 x293il lrl3e","quiz_options":{"score":0},"id":"4385138500"},{"position":5,"visible":true,"text":"h3yh19ckoclpq 0hb213i nj1mfmvbj9 p4ibgetarc6h6u 8kahs","quiz_options":{"score":0},"id":"4385138501"},{"position":6,"visible":true,"text":"xyvg34bae2 7u2n4l87h aec3h1sy5aw62r 60yajbqvxifw65 c7q9ty4pdby2d vyjp2 n7tavs0550g46 07p64c9pp8oo","quiz_options":{"score":0},"id":"4385138502"},{"position":7,"visible":true,"text":"kn8f11mlx sucpq9a 79n0u6vi1tgt b0dom486a929h ocblyvsm6 ti4tnjv533","quiz_options":{"score":0},"id":"4385138503"}]},"page_id":"168830087"},"emitted_at":1674149695663}
+{"stream":"survey_questions","data":{"id":"667461429","position":1,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"vq7ho4rb qt0fpw3 fvn1b2y21n fpkcw9v73dqvfq0"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831336/questions/667461429","answers":{"choices":[{"position":1,"visible":true,"text":"p7fu5tjqvd qgxdych hv1xcryuq7jlia 1qjuijk40 2v6u2e kwqcepbnx 2hjta3wqc je2wbyr6337d5 o0fq46u48nsa as5jyqahxo","quiz_options":{"score":0},"id":"4385172931"},{"position":2,"visible":true,"text":"tubba qc6l28jc4m1xi 5lf38au3ry9d o9eh4us9ki ul832 jippjf4 bcsoug6 9w7mnssanfsknl f422osb58c","quiz_options":{"score":0},"id":"4385172932"},{"position":3,"visible":true,"text":"juswx5 78b5n495 duu5kiikm feknbdqqtxg memsnyrcmao1lh","quiz_options":{"score":0},"id":"4385172933"},{"position":4,"visible":true,"text":"xpu48c 3cdbygss10 ujxmb ore7vx7o0x 9qmlb9fig6p3u w6c8oqr5dhp1l g3ihi9p1x kf2lvtbxo 4guw65","quiz_options":{"score":0},"id":"4385172934"},{"position":5,"visible":true,"text":"i9508b8n ld7powh72 nfvmljfhgn3n 643ydxghpbak7v ehe18sjo56yx m1bpaoj4epr 5sv5aw6 7m0bt","quiz_options":{"score":0},"id":"4385172935"},{"position":6,"visible":true,"text":"vwtr9m5fu3ot ltiqhsx3fi uuylf62qec mmn5fxqj","quiz_options":{"score":0},"id":"4385172936"},{"position":7,"visible":true,"text":"ww4qdi5pqg 3qvmj8g0yvx rrr5fx06d7 t6giac3k8 t3d6exqx175ft 10k251y 47v1vnu938 kkqqcsl50d7i","quiz_options":{"score":0},"id":"4385172937"}]},"page_id":"168831336"},"emitted_at":1674149695747}
+{"stream":"survey_questions","data":{"id":"667461433","position":2,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"3bdmcu bth1w4ifhtcbm slcl3p6ynqhjtyp n5nea bdq5iuvq77m0t"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831336/questions/667461433","answers":{"choices":[{"position":1,"visible":true,"text":"26j27d 5s3pbf08free77b ttq5exq7 n2gm99qkada 3rosqp hn74g juh2ww6","quiz_options":{"score":0},"id":"4385172948"},{"position":2,"visible":true,"text":"phmu9ghnjc vkh0ury2y6et tqj1lwjv 37m5bx1itv a5x88phj3g5 832qd1l rpbrunm7v49 kpmqo a8eqht49077t","quiz_options":{"score":0},"id":"4385172949"},{"position":3,"visible":true,"text":"jbsjkqa2f2xb ks824l5wnkd b0p0elet784r6rw ay5sqsv2vdron lr8mx7r6pc im42wmwt ltyhtay7p8u","quiz_options":{"score":0},"id":"4385172950"},{"position":4,"visible":true,"text":"ikkvwye7tah 7shp28 p7k7je0as5u sdc3f1rvin staohk6a44k nqjsxn3 97bog4jfxn qvorj30xpuh1gip","quiz_options":{"score":0},"id":"4385172951"},{"position":5,"visible":true,"text":"p83chdtsw6s88u 0hqgb8h871mw p0ej9 djy316qsa7iv6pe","quiz_options":{"score":0},"id":"4385172952"},{"position":6,"visible":true,"text":"kgfa1 tyxdxoe3gc xclen0vw9oa2 6bu9o8b6awx hcg9pgsi1av9v 7dicbt6wsee70f glwmxxtcdr 4qi7m9p8tfkxur3 ir5jr31364","quiz_options":{"score":0},"id":"4385172953"},{"position":7,"visible":true,"text":"u6xyfnav qw5qefsi 6ttsauh 3jwvmju8sdjk87 bql4ra2ww 8nxxobw4o58 omi87y6ur8l1f2g 62gaxuq","quiz_options":{"score":0},"id":"4385172954"},{"position":8,"visible":true,"text":"xdjcisgicnaix2 fj8bpbqaqgntr fb2n0o73 mgsb8xg5x3nfg9 9t18omvng4p6e 06wepywm4wku 82pemp2 l3nsu2ib2erbva tj475a","quiz_options":{"score":0},"id":"4385172955"}]},"page_id":"168831336"},"emitted_at":1674149695747}
+{"stream":"survey_questions","data":{"id":"667461439","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"vrhftdyyte qir7jajr68td obg64x tu1rcy2h pqnxtdrwxk00a c173brbv 6qfxck7huyx"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831336/questions/667461439","answers":{"choices":[{"position":1,"visible":true,"text":"q6705n7lidhb 0gsqn8 ocnyaudmo ulp9r0rsoheh4f cjwcqblbh o28tilm13w384","quiz_options":{"score":0},"id":"4385172990"},{"position":2,"visible":true,"text":"vyrx1jpjcl07 etxm7itb161 51rf5csw6e5tsh 3ux7rxq2 vct6fys4r7","quiz_options":{"score":0},"id":"4385172991"},{"position":3,"visible":true,"text":"pp1lc12uhii 2qmm3xnfsp i9912c8ac5k74i hxew5625hxtm3 4o658 jenbgi9o89 t4ppqc2qvhlui iu92ym nqjkka1i7","quiz_options":{"score":0},"id":"4385172992"},{"position":4,"visible":true,"text":"6mx9j44l0oa yv2wb1letc4p d3u87l59 vp7a65ykcfjyt tpe3k92l y2flusuc3tc t220oi sekyd","quiz_options":{"score":0},"id":"4385172993"},{"position":5,"visible":true,"text":"4fbdo eli65un2emx e6oyl3a41ugoxb2 saxpsxn6fv l8s2mk0e57d60","quiz_options":{"score":0},"id":"4385172994"},{"position":6,"visible":true,"text":"r5ly6h 7eu4pmnx7tv04g rdtjvlsup3gdn h4qoreg 3ct3fudxbuuw2 b975v8 ilsfmaa22","quiz_options":{"score":0},"id":"4385172995"}]},"page_id":"168831336"},"emitted_at":1674149695747}
+{"stream":"survey_questions","data":{"id":"667461441","position":4,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"5p8n613hcmidh w4gyoyf stviro3om xey832w t9w23kj3j4rp5j h2w1swynkq1n9e vqrk2q5eb76p9yn pbj778q19u1hqy r9uvl76qqhfg"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831336/questions/667461441","answers":{"choices":[{"position":1,"visible":true,"text":"tmdpekdn75l9b 3nuus dqbdxtj od2mltbx tmw5kcvpiw 6n41343132bdmc kb3i9er4qg","quiz_options":{"score":0},"id":"4385173020"},{"position":2,"visible":true,"text":"6a8efsocxmc eeohurhhyduo31w c8na1dub0ycx q8314ir twgrq 2ukcrksjt30s","quiz_options":{"score":0},"id":"4385173021"},{"position":3,"visible":true,"text":"ou9m3xl2n9wvn m0wews5 il8o8so pygnm380cd66 7nhjkpk9lu65n 4e3ifrwcb8wr 46bo0ani86m du57mphcnvf1in 6gf58fwm2c50tp","quiz_options":{"score":0},"id":"4385173022"},{"position":4,"visible":true,"text":"nahvw2sd3 hn5trfgqbuso cq82jp7 k8ev0 s8a0a23m0p g2jewuy0wdadgsa hca0mm5q 8agnm fxnf8vrgdybkg04","quiz_options":{"score":0},"id":"4385173023"}]},"page_id":"168831336"},"emitted_at":1674149695748}
+{"stream":"survey_questions","data":{"id":"667461444","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"khys853d7u tgmr69e7mu7 0h6sn7 cja88 nj2os3 wnand9tdmohxca rowe88asxsja1dn rvs12kt5m0wqd2 41pwt1vnhst008o"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831336/questions/667461444","answers":{"choices":[{"position":1,"visible":true,"text":"3k875epq o7u7f5 kihtesav7 qwxlu7j5dj59i 8ghsap3n","quiz_options":{"score":0},"id":"4385173040"},{"position":2,"visible":true,"text":"cemvy 140ek4 d1fumxxlqqnyt 99pb868kg2b hqur2f44k uwr5dyif8g6","quiz_options":{"score":0},"id":"4385173041"},{"position":3,"visible":true,"text":"iykvyahtufq91l bvs9t6mmoyw ld2hep1somcl7 2rs7wk3q 5ncge9mfj1ac r30355p0g4wt c1bx5 n5wgmcud6h","quiz_options":{"score":0},"id":"4385173042"},{"position":4,"visible":true,"text":"a4xcahm1euf l3h1jx abcc0r500rlqyhv 9w01sfmci3j ur9vp3sxfioh r0dksavcmduhk2 kw7nbl 5hys2r8vebx4e 94rajuno uwm3ajywh3vlqbf","quiz_options":{"score":0},"id":"4385173043"},{"position":5,"visible":true,"text":"0whm5dw5kuk44 efrr6i iu9592 a968tp4ff0uaf q0f6mtpcp2x82ae 97m1gvsnfthibp agt6dm3 ip1e3y9","quiz_options":{"score":0},"id":"4385173044"},{"position":6,"visible":true,"text":"hwbtcf7 60gji9qoeovhlf 9b3ijm8 xiw5w09k 460v2o27hacdts 30eq74bg9m qpfv2jd9f3ur rlacn2rf273ck7 2welkh7188h","quiz_options":{"score":0},"id":"4385173045"},{"position":7,"visible":true,"text":"cbqj2nlsnyy tmjyvoija wirje1e bxsqxqe g12fuxmtgfq 7fc74o yrdsjey 1xmv6u077j7l 8hkf7","quiz_options":{"score":0},"id":"4385173046"},{"position":8,"visible":true,"text":"uqlus j3nd9u8g faqa6ghioy60h9 a95spokyj58 ndgctguy75jr ei16b1p7jabc2 hfkfpruds","quiz_options":{"score":0},"id":"4385173047"}]},"page_id":"168831336"},"emitted_at":1674149695748}
+{"stream":"survey_questions","data":{"id":"667461449","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"cwipmppqgy2vy 3mn05n4 gedv0twor lyawl9v528587w wfmifrr9hk pykvx52nu1ds5p hh28niyix"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831340/questions/667461449","answers":{"choices":[{"position":1,"visible":true,"text":"3gjvb8l80nc8j 90ebdlnd3hg spis2ipbim9l fjt4xli4a 0bqmti2wp0juwcl cdwl64u2yfghjdf 190uek5lw","quiz_options":{"score":0},"id":"4385173076"},{"position":2,"visible":true,"text":"xjdswmkwm24 rrmxo7otpear8 ogepd7v8br0y5m vi2vyip49ux uvtnq2sem 5gwcppvvvc bw56us8o 1huql09g6pa1ylb","quiz_options":{"score":0},"id":"4385173077"},{"position":3,"visible":true,"text":"gyq16tgah s669s7 j5isg9 l63lf q61pyy oywk58jfmnvy 6lhnukrce1px bwt066s8k5248o sylwt em0x3","quiz_options":{"score":0},"id":"4385173078"}]},"page_id":"168831340"},"emitted_at":1674149695748}
+{"stream":"survey_questions","data":{"id":"667461452","position":2,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"aku2037bp sxtf1busk2uj 7scwpc00giyau urduwqdsyr3 xk3y39yjywei1y uw7y5s3ky fetwdqr6n qp00a8rofpy 4rwl41yk78jd"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831340/questions/667461452","answers":{"choices":[{"position":1,"visible":true,"text":"86hx9ifui6c4o 02xkn5ghldfw35k faipmm g7634wrx1jfvy jewjfdq kkyyxx00brj wtu0xrhfhvu5lv8 573fv0vtm0n","quiz_options":{"score":0},"id":"4385173088"},{"position":2,"visible":true,"text":"nfeyvnb0kat1yb0 3lk3rse66t8jp w90vixgpu32cyir q03jxd8vch9xn7t 3a0swht9ykadh8 fvoa9t8dri fm0twcdhxm 4ot9xpxe9s08b ho7d1","quiz_options":{"score":0},"id":"4385173089"},{"position":3,"visible":true,"text":"k5pyc4y 9uul1o 7lvigo 7xsdo49jx2yc d07jr1w4","quiz_options":{"score":0},"id":"4385173090"},{"position":4,"visible":true,"text":"3e49s5 gxqwbv w6c2e tjaf7rpgtksjpe ivr0he574 ft8qso pqq4l5hbchy 6mhw0ksgrh xbj4l7a2g","quiz_options":{"score":0},"id":"4385173091"}]},"page_id":"168831340"},"emitted_at":1674149695748}
+{"stream":"survey_questions","data":{"id":"667461454","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"4i1qajt 6sy8nl3hjougqbu okftpe4sw0bpr6 gv1pbyk8km 9ihd103uu2n3lx c6spvurq080unx uswpaexarx"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831340/questions/667461454","answers":{"choices":[{"position":1,"visible":true,"text":"vg0vpi1 100y8 03nnh0 947rcth5ofg x4xfc38q81i6e7 bgf20442q i2jh2 lolt43y3ri2 vl0t6 2rkshapnf","quiz_options":{"score":0},"id":"4385173102"},{"position":2,"visible":true,"text":"o7qfwgqys eyumel 7spc5 42qxefd","quiz_options":{"score":0},"id":"4385173103"},{"position":3,"visible":true,"text":"usb43wqju6w csearclgaedae 2oo3m2a79oo5si granw6hf 9g9ms37peouy gqaxry74 x45yqa0xtkcu g0in9 lyp7xe6 few8vkh7yf","quiz_options":{"score":0},"id":"4385173104"},{"position":4,"visible":true,"text":"spfrf5sfebrhj8 gwodgm3o1 m5cydcxbtk2 pgrj6h mome4a us97ellx2peg3s ilidjy8juu0","quiz_options":{"score":0},"id":"4385173105"},{"position":5,"visible":true,"text":"w579aalpr5gaj1 1h2ud 53d80pebt4ep 0l2gw8fk7fa","quiz_options":{"score":0},"id":"4385173106"}]},"page_id":"168831340"},"emitted_at":1674149695748}
+{"stream":"survey_questions","data":{"id":"667461456","position":4,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"is9uyf6ka iel16fh 1f0xg 7mx16glcei fygrn g7l10em5fbeybb 1vgps0k3 q4fls qryybq07jy f3luik1nx09b7so"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831340/questions/667461456","answers":{"choices":[{"position":1,"visible":true,"text":"0fg2b3v4 jmdxep5of1y q2ag243 cfytydw942toqsl 2ixd8iynbs eg22ia","quiz_options":{"score":0},"id":"4385173113"},{"position":2,"visible":true,"text":"0am3pervuj biqdk6g5yw i5xvk20h1n6jv l0v9m5cxn 2vyqvcp8rlthxfv k0v6o48p3v8 551pws1020t98f","quiz_options":{"score":0},"id":"4385173114"},{"position":3,"visible":true,"text":"cjtogxiie0arj ltkgiwrpoa4x1v foqfr1gk406a rale1dx 2p4gjy2g","quiz_options":{"score":0},"id":"4385173115"},{"position":4,"visible":true,"text":"h31va0f12qx3vg 51m9g4bo9 r4ofiqr j1yym2ma8m13kch 1e4jxhdyol2ny nf3fh0h2e qw8euwei1lyhemq 3j4un2sjdoj7 q92100o573tbom 5phvt3n22","quiz_options":{"score":0},"id":"4385173116"},{"position":5,"visible":true,"text":"h8hktik e03ehrspn7 rnjqq4431q2 3bs1nevr8j0 audw020tl kalstea2","quiz_options":{"score":0},"id":"4385173117"},{"position":6,"visible":true,"text":"9w090 e6835j0fvfg89 kk6swkb5g oo0f4ho99x437 qf7b8y1aaa4 i0r03","quiz_options":{"score":0},"id":"4385173118"}]},"page_id":"168831340"},"emitted_at":1674149695749}
+{"stream":"survey_questions","data":{"id":"667461462","position":5,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"r1kf2oglhju ou2ldq63qu2g1 ufs1pkw pgr9p75sh9k7 vnu477cixnk1kx nxnfn0ti3x3u9wh ew6ho e18cmaeovxhx h1fac8j8 8ni6ay"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831340/questions/667461462","answers":{"choices":[{"position":1,"visible":true,"text":"xytk5fnqv6odvms sw94ohnav5npnm lg9uf4 iwuqgfd0 5ee0wd5 lfha63ve x55yip4 gxgdkff3sckdn mq1khupscjgqj 8mtp54i5c3rjonv","quiz_options":{"score":0},"id":"4385173167"},{"position":2,"visible":true,"text":"2ammt8omj0l c0i1q 1uvaf203rh1 8wj2w7pp qlqayl9e8ldc y7iivv cv189py2di xuihxup7b2 rh8owrr595st","quiz_options":{"score":0},"id":"4385173168"},{"position":3,"visible":true,"text":"o9cvkj8x k0txiswxc5 ogf66jujgcrwdb l7n0c0rodcx 2gduko0wwimb21 afw8mi","quiz_options":{"score":0},"id":"4385173169"},{"position":4,"visible":true,"text":"mcb62sefmuo plnbygilddeqg u64kkkjvoms4b5q jw4tashu6c7ve12 8di4g100598 ad1bet nnqd7jmg","quiz_options":{"score":0},"id":"4385173170"}]},"page_id":"168831340"},"emitted_at":1674149695749}
+{"stream":"survey_questions","data":{"id":"667461690","position":1,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"53o3ibly at73qjs4e4 y9dug7jxfmpmr 8esacb5"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831393/questions/667461690","answers":{"choices":[{"position":1,"visible":true,"text":"lg2mcft4e64 ywiatkmeo ci3rr4l2v0 ot6un49a 4b28sq4g8qv7tj 4ihpko73bp0k6lf swaeo3o4mg2jf5g rnh225wj520w1ps p9emk1wg64vwl","quiz_options":{"score":0},"id":"4385174700"},{"position":2,"visible":true,"text":"ywg8bovna adsahna5kd1jg vdism1 w045ovutkx9 oubne2u vd0x7lh3 y3npa4kfb5","quiz_options":{"score":0},"id":"4385174701"},{"position":3,"visible":true,"text":"xsy4kv tqp8vty29815 de8nt5ab2fyr m6jilru2ek l7fktx3j5mbj l33ip83t4p29 exfygne a1btj95m1r","quiz_options":{"score":0},"id":"4385174702"}]},"page_id":"168831393"},"emitted_at":1674149695838}
+{"stream":"survey_questions","data":{"id":"667461777","position":2,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"kjqdk eo7hfnu or7bmd1iwqxxp sguqta4f8141iy"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831393/questions/667461777","answers":{"choices":[{"position":1,"visible":true,"text":"11bp1ll11nu0 ool67 tkbke01j3mtq 22f4r54u073p h6kt4puolum4","quiz_options":{"score":0},"id":"4385174970"},{"position":2,"visible":true,"text":"8q53omsxw8 08yyjvj3ns9j yu7yap87 d2tgjv55j5d5o3y dbd69m94qav1wma 8upqf7cliu hb26pytfkwyt rfo2ac4","quiz_options":{"score":0},"id":"4385174971"},{"position":3,"visible":true,"text":"6d7qmnw obxwg4elaab6 2sby04sor66 1wuoh26aftxu7","quiz_options":{"score":0},"id":"4385174972"},{"position":4,"visible":true,"text":"n0xwexbwtviyj1a midgl2jpfdy a72ut27ta 8i9fmkwg0q mbtxhkn b2ut8mtsslkt609 tgmnd7ovnqlbr","quiz_options":{"score":0},"id":"4385174973"},{"position":5,"visible":true,"text":"qjfs0pmb iecatmqyxtk w1s0fs9vcbayf5 rwsneyp0wx6lsyq pq99n hrx1mk4saug gv06qshlabe 0s2t4 h11ee2xna0m8r","quiz_options":{"score":0},"id":"4385174974"},{"position":6,"visible":true,"text":"11uf3he wbstw etbysmu4 c84vqddvx","quiz_options":{"score":0},"id":"4385174975"},{"position":7,"visible":true,"text":"rnfx7m ndifoe7ihy q98pov78016t 8smlnm lb3xicjp9 0r30sie97y12ve7","quiz_options":{"score":0},"id":"4385174976"},{"position":8,"visible":true,"text":"jc8s2ra5qxytxbu u6tj7jgep95 vbva1b4uslioa omku9","quiz_options":{"score":0},"id":"4385174977"}]},"page_id":"168831393"},"emitted_at":1674149695839}
+{"stream":"survey_questions","data":{"id":"667461791","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"0qw6a5lnf426 2sh3g9f8wu xmgflj 41pjy"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831393/questions/667461791","answers":{"choices":[{"position":1,"visible":true,"text":"7kxk7bkhfdx86sh 3rnrsj70ud 048jbf4qx4 p96o8 sn7xi oh02tfput4 6js84u99m5t","quiz_options":{"score":0},"id":"4385175055"},{"position":2,"visible":true,"text":"x259osu33y 8qadkcxpsnk4o20 m4wo3183nwxhgye q4mpg srpfibk96sf t3h2cx58eji x7l0sdipnjece8 7tgwfdfmh9hgdwi w99mkib2","quiz_options":{"score":0},"id":"4385175056"},{"position":3,"visible":true,"text":"lil1tboe p80wa8yed7w8 cll24c2lls6cc0 gpbv7rnap psk1et","quiz_options":{"score":0},"id":"4385175057"},{"position":4,"visible":true,"text":"wodtghhkt 2ae1c8q5s1ha 8lppd7ko84al j95eq1imtu7 6x8qknrhn0 l7h53","quiz_options":{"score":0},"id":"4385175058"}]},"page_id":"168831393"},"emitted_at":1674149695840}
+{"stream":"survey_questions","data":{"id":"667461794","position":4,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"q3ay58w3 2rfjgu4 0cf9uh1 pu4fo16w 6c2wkn 1oo7d8"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831393/questions/667461794","answers":{"choices":[{"position":1,"visible":true,"text":"1orbs vtqu62x9bp t75k10e89krhn bdnsfy6ng34g 8yv9p1c92jlbt0s","quiz_options":{"score":0},"id":"4385175070"},{"position":2,"visible":true,"text":"5j8dww2lxevx4a wv3ppbb vnccslwrjjdc n5pjsmw m7b4533y8tcbbus","quiz_options":{"score":0},"id":"4385175071"},{"position":3,"visible":true,"text":"fnjqkqy2 44brrpru jllsj9cdggwt4 behkog76y5ua 7ftpd8c8qhblii","quiz_options":{"score":0},"id":"4385175072"},{"position":4,"visible":true,"text":"srjre1h3w9 qojsh5w2 sq7wva6tkl9 raxp5mldrp","quiz_options":{"score":0},"id":"4385175073"}]},"page_id":"168831393"},"emitted_at":1674149695841}
+{"stream":"survey_questions","data":{"id":"667461797","position":5,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"bvrdxa swsrjt sjox8u6767lv5 wgcomvtnoi0yg namiomuh6cou61u nl2v5bfu15i7 sqpu07jp489uc"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831393/questions/667461797","answers":{"choices":[{"position":1,"visible":true,"text":"y97bshsv ite5mgk76p89o yrtt28bmm4jo9 ftc2tnjg","quiz_options":{"score":0},"id":"4385175096"},{"position":2,"visible":true,"text":"r970efm0 5p96h9iy1 o7ft83xrqgsrh8 owk30 buqg6ksd297lw9 lh6ygen9s2rac2b k5d3lbr7m37p","quiz_options":{"score":0},"id":"4385175097"},{"position":3,"visible":true,"text":"ktg10 vp7khp0ucx vuo5qrcor po9nbn6cdpdu56a rt8eiu0umg0dkx j2k8vgtr6","quiz_options":{"score":0},"id":"4385175098"},{"position":4,"visible":true,"text":"iubh35s1gvpm4gj svwbyf7npunm3 0thmsjmt2qb5im0 undxh7b frxykv55emi padtjsk69 qa0jrnwrfoj qqjg6ifvlx0abdb","quiz_options":{"score":0},"id":"4385175099"},{"position":5,"visible":true,"text":"w64hwv9edeaf55 l0gkthucpqj 80wgqsffl 0m45xm56a25psm 8opb8b0gw2w6 n8xex","quiz_options":{"score":0},"id":"4385175100"},{"position":6,"visible":true,"text":"ju3rt297a t028c0b35635 l0kj9vj seuar76 89587qhw46295","quiz_options":{"score":0},"id":"4385175101"},{"position":7,"visible":true,"text":"c4de01u4eil p1p2vy 0gqjglc mc2r97p07 d8d90 j15xktb2idx91 tecpeak3 4anh9o5w7h0runq yr0nd0q9392229","quiz_options":{"score":0},"id":"4385175102"},{"position":8,"visible":true,"text":"yc5erasa3ovk4d ed9adudq8e1s 7wrf8k w9ohrhltg3kv1 wgrnemp 7dqxmy5e bxnsro2sl","quiz_options":{"score":0},"id":"4385175103"}]},"page_id":"168831393"},"emitted_at":1674149695841}
+{"stream":"survey_questions","data":{"id":"667461801","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"iu425c2v4yqs04 43g37 wg8awi s2pjwsm vjhybbs wry73cuukw85l2"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831402/questions/667461801","answers":{"choices":[{"position":1,"visible":true,"text":"xjortc6k0sxjydf rdusho82tsr3l 3b3gch ogabx6895eb3 e7bj5pq poft6c4g1","quiz_options":{"score":0},"id":"4385175115"},{"position":2,"visible":true,"text":"bscm9v7d9nv0 e5x94dt0402ge i7mwtey74y4 er7bwam13 6xcjpw pre922tv ihmvbih 9piadim1lterm","quiz_options":{"score":0},"id":"4385175116"},{"position":3,"visible":true,"text":"ywtecquds5ctgu sjcgsa3hm d087wy 6yjqp0jgm 1ywj8v3wuuq wmlmq essefj rbgrjtv6smxcmag","quiz_options":{"score":0},"id":"4385175117"},{"position":4,"visible":true,"text":"gc8d58x66m ftpowgvwodht9h fj47r927vh826 qrkgkb bcvxni fo6g9wdlxgvnq","quiz_options":{"score":0},"id":"4385175118"},{"position":5,"visible":true,"text":"fxsrgxts qih9ukhxafmmiv4 h2ujh1va9jf b6ho30","quiz_options":{"score":0},"id":"4385175119"},{"position":6,"visible":true,"text":"81binesi6f 7urb7 ylotwabgvbt 03ke1u5h 3ehye3g olw0f83a1h667t 71ujnoyf p49ce","quiz_options":{"score":0},"id":"4385175120"},{"position":7,"visible":true,"text":"ht1rd9ymh 2tftisj80s74mop b1eavw d6vgqwrj","quiz_options":{"score":0},"id":"4385175121"}]},"page_id":"168831402"},"emitted_at":1674149695842}
+{"stream":"survey_questions","data":{"id":"667461805","position":2,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"mxlksuvmoras9o 94fj2 dieyg92v384lfv8 f9rwin4 cdmg95wcnt2xa ybcmni7yd1x 1yl4j4q7j"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831402/questions/667461805","answers":{"choices":[{"position":1,"visible":true,"text":"mevjvlslfppe ex251ss vkrs7swus g72vplm9svejkdw 7onhrwlh bouaam3k7cnn yadoqmnhn4swehq u8lhv3fdh58o3 wrbc0y197d","quiz_options":{"score":0},"id":"4385175146"},{"position":2,"visible":true,"text":"uglir jabjq1 poswkedidqpmj ta5ma4ep9xxr ghu3n2a4u7f3orh 9oud3lwe0f vwip14snnv6gtb 5fw29neis71ogsm dpq7m 9an28j1styhc","quiz_options":{"score":0},"id":"4385175147"},{"position":3,"visible":true,"text":"p3ndk7 nxpv9grg77 ek2kndt51g 2v10497 bdr0a3466ao","quiz_options":{"score":0},"id":"4385175148"},{"position":4,"visible":true,"text":"7w76l 9k393odbjg7cht7 mio9w4tcv 6wvef4vm orgg1n 20d8lh8x9osqcv dv50mjj w3g96tt0m3rf9 24uun3grfy2u 4vns2lt","quiz_options":{"score":0},"id":"4385175149"},{"position":5,"visible":true,"text":"4tcuvnn1wxy cqpr795s sfyecjwup fn76iwks5hko rk6wvgyblb3gqe4 rl5ulee1w rq66d","quiz_options":{"score":0},"id":"4385175150"},{"position":6,"visible":true,"text":"cmrjgc4 dwotyvr4o n9jid3i79xoql klkrt23lklso4p hh6d57t5 9xk3o9me 8bkpgry1yu009y","quiz_options":{"score":0},"id":"4385175151"},{"position":7,"visible":true,"text":"43ghcfhsl 74xoo rn7rmgjhd3cq u2x2ir6n449kqxp 8isq7wb tccg39oy1b 9mw0eu1ho0 a4x77foba5y ywgyosh9ue ynh9u8odsos5q2","quiz_options":{"score":0},"id":"4385175152"}]},"page_id":"168831402"},"emitted_at":1674149695842}
+{"stream":"survey_questions","data":{"id":"667461811","position":3,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"i4mol250lne3 bhrh2dvt9b qss461 lkb1u chpwmgcnuoeec un2l5"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831402/questions/667461811","answers":{"choices":[{"position":1,"visible":true,"text":"s4xpl2l93 57k4asd04 gyddhg dn53f8bd 8wtgobxts3 ms7nan ns5wv6q2vy6 nnaudmbyu80llen 8be4urorunk","quiz_options":{"score":0},"id":"4385175197"},{"position":2,"visible":true,"text":"ec2l4hr 5lwp46ij8 3tqigw elleyat98j2jjd if8hiia3 vad578","quiz_options":{"score":0},"id":"4385175198"},{"position":3,"visible":true,"text":"9t9nsl0tjlcjxr k1chdb iislvtl gpcnyi82o5ebu 46ayfj 5r3b3w92l6 vaqskragdor","quiz_options":{"score":0},"id":"4385175199"},{"position":4,"visible":true,"text":"8ad404t4 86hyrfxr7 xef8em2 g7u8fc2 rsslpdptcgrsh9n n5pb1u9b","quiz_options":{"score":0},"id":"4385175200"},{"position":5,"visible":true,"text":"bijp3kiqfs quasi89mov1y hj9ku 9w6iuh 81sng4yu32tyh d4q9kbxuoqd2xaq","quiz_options":{"score":0},"id":"4385175201"},{"position":6,"visible":true,"text":"73xiyg2gc q1l6a28s 991jaxujf56sqi rhxrnjum ges25br tb2x1wamrh3jac1 t3s8ocme8q9d8 c505btw99r hwljwx","quiz_options":{"score":0},"id":"4385175202"},{"position":7,"visible":true,"text":"ri75nf 5yy3nq 8m5e68j4mh8m sf1v3 60nijf1oeq9 bwp7bfx9u11a474 w66gfkiayng55q 6h0gp80h","quiz_options":{"score":0},"id":"4385175203"},{"position":8,"visible":true,"text":"nbqtnbbuiue5fr a9s8yrpjm7x0p qid4y913k 8ueagmuy2 5kvul122lseh5h5","quiz_options":{"score":0},"id":"4385175204"}]},"page_id":"168831402"},"emitted_at":1674149695843}
+{"stream":"survey_questions","data":{"id":"667461833","position":4,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"s3pjyrvc bj99egp0o99 f4ddk7sed bdc2yh24yf tyii1jye nmvwhj18oqxna6b lku2vt8hrnx4 j327a"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831402/questions/667461833","answers":{"choices":[{"position":1,"visible":true,"text":"hqpox2w6wuwyd2 fm6kvjiq6ns5k jv1eutgqn1jj if8dj81e 57l25ev1tal9j","quiz_options":{"score":0},"id":"4385175279"},{"position":2,"visible":true,"text":"vr2p6mvbedcpkak 2c91smhshw9ee mwdy43um3334e7i u4o5frorc3py srt09vtrol825 i9s8n2koaoc6fu","quiz_options":{"score":0},"id":"4385175280"},{"position":3,"visible":true,"text":"1icyn0f tifktyc2uwd k8ehexjojth9a2f 0n7sh5p4i6kswe","quiz_options":{"score":0},"id":"4385175281"},{"position":4,"visible":true,"text":"6ju066 4chnhs0be43dy2 xdkxk37j1i0qy1 43b22jang8 na1yapnjj 7tvgbeu v1dw7as","quiz_options":{"score":0},"id":"4385175282"},{"position":5,"visible":true,"text":"vnslaachd7t07f0 db6whw u6ahc71ajst 2cn114ialhcvex kpwm1qo1y g82xup","quiz_options":{"score":0},"id":"4385175283"},{"position":6,"visible":true,"text":"aniu1f d47vbpsl mm26jpf7 g2io86ycj6yk","quiz_options":{"score":0},"id":"4385175284"}]},"page_id":"168831402"},"emitted_at":1674149695844}
+{"stream":"survey_questions","data":{"id":"667461834","position":5,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ce8esfvsy7xcwqu gemf05b3s5ap5 76oc1 srngx7qca"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831402/questions/667461834","answers":{"choices":[{"position":1,"visible":true,"text":"jggh1bnginkodsv 4jhtwffnlgybux 1na25qx xr5jtwfp vvip26cqr st09ps653caiyj 1icxwhc1hut6","quiz_options":{"score":0},"id":"4385175294"},{"position":2,"visible":true,"text":"gdxye rstmylwe4l w2lkwbdf87e735u rdxn1vxbg3aw kwkn1gfsu s3oa2wx7 6vegglr1ihckyxa","quiz_options":{"score":0},"id":"4385175295"},{"position":3,"visible":true,"text":"qsghk1r8e3p ciuick1mgdwbyc k8wbxctpmtu2v xau05rusflq k3as06r35dl9 38xpts","quiz_options":{"score":0},"id":"4385175296"}]},"page_id":"168831402"},"emitted_at":1674149695844}
diff --git a/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/schemas/survey_responses.json b/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/schemas/survey_responses.json
index fb29371ff955..b8d651d1d1b3 100644
--- a/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/schemas/survey_responses.json
+++ b/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/schemas/survey_responses.json
@@ -61,6 +61,9 @@
"analyze_url": {
"type": ["string", "null"]
},
+ "language": {
+ "type": ["string", "null"]
+ },
"total_time": {
"type": ["integer", "null"]
},
diff --git a/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/schemas/surveys.json b/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/schemas/surveys.json
index 541a6156d49a..cbdf3a37c462 100644
--- a/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/schemas/surveys.json
+++ b/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/schemas/surveys.json
@@ -11,6 +11,9 @@
"language": {
"type": ["string", "null"]
},
+ "theme_id": {
+ "type": ["string", "null"]
+ },
"folder_id": {
"type": ["string", "null"]
},
diff --git a/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/source.py b/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/source.py
index 677a4166f730..c9931b608fed 100644
--- a/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/source.py
+++ b/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/source.py
@@ -17,7 +17,6 @@
class SourceSurveymonkey(AbstractSource):
-
SCOPES = {"responses_read_detail", "surveys_read", "users_read"}
@classmethod
@@ -34,11 +33,6 @@ def _check_credentials(cls, config: Mapping[str, Any]) -> Tuple[bool, Any]:
if not credentials.get("access_token"):
return False, "access_token in credentials is not provided"
- if not credentials.get("client_id"):
- return False, "client_id in credentials is not provided"
-
- if not credentials.get("client_secret"):
- return False, "client_secret in credentials is not provided"
return True, None
def check_connection(self, logger: AirbyteLogger, config: Mapping[str, Any]) -> Tuple[bool, Any]:
diff --git a/airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_source.py b/airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_source.py
index dc36331cc101..cae113f884aa 100644
--- a/airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_source.py
+++ b/airbyte-integrations/connectors/source-surveymonkey/unit_tests/test_source.py
@@ -69,22 +69,6 @@ def test_source_check_connection_failed_missing_scopes(requests_mock):
},
"access_token in credentials is not provided",
),
- (
- {
- "start_date": "2021-01-01T00:00:00",
- "origin": "USA",
- "credentials": {"auth_method": "something", "access_token": "something", "client_id": "client_id"},
- },
- "client_secret in credentials is not provided",
- ),
- (
- {
- "start_date": "2021-01-01T00:00:00",
- "origin": "USA",
- "credentials": {"auth_method": "something", "access_token": "something", "client_secret": "client_secret"},
- },
- "client_id in credentials is not provided",
- ),
],
)
def test_source_check_connection_failed_missing_credentials(config, err_msg):
diff --git a/connectors.md b/connectors.md
index 7aead45830f3..38bd821c5fea 100644
--- a/connectors.md
+++ b/connectors.md
@@ -231,7 +231,7 @@
| **Strava** | | Source | airbyte/source-strava:0.1.4 | beta | [link](https://docs.airbyte.com/integrations/sources/strava) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-strava) | `7a4327c4-315a-11ec-8d3d-0242ac130003` |
| **Stripe** | | Source | airbyte/source-stripe:3.1.0 | generally_available | [link](https://docs.airbyte.com/integrations/sources/stripe) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-stripe) | `e094cb9a-26de-4645-8761-65c0c425d1de` |
| **SurveyCTO** | | Source | airbyte/source-surveycto:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/surveycto) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-surveycto) | `dd4632f4-15e0-4649-9b71-41719fb1fdee` |
-| **SurveyMonkey** | | Source | airbyte/source-surveymonkey:0.1.15 | generally_available | [link](https://docs.airbyte.com/integrations/sources/surveymonkey) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-surveymonkey) | `badc5925-0485-42be-8caa-b34096cb71b5` |
+| **SurveyMonkey** | | Source | airbyte/source-surveymonkey:0.1.16 | generally_available | [link](https://docs.airbyte.com/integrations/sources/surveymonkey) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-surveymonkey) | `badc5925-0485-42be-8caa-b34096cb71b5` |
| **SurveySparrow** | | Source | airbyte/source-survey-sparrow:0.2.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/survey-sparrow) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-survey-sparrow) | `4a4d887b-0f2d-4b33-ab7f-9b01b9072804` |
| **TMDb** | | Source | airbyte/source-tmdb:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/tmdb) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-tmdb) | `6240848f-f795-45eb-8f5e-c7542822fc03` |
| **TPLcentral** | x | Source | airbyte/source-tplcentral:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/tplcentral) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-tplcentral) | `f9b6c538-ee12-42fe-8d4b-0c10f5955417` |
diff --git a/docs/integrations/sources/surveymonkey.md b/docs/integrations/sources/surveymonkey.md
index 6dcc46f9c667..99cab665ae5e 100644
--- a/docs/integrations/sources/surveymonkey.md
+++ b/docs/integrations/sources/surveymonkey.md
@@ -65,6 +65,7 @@ To cover more data from this source we use caching.
| Version | Date | Pull Request | Subject |
|:--------| :--------- | :------------------------------------------------------- | :--------------------------------------------------------------------- |
+| 0.1.16 | 2023-04-13 | [25080](https://github.com/airbytehq/airbyte/pull/25080) | Fix spec.json required fields and update schema for surveys and survey_responses |
| 0.1.15 | 2023-02-11 | [22865](https://github.com/airbytehq/airbyte/pull/22865) | Specified date formatting in specification |
| 0.1.14 | 2023-01-27 | [22024](https://github.com/airbytehq/airbyte/pull/22024) | Set `AvailabilityStrategy` for streams explicitly to `None` |
| 0.1.13 | 2022-11-29 | [19868](https://github.com/airbytehq/airbyte/pull/19868) | Fix OAuth flow urls |
From d261ab72f5b35cbb70e248cd16d202de74751190 Mon Sep 17 00:00:00 2001
From: Evan Tahler
Date: Thu, 13 Apr 2023 08:10:44 -0700
Subject: [PATCH 046/187] Add additional destination-bigquery datacenters
(#25122)
* Add additional bigquery datacenters
* bump dockerfile
* revert source BQ bump
* docs
* builds depend on normalization now...
* no -base
* auto-bump connector version
* auto-bump connector version
---------
Co-authored-by: Octavia Squidington III
---
.../seed/destination_definitions.yaml | 4 +-
.../resources/seed/destination_specs.yaml | 22 ++-
.../src/main/resources/seed/oss_catalog.json | 8 +-
.../Dockerfile | 2 +-
.../src/main/resources/spec.json | 9 ++
.../destination-bigquery/Dockerfile | 2 +-
.../src/main/resources/spec.json | 9 ++
connectors.md | 4 +-
.../destinations/bigquery-denormalized.md | 134 +++++++++---------
docs/integrations/destinations/bigquery.md | 26 ++--
tools/integrations/manage.sh | 8 ++
11 files changed, 137 insertions(+), 91 deletions(-)
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/destination_definitions.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/destination_definitions.yaml
index 515d8f4b79ea..99d0422af639 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/destination_definitions.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/destination_definitions.yaml
@@ -41,7 +41,7 @@
- name: BigQuery
destinationDefinitionId: 22f6c74f-5699-40ff-833c-4a879ea40133
dockerRepository: airbyte/destination-bigquery
- dockerImageTag: 1.2.19
+ dockerImageTag: 1.2.20
documentationUrl: https://docs.airbyte.com/integrations/destinations/bigquery
icon: bigquery.svg
normalizationConfig:
@@ -59,7 +59,7 @@
- name: BigQuery (denormalized typed struct)
destinationDefinitionId: 079d5540-f236-4294-ba7c-ade8fd918496
dockerRepository: airbyte/destination-bigquery-denormalized
- dockerImageTag: 1.2.19
+ dockerImageTag: 1.2.20
documentationUrl: https://docs.airbyte.com/integrations/destinations/bigquery
icon: bigquery.svg
resourceRequirements:
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/destination_specs.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/destination_specs.yaml
index 8c4fd863f0c8..09c1d851917e 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/destination_specs.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/destination_specs.yaml
@@ -750,7 +750,7 @@
supported_destination_sync_modes:
- "overwrite"
- "append"
-- dockerImage: "airbyte/destination-bigquery:1.2.19"
+- dockerImage: "airbyte/destination-bigquery:1.2.20"
spec:
documentationUrl: "https://docs.airbyte.com/integrations/destinations/bigquery"
connectionSpecification:
@@ -791,20 +791,29 @@
- "asia-southeast2"
- "australia-southeast1"
- "australia-southeast2"
+ - "europe-central1"
- "europe-central2"
- "europe-north1"
+ - "europe-southwest1"
- "europe-west1"
- "europe-west2"
- "europe-west3"
- "europe-west4"
- "europe-west6"
+ - "europe-west7"
+ - "europe-west8"
+ - "europe-west9"
+ - "me-west1"
- "northamerica-northeast1"
- "northamerica-northeast2"
- "southamerica-east1"
- "southamerica-west1"
- "us-central1"
- "us-east1"
+ - "us-east2"
+ - "us-east3"
- "us-east4"
+ - "us-east5"
- "us-west1"
- "us-west2"
- "us-west3"
@@ -961,7 +970,7 @@
- "overwrite"
- "append"
- "append_dedup"
-- dockerImage: "airbyte/destination-bigquery-denormalized:1.2.19"
+- dockerImage: "airbyte/destination-bigquery-denormalized:1.2.20"
spec:
documentationUrl: "https://docs.airbyte.com/integrations/destinations/bigquery"
connectionSpecification:
@@ -1121,20 +1130,29 @@
- "asia-southeast2"
- "australia-southeast1"
- "australia-southeast2"
+ - "europe-central1"
- "europe-central2"
- "europe-north1"
+ - "europe-southwest1"
- "europe-west1"
- "europe-west2"
- "europe-west3"
- "europe-west4"
- "europe-west6"
+ - "europe-west7"
+ - "europe-west8"
+ - "europe-west9"
+ - "me-west1"
- "northamerica-northeast1"
- "northamerica-northeast2"
- "southamerica-east1"
- "southamerica-west1"
- "us-central1"
- "us-east1"
+ - "us-east2"
+ - "us-east3"
- "us-east4"
+ - "us-east5"
- "us-west1"
- "us-west2"
- "us-west3"
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index 158d76142951..a3d6bec616c8 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -694,7 +694,7 @@
"destinationDefinitionId": "22f6c74f-5699-40ff-833c-4a879ea40133",
"name": "BigQuery",
"dockerRepository": "airbyte/destination-bigquery",
- "dockerImageTag": "1.2.19",
+ "dockerImageTag": "1.2.20",
"documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
"icon": "bigquery.svg",
"spec": {
@@ -717,7 +717,7 @@
"description": "The location of the dataset. Warning: Changes made after creation will not be applied. Read more here.",
"title": "Dataset Location",
"order": 1,
- "enum": [ "US", "EU", "asia-east1", "asia-east2", "asia-northeast1", "asia-northeast2", "asia-northeast3", "asia-south1", "asia-south2", "asia-southeast1", "asia-southeast2", "australia-southeast1", "australia-southeast2", "europe-central2", "europe-north1", "europe-west1", "europe-west2", "europe-west3", "europe-west4", "europe-west6", "northamerica-northeast1", "northamerica-northeast2", "southamerica-east1", "southamerica-west1", "us-central1", "us-east1", "us-east4", "us-west1", "us-west2", "us-west3", "us-west4" ]
+ "enum": [ "US", "EU", "asia-east1", "asia-east2", "asia-northeast1", "asia-northeast2", "asia-northeast3", "asia-south1", "asia-south2", "asia-southeast1", "asia-southeast2", "australia-southeast1", "australia-southeast2", "europe-central1", "europe-central2", "europe-north1", "europe-southwest1", "europe-west1", "europe-west2", "europe-west3", "europe-west4", "europe-west6", "europe-west7", "europe-west8", "europe-west9", "me-west1", "northamerica-northeast1", "northamerica-northeast2", "southamerica-east1", "southamerica-west1", "us-central1", "us-east1", "us-east2", "us-east3", "us-east4", "us-east5", "us-west1", "us-west2", "us-west3", "us-west4" ]
},
"dataset_id": {
"type": "string",
@@ -862,7 +862,7 @@
"destinationDefinitionId": "079d5540-f236-4294-ba7c-ade8fd918496",
"name": "BigQuery (denormalized typed struct)",
"dockerRepository": "airbyte/destination-bigquery-denormalized",
- "dockerImageTag": "1.2.19",
+ "dockerImageTag": "1.2.20",
"documentationUrl": "https://docs.airbyte.com/integrations/destinations/bigquery",
"icon": "bigquery.svg",
"spec": {
@@ -983,7 +983,7 @@
"title": "Dataset Location",
"default": "US",
"order": 4,
- "enum": [ "US", "EU", "asia-east1", "asia-east2", "asia-northeast1", "asia-northeast2", "asia-northeast3", "asia-south1", "asia-south2", "asia-southeast1", "asia-southeast2", "australia-southeast1", "australia-southeast2", "europe-central2", "europe-north1", "europe-west1", "europe-west2", "europe-west3", "europe-west4", "europe-west6", "northamerica-northeast1", "northamerica-northeast2", "southamerica-east1", "southamerica-west1", "us-central1", "us-east1", "us-east4", "us-west1", "us-west2", "us-west3", "us-west4" ]
+ "enum": [ "US", "EU", "asia-east1", "asia-east2", "asia-northeast1", "asia-northeast2", "asia-northeast3", "asia-south1", "asia-south2", "asia-southeast1", "asia-southeast2", "australia-southeast1", "australia-southeast2", "europe-central1", "europe-central2", "europe-north1", "europe-southwest1", "europe-west1", "europe-west2", "europe-west3", "europe-west4", "europe-west6", "europe-west7", "europe-west8", "europe-west9", "me-west1", "northamerica-northeast1", "northamerica-northeast2", "southamerica-east1", "southamerica-west1", "us-central1", "us-east1", "us-east2", "us-east3", "us-east4", "us-east5", "us-west1", "us-west2", "us-west3", "us-west4" ]
},
"big_query_client_buffer_size_mb": {
"title": "Google BigQuery Client Chunk Size",
diff --git a/airbyte-integrations/connectors/destination-bigquery-denormalized/Dockerfile b/airbyte-integrations/connectors/destination-bigquery-denormalized/Dockerfile
index 07a455fe7993..34d54c560bf1 100644
--- a/airbyte-integrations/connectors/destination-bigquery-denormalized/Dockerfile
+++ b/airbyte-integrations/connectors/destination-bigquery-denormalized/Dockerfile
@@ -17,5 +17,5 @@ ENV ENABLE_SENTRY true
COPY --from=build /airbyte /airbyte
-LABEL io.airbyte.version=1.2.19
+LABEL io.airbyte.version=1.2.20
LABEL io.airbyte.name=airbyte/destination-bigquery-denormalized
diff --git a/airbyte-integrations/connectors/destination-bigquery-denormalized/src/main/resources/spec.json b/airbyte-integrations/connectors/destination-bigquery-denormalized/src/main/resources/spec.json
index 70873ab28cc0..a6374a2f910f 100644
--- a/airbyte-integrations/connectors/destination-bigquery-denormalized/src/main/resources/spec.json
+++ b/airbyte-integrations/connectors/destination-bigquery-denormalized/src/main/resources/spec.json
@@ -153,20 +153,29 @@
"asia-southeast2",
"australia-southeast1",
"australia-southeast2",
+ "europe-central1",
"europe-central2",
"europe-north1",
+ "europe-southwest1",
"europe-west1",
"europe-west2",
"europe-west3",
"europe-west4",
"europe-west6",
+ "europe-west7",
+ "europe-west8",
+ "europe-west9",
+ "me-west1",
"northamerica-northeast1",
"northamerica-northeast2",
"southamerica-east1",
"southamerica-west1",
"us-central1",
"us-east1",
+ "us-east2",
+ "us-east3",
"us-east4",
+ "us-east5",
"us-west1",
"us-west2",
"us-west3",
diff --git a/airbyte-integrations/connectors/destination-bigquery/Dockerfile b/airbyte-integrations/connectors/destination-bigquery/Dockerfile
index c0e87b02de25..fd282afd570a 100644
--- a/airbyte-integrations/connectors/destination-bigquery/Dockerfile
+++ b/airbyte-integrations/connectors/destination-bigquery/Dockerfile
@@ -34,5 +34,5 @@ ENV ENABLE_SENTRY true
COPY --from=build /airbyte /airbyte
-LABEL io.airbyte.version=1.2.19
+LABEL io.airbyte.version=1.2.20
LABEL io.airbyte.name=airbyte/destination-bigquery
diff --git a/airbyte-integrations/connectors/destination-bigquery/src/main/resources/spec.json b/airbyte-integrations/connectors/destination-bigquery/src/main/resources/spec.json
index 7b8bd1e0af02..86e71db7742e 100644
--- a/airbyte-integrations/connectors/destination-bigquery/src/main/resources/spec.json
+++ b/airbyte-integrations/connectors/destination-bigquery/src/main/resources/spec.json
@@ -36,20 +36,29 @@
"asia-southeast2",
"australia-southeast1",
"australia-southeast2",
+ "europe-central1",
"europe-central2",
"europe-north1",
+ "europe-southwest1",
"europe-west1",
"europe-west2",
"europe-west3",
"europe-west4",
"europe-west6",
+ "europe-west7",
+ "europe-west8",
+ "europe-west9",
+ "me-west1",
"northamerica-northeast1",
"northamerica-northeast2",
"southamerica-east1",
"southamerica-west1",
"us-central1",
"us-east1",
+ "us-east2",
+ "us-east3",
"us-east4",
+ "us-east5",
"us-west1",
"us-west2",
"us-west3",
diff --git a/connectors.md b/connectors.md
index 38bd821c5fea..ff4fd2c65f2f 100644
--- a/connectors.md
+++ b/connectors.md
@@ -293,8 +293,8 @@
| **Apache Doris** | | Destination | airbyte/destination-doris:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/destinations/doris) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-doris) | `05c161bf-ca73-4d48-b524-d392be417002` |
| **Apache Iceberg** | x | Destination | airbyte/destination-iceberg:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/destinations/iceberg) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-iceberg) | `df65a8f3-9908-451b-aa9b-445462803560` |
| **Azure Blob Storage** | | Destination | airbyte/destination-azure-blob-storage:0.2.0 | alpha | [link](https://docs.airbyte.com/integrations/destinations/azureblobstorage) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-azure-blob-storage) | `b4c5d105-31fd-4817-96b6-cb923bfc04cb` |
-| **BigQuery** | | Destination | airbyte/destination-bigquery:1.2.19 | generally_available | [link](https://docs.airbyte.com/integrations/destinations/bigquery) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-bigquery) | `22f6c74f-5699-40ff-833c-4a879ea40133` |
-| **BigQuery (denormalized typed struct)** | | Destination | airbyte/destination-bigquery-denormalized:1.2.19 | beta | [link](https://docs.airbyte.com/integrations/destinations/bigquery) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-bigquery-denormalized) | `079d5540-f236-4294-ba7c-ade8fd918496` |
+| **BigQuery** | | Destination | airbyte/destination-bigquery:1.2.20 | generally_available | [link](https://docs.airbyte.com/integrations/destinations/bigquery) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-bigquery) | `22f6c74f-5699-40ff-833c-4a879ea40133` |
+| **BigQuery (denormalized typed struct)** | | Destination | airbyte/destination-bigquery-denormalized:1.2.20 | beta | [link](https://docs.airbyte.com/integrations/destinations/bigquery) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-bigquery-denormalized) | `079d5540-f236-4294-ba7c-ade8fd918496` |
| **Cassandra** | | Destination | airbyte/destination-cassandra:0.1.4 | alpha | [link](https://docs.airbyte.com/integrations/destinations/cassandra) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-cassandra) | `707456df-6f4f-4ced-b5c6-03f73bcad1c5` |
| **Chargify (Keen)** | | Destination | airbyte/destination-keen:0.2.4 | alpha | [link](https://docs.airbyte.com/integrations/destinations/keen) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-keen) | `81740ce8-d764-4ea7-94df-16bb41de36ae` |
| **Clickhouse** | | Destination | airbyte/destination-clickhouse:0.2.3 | alpha | [link](https://docs.airbyte.com/integrations/destinations/clickhouse) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-clickhouse) | `ce0d828e-1dc4-496c-b122-2da42e637e48` |
diff --git a/docs/integrations/destinations/bigquery-denormalized.md b/docs/integrations/destinations/bigquery-denormalized.md
index 647f8645d578..5a9a95caa3c8 100644
--- a/docs/integrations/destinations/bigquery-denormalized.md
+++ b/docs/integrations/destinations/bigquery-denormalized.md
@@ -6,69 +6,71 @@ See [destinations/bigquery](https://docs.airbyte.com/integrations/destinations/b
### bigquery-denormalized
-| Version | Date | Pull Request | Subject |
-|:--------|:-----------|:----------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------|
-| 1.2.18 | 2023-03-23 | [#24447](https://github.com/airbytehq/airbyte/pull/24447) | Set the Service Account Key JSON field to always_show: true so that it isn't collapsed into an optional fields section |
-| 1.2.17 | 2023-03-17 | [#23788](https://github.com/airbytehq/airbyte/pull/23788) | S3-Parquet: added handler to process null values in arrays |
-| 1.2.16 | 2023-03-10 | [\#23931](https://github.com/airbytehq/airbyte/pull/23931)| Added support for periodic buffer flush |
-| 1.2.15 | 2023-03-10 | [#23466](https://github.com/airbytehq/airbyte/pull/23466) | Changed S3 Avro type from Int to Long |
-| 1.2.14 | 2023-02-08 | [#22497](https://github.com/airbytehq/airbyte/pull/22497) | Fixed table already exists error |
-| 1.2.13 | 2023-01-26 | [#20631](https://github.com/airbytehq/airbyte/pull/20631) | Added support for destination checkpointing with staging |
-| 1.2.12 | 2023-01-18 | [#21087](https://github.com/airbytehq/airbyte/pull/21087) | Wrap Authentication Errors as Config Exceptions |
-| 1.2.11 | 2023-01-18 | [#21144](https://github.com/airbytehq/airbyte/pull/21144) | Added explicit error message if sync fails due to a config issue |
-| 1.2.10 | 2023-01-04 | [#20730](https://github.com/airbytehq/airbyte/pull/20730) | An incoming source Number type will create a big query integer rather than a float. |
-| 1.2.9 | 2022-12-14 | [#20501](https://github.com/airbytehq/airbyte/pull/20501) | Report GCS staging failures that occur during connection check |
-| 1.2.8 | 2022-11-22 | [#19489](https://github.com/airbytehq/airbyte/pull/19489) | Added non-billable projects handle to check connection stage |
-| 1.2.7 | 2022-11-11 | [#19358](https://github.com/airbytehq/airbyte/pull/19358) | Fixed check method to capture mismatch dataset location |
-| 1.2.6 | 2022-11-10 | [#18554](https://github.com/airbytehq/airbyte/pull/18554) | Improve check connection method to handle more errors |
-| 1.2.5 | 2022-10-19 | [#18162](https://github.com/airbytehq/airbyte/pull/18162) | Improve error logs |
-| 1.2.4 | 2022-09-26 | [#16890](https://github.com/airbytehq/airbyte/pull/16890) | Add user-agent header |
-| 1.2.3 | 2022-09-22 | [#17054](https://github.com/airbytehq/airbyte/pull/17054) | Respect stream namespace |
-| 1.2.2 | 2022-09-14 | [15668](https://github.com/airbytehq/airbyte/pull/15668) | (bugged, do not use) Wrap logs in AirbyteLogMessage |
-| 1.2.1 | 2022-09-10 | [16401](https://github.com/airbytehq/airbyte/pull/16401) | (bugged, do not use) Wrapping string objects with TextNode |
-| 1.2.0 | 2022-09-09 | [#14023](https://github.com/airbytehq/airbyte/pull/14023) | (bugged, do not use) Cover arrays only if they are nested |
-| 1.1.16 | 2022-09-01 | [#16243](https://github.com/airbytehq/airbyte/pull/16243) | Fix Json to Avro conversion when there is field name clash from combined restrictions (`anyOf`, `oneOf`, `allOf` fields) |
-| 1.1.15 | 2022-08-03 | [14784](https://github.com/airbytehq/airbyte/pull/14784) | Enabling Application Default Credentials |
-| 1.1.14 | 2022-08-02 | [14801](https://github.com/airbytehq/airbyte/pull/14801) | Fix multiple log bindings |
-| 1.1.13 | 2022-08-02 | [15180](https://github.com/airbytehq/airbyte/pull/15180) | Fix standard loading mode |
-| 1.1.12 | 2022-06-29 | [14079](https://github.com/airbytehq/airbyte/pull/14079) | Map "airbyte_type": "big_integer" to INT64 |
-| 1.1.11 | 2022-06-24 | [14114](https://github.com/airbytehq/airbyte/pull/14114) | Remove "additionalProperties": false from specs for connectors with staging |
-| 1.1.10 | 2022-06-16 | [13852](https://github.com/airbytehq/airbyte/pull/13852) | Updated stacktrace format for any trace message errors |
-| 1.1.9 | 2022-06-17 | [13753](https://github.com/airbytehq/airbyte/pull/13753) | Deprecate and remove PART_SIZE_MB fields from connectors based on StreamTransferManager |
-| 1.1.8 | 2022-06-07 | [13579](https://github.com/airbytehq/airbyte/pull/13579) | Always check GCS bucket for GCS loading method to catch invalid HMAC keys. |
-| 1.1.7 | 2022-06-07 | [13424](https://github.com/airbytehq/airbyte/pull/13424) | Reordered fields for specification. |
-| 1.1.6 | 2022-05-15 | [12768](https://github.com/airbytehq/airbyte/pull/12768) | Clarify that the service account key json field is required on cloud. |
-| 0.3.5 | 2022-05-12 | [12805](https://github.com/airbytehq/airbyte/pull/12805) | Updated to latest base-java to emit AirbyteTraceMessage on error. |
-| 0.3.4 | 2022-05-04 | [12578](https://github.com/airbytehq/airbyte/pull/12578) | In JSON to Avro conversion, log JSON field values that do not follow Avro schema for debugging. |
-| 0.3.3 | 2022-05-02 | [12528](https://github.com/airbytehq/airbyte/pull/12528) | Update Dataset location field description |
-| 0.3.2 | 2022-04-29 | [12477](https://github.com/airbytehq/airbyte/pull/12477) | Dataset location is a required field |
-| 0.3.1 | 2022-04-15 | [11978](https://github.com/airbytehq/airbyte/pull/11978) | Fixed emittedAt timestamp. |
-| 0.3.0 | 2022-04-06 | [11776](https://github.com/airbytehq/airbyte/pull/11776) | Use serialized buffering strategy to reduce memory consumption. |
-| 0.2.15 | 2022-04-05 | [11166](https://github.com/airbytehq/airbyte/pull/11166) | Fixed handling of anyOf and allOf fields |
-| 0.2.14 | 2022-04-02 | [11620](https://github.com/airbytehq/airbyte/pull/11620) | Updated spec |
-| 0.2.13 | 2022-04-01 | [11636](https://github.com/airbytehq/airbyte/pull/11636) | Added new unit tests |
-| 0.2.12 | 2022-03-28 | [11454](https://github.com/airbytehq/airbyte/pull/11454) | Integration test enhancement for picking test-data and schemas |
-| 0.2.11 | 2022-03-18 | [10793](https://github.com/airbytehq/airbyte/pull/10793) | Fix namespace with invalid characters |
-| 0.2.10 | 2022-03-03 | [10755](https://github.com/airbytehq/airbyte/pull/10755) | Make sure to kill children threads and stop JVM |
-| 0.2.8 | 2022-02-14 | [10256](https://github.com/airbytehq/airbyte/pull/10256) | Add `-XX:+ExitOnOutOfMemoryError` JVM option |
-| 0.2.7 | 2022-02-01 | [9959](https://github.com/airbytehq/airbyte/pull/9959) | Fix null pointer exception from buffered stream consumer. |
-| 0.2.6 | 2022-01-29 | [9745](https://github.com/airbytehq/airbyte/pull/9745) | Integrate with Sentry. |
-| 0.2.5 | 2022-01-18 | [9573](https://github.com/airbytehq/airbyte/pull/9573) | BigQuery Destination : update description for some input fields |
-| 0.2.4 | 2022-01-17 | [8383](https://github.com/airbytehq/airbyte/issues/8383) | BigQuery/BiqQuery denorm Destinations : Support dataset-id prefixed by project-id |
-| 0.2.3 | 2022-01-12 | [9415](https://github.com/airbytehq/airbyte/pull/9415) | BigQuery Destination : Fix GCS processing of Facebook data |
-| 0.2.2 | 2021-12-22 | [9039](https://github.com/airbytehq/airbyte/pull/9039) | Added part_size configuration to UI for GCS staging |
-| 0.2.1 | 2021-12-21 | [8574](https://github.com/airbytehq/airbyte/pull/8574) | Added namespace to Avro and Parquet record types |
-| 0.2.0 | 2021-12-17 | [8788](https://github.com/airbytehq/airbyte/pull/8788) | BigQuery/BiqQuery denorm Destinations : Add possibility to use different types of GCS files |
-| 0.1.11 | 2021-12-16 | [8816](https://github.com/airbytehq/airbyte/issues/8816) | Update dataset locations |
-| 0.1.10 | 2021-11-09 | [7804](https://github.com/airbytehq/airbyte/pull/7804) | handle null values in fields described by a $ref definition |
-| 0.1.9 | 2021-11-08 | [7736](https://github.com/airbytehq/airbyte/issues/7736) | Fixed the handling of ObjectNodes with $ref definition key |
-| 0.1.8 | 2021-10-27 | [7413](https://github.com/airbytehq/airbyte/issues/7413) | Fixed DATETIME conversion for BigQuery |
-| 0.1.7 | 2021-10-26 | [7240](https://github.com/airbytehq/airbyte/issues/7240) | Output partitioned/clustered tables |
-| 0.1.6 | 2021-09-16 | [6145](https://github.com/airbytehq/airbyte/pull/6145) | BigQuery Denormalized support for date, datetime & timestamp types through the json "format" key |
-| 0.1.5 | 2021-09-07 | [5881](https://github.com/airbytehq/airbyte/pull/5881) | BigQuery Denormalized NPE fix |
-| 0.1.4 | 2021-09-04 | [5813](https://github.com/airbytehq/airbyte/pull/5813) | fix Stackoverflow error when receive a schema from source where "Array" type doesn't contain a required "items" element |
-| 0.1.3 | 2021-08-07 | [5261](https://github.com/airbytehq/airbyte/pull/5261) | 🐛 Destination BigQuery\(Denormalized\): Fix processing arrays of records |
-| 0.1.2 | 2021-07-30 | [5125](https://github.com/airbytehq/airbyte/pull/5125) | Enable `additionalPropertities` in spec.json |
-| 0.1.1 | 2021-06-21 | [3555](https://github.com/airbytehq/airbyte/pull/3555) | Partial Success in BufferedStreamConsumer |
-| 0.1.0 | 2021-06-21 | [4176](https://github.com/airbytehq/airbyte/pull/4176) | Destination using Typed Struct and Repeated fields |
-
+| Version | Date | Pull Request | Subject |
+| :------ | :--------- | :--------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------- |
+| 1.2.20 | 2023-04-12 | [25122](https://github.com/airbytehq/airbyte/pull/25122) | Add additional data |
+| centers |
+| 1.2.19 | 2023-03-29 | [#24671](https://github.com/airbytehq/airbyte/pull/24671) | Fail faster in certain error cases |
+| 1.2.18 | 2023-03-23 | [#24447](https://github.com/airbytehq/airbyte/pull/24447) | Set the Service Account Key JSON field to always_show: true so that it isn't collapsed into an optional fields section |
+| 1.2.17 | 2023-03-17 | [#23788](https://github.com/airbytehq/airbyte/pull/23788) | S3-Parquet: added handler to process null values in arrays |
+| 1.2.16 | 2023-03-10 | [\#23931](https://github.com/airbytehq/airbyte/pull/23931) | Added support for periodic buffer flush |
+| 1.2.15 | 2023-03-10 | [#23466](https://github.com/airbytehq/airbyte/pull/23466) | Changed S3 Avro type from Int to Long |
+| 1.2.14 | 2023-02-08 | [#22497](https://github.com/airbytehq/airbyte/pull/22497) | Fixed table already exists error |
+| 1.2.13 | 2023-01-26 | [#20631](https://github.com/airbytehq/airbyte/pull/20631) | Added support for destination checkpointing with staging |
+| 1.2.12 | 2023-01-18 | [#21087](https://github.com/airbytehq/airbyte/pull/21087) | Wrap Authentication Errors as Config Exceptions |
+| 1.2.11 | 2023-01-18 | [#21144](https://github.com/airbytehq/airbyte/pull/21144) | Added explicit error message if sync fails due to a config issue |
+| 1.2.10 | 2023-01-04 | [#20730](https://github.com/airbytehq/airbyte/pull/20730) | An incoming source Number type will create a big query integer rather than a float. |
+| 1.2.9 | 2022-12-14 | [#20501](https://github.com/airbytehq/airbyte/pull/20501) | Report GCS staging failures that occur during connection check |
+| 1.2.8 | 2022-11-22 | [#19489](https://github.com/airbytehq/airbyte/pull/19489) | Added non-billable projects handle to check connection stage |
+| 1.2.7 | 2022-11-11 | [#19358](https://github.com/airbytehq/airbyte/pull/19358) | Fixed check method to capture mismatch dataset location |
+| 1.2.6 | 2022-11-10 | [#18554](https://github.com/airbytehq/airbyte/pull/18554) | Improve check connection method to handle more errors |
+| 1.2.5 | 2022-10-19 | [#18162](https://github.com/airbytehq/airbyte/pull/18162) | Improve error logs |
+| 1.2.4 | 2022-09-26 | [#16890](https://github.com/airbytehq/airbyte/pull/16890) | Add user-agent header |
+| 1.2.3 | 2022-09-22 | [#17054](https://github.com/airbytehq/airbyte/pull/17054) | Respect stream namespace |
+| 1.2.2 | 2022-09-14 | [15668](https://github.com/airbytehq/airbyte/pull/15668) | (bugged, do not use) Wrap logs in AirbyteLogMessage |
+| 1.2.1 | 2022-09-10 | [16401](https://github.com/airbytehq/airbyte/pull/16401) | (bugged, do not use) Wrapping string objects with TextNode |
+| 1.2.0 | 2022-09-09 | [#14023](https://github.com/airbytehq/airbyte/pull/14023) | (bugged, do not use) Cover arrays only if they are nested |
+| 1.1.16 | 2022-09-01 | [#16243](https://github.com/airbytehq/airbyte/pull/16243) | Fix Json to Avro conversion when there is field name clash from combined restrictions (`anyOf`, `oneOf`, `allOf` fields) |
+| 1.1.15 | 2022-08-03 | [14784](https://github.com/airbytehq/airbyte/pull/14784) | Enabling Application Default Credentials |
+| 1.1.14 | 2022-08-02 | [14801](https://github.com/airbytehq/airbyte/pull/14801) | Fix multiple log bindings |
+| 1.1.13 | 2022-08-02 | [15180](https://github.com/airbytehq/airbyte/pull/15180) | Fix standard loading mode |
+| 1.1.12 | 2022-06-29 | [14079](https://github.com/airbytehq/airbyte/pull/14079) | Map "airbyte_type": "big_integer" to INT64 |
+| 1.1.11 | 2022-06-24 | [14114](https://github.com/airbytehq/airbyte/pull/14114) | Remove "additionalProperties": false from specs for connectors with staging |
+| 1.1.10 | 2022-06-16 | [13852](https://github.com/airbytehq/airbyte/pull/13852) | Updated stacktrace format for any trace message errors |
+| 1.1.9 | 2022-06-17 | [13753](https://github.com/airbytehq/airbyte/pull/13753) | Deprecate and remove PART_SIZE_MB fields from connectors based on StreamTransferManager |
+| 1.1.8 | 2022-06-07 | [13579](https://github.com/airbytehq/airbyte/pull/13579) | Always check GCS bucket for GCS loading method to catch invalid HMAC keys. |
+| 1.1.7 | 2022-06-07 | [13424](https://github.com/airbytehq/airbyte/pull/13424) | Reordered fields for specification. |
+| 1.1.6 | 2022-05-15 | [12768](https://github.com/airbytehq/airbyte/pull/12768) | Clarify that the service account key json field is required on cloud. |
+| 0.3.5 | 2022-05-12 | [12805](https://github.com/airbytehq/airbyte/pull/12805) | Updated to latest base-java to emit AirbyteTraceMessage on error. |
+| 0.3.4 | 2022-05-04 | [12578](https://github.com/airbytehq/airbyte/pull/12578) | In JSON to Avro conversion, log JSON field values that do not follow Avro schema for debugging. |
+| 0.3.3 | 2022-05-02 | [12528](https://github.com/airbytehq/airbyte/pull/12528) | Update Dataset location field description |
+| 0.3.2 | 2022-04-29 | [12477](https://github.com/airbytehq/airbyte/pull/12477) | Dataset location is a required field |
+| 0.3.1 | 2022-04-15 | [11978](https://github.com/airbytehq/airbyte/pull/11978) | Fixed emittedAt timestamp. |
+| 0.3.0 | 2022-04-06 | [11776](https://github.com/airbytehq/airbyte/pull/11776) | Use serialized buffering strategy to reduce memory consumption. |
+| 0.2.15 | 2022-04-05 | [11166](https://github.com/airbytehq/airbyte/pull/11166) | Fixed handling of anyOf and allOf fields |
+| 0.2.14 | 2022-04-02 | [11620](https://github.com/airbytehq/airbyte/pull/11620) | Updated spec |
+| 0.2.13 | 2022-04-01 | [11636](https://github.com/airbytehq/airbyte/pull/11636) | Added new unit tests |
+| 0.2.12 | 2022-03-28 | [11454](https://github.com/airbytehq/airbyte/pull/11454) | Integration test enhancement for picking test-data and schemas |
+| 0.2.11 | 2022-03-18 | [10793](https://github.com/airbytehq/airbyte/pull/10793) | Fix namespace with invalid characters |
+| 0.2.10 | 2022-03-03 | [10755](https://github.com/airbytehq/airbyte/pull/10755) | Make sure to kill children threads and stop JVM |
+| 0.2.8 | 2022-02-14 | [10256](https://github.com/airbytehq/airbyte/pull/10256) | Add `-XX:+ExitOnOutOfMemoryError` JVM option |
+| 0.2.7 | 2022-02-01 | [9959](https://github.com/airbytehq/airbyte/pull/9959) | Fix null pointer exception from buffered stream consumer. |
+| 0.2.6 | 2022-01-29 | [9745](https://github.com/airbytehq/airbyte/pull/9745) | Integrate with Sentry. |
+| 0.2.5 | 2022-01-18 | [9573](https://github.com/airbytehq/airbyte/pull/9573) | BigQuery Destination : update description for some input fields |
+| 0.2.4 | 2022-01-17 | [8383](https://github.com/airbytehq/airbyte/issues/8383) | BigQuery/BiqQuery denorm Destinations : Support dataset-id prefixed by project-id |
+| 0.2.3 | 2022-01-12 | [9415](https://github.com/airbytehq/airbyte/pull/9415) | BigQuery Destination : Fix GCS processing of Facebook data |
+| 0.2.2 | 2021-12-22 | [9039](https://github.com/airbytehq/airbyte/pull/9039) | Added part_size configuration to UI for GCS staging |
+| 0.2.1 | 2021-12-21 | [8574](https://github.com/airbytehq/airbyte/pull/8574) | Added namespace to Avro and Parquet record types |
+| 0.2.0 | 2021-12-17 | [8788](https://github.com/airbytehq/airbyte/pull/8788) | BigQuery/BiqQuery denorm Destinations : Add possibility to use different types of GCS files |
+| 0.1.11 | 2021-12-16 | [8816](https://github.com/airbytehq/airbyte/issues/8816) | Update dataset locations |
+| 0.1.10 | 2021-11-09 | [7804](https://github.com/airbytehq/airbyte/pull/7804) | handle null values in fields described by a $ref definition |
+| 0.1.9 | 2021-11-08 | [7736](https://github.com/airbytehq/airbyte/issues/7736) | Fixed the handling of ObjectNodes with $ref definition key |
+| 0.1.8 | 2021-10-27 | [7413](https://github.com/airbytehq/airbyte/issues/7413) | Fixed DATETIME conversion for BigQuery |
+| 0.1.7 | 2021-10-26 | [7240](https://github.com/airbytehq/airbyte/issues/7240) | Output partitioned/clustered tables |
+| 0.1.6 | 2021-09-16 | [6145](https://github.com/airbytehq/airbyte/pull/6145) | BigQuery Denormalized support for date, datetime & timestamp types through the json "format" key |
+| 0.1.5 | 2021-09-07 | [5881](https://github.com/airbytehq/airbyte/pull/5881) | BigQuery Denormalized NPE fix |
+| 0.1.4 | 2021-09-04 | [5813](https://github.com/airbytehq/airbyte/pull/5813) | fix Stackoverflow error when receive a schema from source where "Array" type doesn't contain a required "items" element |
+| 0.1.3 | 2021-08-07 | [5261](https://github.com/airbytehq/airbyte/pull/5261) | 🐛 Destination BigQuery\(Denormalized\): Fix processing arrays of records |
+| 0.1.2 | 2021-07-30 | [5125](https://github.com/airbytehq/airbyte/pull/5125) | Enable `additionalPropertities` in spec.json |
+| 0.1.1 | 2021-06-21 | [3555](https://github.com/airbytehq/airbyte/pull/3555) | Partial Success in BufferedStreamConsumer |
+| 0.1.0 | 2021-06-21 | [4176](https://github.com/airbytehq/airbyte/pull/4176) | Destination using Typed Struct and Repeated fields |
diff --git a/docs/integrations/destinations/bigquery.md b/docs/integrations/destinations/bigquery.md
index 1a896d65df2f..5c3a8a585b97 100644
--- a/docs/integrations/destinations/bigquery.md
+++ b/docs/integrations/destinations/bigquery.md
@@ -10,7 +10,7 @@ This page guides you through setting up the BigQuery destination connector.
- [A Google Cloud project with BigQuery enabled](https://cloud.google.com/bigquery/docs/quickstarts/query-public-dataset-console)
- [A BigQuery dataset](https://cloud.google.com/bigquery/docs/quickstarts/quickstart-web-ui#create_a_dataset) to sync data to.
- **Note:** Queries written in BigQuery can only reference datasets in the same physical location. If you plan on combining the data that Airbyte syncs with data from other datasets in your queries, create the datasets in the same location on Google Cloud. For more information, read [Introduction to Datasets](https://cloud.google.com/bigquery/docs/datasets-intro)
+ **Note:** Queries written in BigQuery can only reference datasets in the same physical location. If you plan on combining the data that Airbyte syncs with data from other datasets in your queries, create the datasets in the same location on Google Cloud. For more information, read [Introduction to Datasets](https://cloud.google.com/bigquery/docs/datasets-intro)
- (Required for Airbyte Cloud; Optional for Airbyte Open Source) A Google Cloud [Service Account](https://cloud.google.com/iam/docs/service-accounts) with the [`BigQuery User`](https://cloud.google.com/bigquery/docs/access-control#bigquery) and [`BigQuery Data Editor`](https://cloud.google.com/bigquery/docs/access-control#bigquery) roles and the [Service Account Key in JSON format](https://cloud.google.com/iam/docs/creating-managing-service-account-keys).
@@ -50,14 +50,14 @@ You can use BigQuery's [`INSERT`](https://cloud.google.com/bigquery/docs/referen
4. Enter the name for the BigQuery connector.
5. For **Project ID**, enter your [Google Cloud project ID](https://cloud.google.com/resource-manager/docs/creating-managing-projects#identifying_projects).
6. For **Dataset Location**, select the location of your BigQuery dataset.
- :::warning
- You cannot change the location later.
- :::
+ :::warning
+ You cannot change the location later.
+ :::
7. For **Default Dataset ID**, enter the BigQuery [Dataset ID](https://cloud.google.com/bigquery/docs/datasets#create-dataset).
8. For **Loading Method**, select [Standard Inserts](#using-insert) or [GCS Staging](#recommended-using-a-google-cloud-storage-bucket).
- :::tip
- We recommend using the GCS Staging option.
- :::
+ :::tip
+ We recommend using the GCS Staging option.
+ :::
9. For **Service Account Key JSON (Required for cloud, optional for open-source)**, enter the Google Cloud [Service Account Key in JSON format](https://cloud.google.com/iam/docs/creating-managing-service-account-keys).
10. For **Transformation Query Run Type (Optional)**, select **interactive** to have [BigQuery run interactive query jobs](https://cloud.google.com/bigquery/docs/running-queries#queries) or **batch** to have [BigQuery run batch queries](https://cloud.google.com/bigquery/docs/running-queries#batch).
@@ -79,9 +79,9 @@ The BigQuery destination connector supports the following [sync modes](https://d
Airbyte outputs each stream into its own table in BigQuery. Each table contains three columns:
-* `_airbyte_ab_id`: A UUID assigned by Airbyte to each event that is processed. The column type in BigQuery is `String`.
-* `_airbyte_emitted_at`: A timestamp representing when the event was pulled from the data source. The column type in BigQuery is `Timestamp`.
-* `_airbyte_data`: A JSON blob representing the event data. The column type in BigQuery is `String`.
+- `_airbyte_ab_id`: A UUID assigned by Airbyte to each event that is processed. The column type in BigQuery is `String`.
+- `_airbyte_emitted_at`: A timestamp representing when the event was pulled from the data source. The column type in BigQuery is `Timestamp`.
+- `_airbyte_data`: A JSON blob representing the event data. The column type in BigQuery is `String`.
The output tables in BigQuery are partitioned and clustered by the Time-unit column `_airbyte_emitted_at` at a daily granularity. Partitions boundaries are based on UTC time.
This is useful to limit the number of partitions scanned when querying these partitioned tables, by using a predicate filter (a `WHERE` clause). Filters on the partitioning column are used to prune the partitions and reduce the query cost. (The parameter **Require partition filter** is not enabled by Airbyte, but you may toggle it by updating the produced tables.)
@@ -95,7 +95,7 @@ Airbyte converts any invalid characters into `_` characters when writing data. H
## Data type map
| Airbyte type | BigQuery type | BigQuery denormalized type |
-|:------------------------------------|:--------------|:---------------------------|
+| :---------------------------------- | :------------ | :------------------------- |
| DATE | DATE | DATE |
| STRING (BASE64) | STRING | STRING |
| NUMBER | FLOAT | NUMBER |
@@ -129,13 +129,13 @@ Now that you have set up the BigQuery destination connector, check out the follo
- [Replicate Salesforce data to BigQuery](https://airbyte.com/tutorials/replicate-salesforce-data-to-bigquery)
- [Partition and cluster BigQuery tables with Airbyte and dbt](https://airbyte.com/tutorials/bigquery-partition-cluster)
-
## Changelog
### bigquery
| Version | Date | Pull Request | Subject |
-|:--------|:-----------|:-----------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------|
+| :------ | :--------- | :--------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------- |
+| 1.2.20 | 2023-04-12 | [25122](https://github.com/airbytehq/airbyte/pull/25122) | Add additional data centers |
| 1.2.19 | 2023-03-29 | [#24671](https://github.com/airbytehq/airbyte/pull/24671) | Fail faster in certain error cases |
| 1.2.18 | 2023-03-23 | [#24447](https://github.com/airbytehq/airbyte/pull/24447) | Set the Service Account Key JSON field to always_show: true so that it isn't collapsed into an optional fields section |
| 1.2.17 | 2023-03-17 | [#23788](https://github.com/airbytehq/airbyte/pull/23788) | S3-Parquet: added handler to process null values in arrays |
diff --git a/tools/integrations/manage.sh b/tools/integrations/manage.sh
index 9ca7bdbceb1e..f3ff439b2127 100755
--- a/tools/integrations/manage.sh
+++ b/tools/integrations/manage.sh
@@ -314,6 +314,14 @@ cmd_publish() {
docker buildx build -t airbyte/integration-base:dev --platform $arch --load airbyte-integrations/bases/base
docker buildx build -t airbyte/integration-base-java:dev --platform $arch --load airbyte-integrations/bases/base-java
+ # For a short while (https://github.com/airbytehq/airbyte/pull/25034), destinations rely on the normalization image to build
+ # Thanks to gradle, destinstaions which need normalization will already have built base-normalization's "build" artifacts
+ if [[ "$image_name" == *"destination-"* ]]; then
+ if [ -f "airbyte-integrations/bases/base-normalization/build/sshtunneling.sh" ]; then
+ docker buildx build -t airbyte/normalization:dev --platform $arch --load airbyte-integrations/bases/base-normalization
+ fi
+ fi
+
local arch_versioned_image=$image_name:`echo $arch | sed "s/\//-/g"`-$image_version
echo "Publishing new version ($arch_versioned_image) from $path"
docker buildx build -t $arch_versioned_image --platform $arch --push $path
From c4e3c2f3688962bffdc992e665399e5f0638b7d0 Mon Sep 17 00:00:00 2001
From: Alexandre Girard
Date: Thu, 13 Apr 2023 08:18:42 -0700
Subject: [PATCH 047/187] Bump versions in atelier dockerfile (#25125)
* Bump versions in atelier dockerfile
* fix new version
* temporarily skip build and publish
* reset
* skip some steps
* Revert "skip some steps"
This reverts commit e034d10e15b403e4e4fcc91c4116f944a600775f.
---
.github/workflows/publish-cdk-command-manually.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/publish-cdk-command-manually.yml b/.github/workflows/publish-cdk-command-manually.yml
index 27c5ac540dcf..18343a2d6388 100644
--- a/.github/workflows/publish-cdk-command-manually.yml
+++ b/.github/workflows/publish-cdk-command-manually.yml
@@ -292,6 +292,8 @@ jobs:
token: ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }}
- name: Update CDK version
run: |
+ PREVIOUS_VERSION=$(cat oss/airbyte-connector-builder-resources/CDK_VERSION)
+ sed -i "s/${PREVIOUS_VERSION}/${{needs.bump-version.outputs.new_cdk_version}}/g" oss/airbyte-connector-atelier-server/Dockerfile
echo ${{needs.bump-version.outputs.new_cdk_version}} > oss/airbyte-connector-builder-resources/CDK_VERSION
cd oss/airbyte-connector-builder-server
pip install pip-tools
From d21d13163be054481633f11a20c6ef2b89341f44 Mon Sep 17 00:00:00 2001
From: Serhii Lazebnyi <53845333+lazebnyi@users.noreply.github.com>
Date: Thu, 13 Apr 2023 19:06:29 +0200
Subject: [PATCH 048/187] Source: Amazon Ads - Add pk validator for reports
when expected pk is not returned (#25146)
* Add pk validator for reports when expected pk is not returned
* Update PR number
* Fix formating
* auto-bump connector version
---------
Co-authored-by: Octavia Squidington III
---
.../src/main/resources/seed/oss_catalog.json | 2 +-
.../resources/seed/source_definitions.yaml | 2 +-
.../src/main/resources/seed/source_specs.yaml | 2 +-
.../connectors/source-amazon-ads/Dockerfile | 2 +-
.../streams/report_streams/report_streams.py | 3 ++-
.../unit_tests/test_report_streams.py | 26 +++++++++++++++++++
connectors.md | 2 +-
docs/integrations/sources/amazon-ads.md | 1 +
8 files changed, 34 insertions(+), 6 deletions(-)
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index a3d6bec616c8..d6efadb33fa9 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -8481,7 +8481,7 @@
"sourceDefinitionId": "c6b0a29e-1da9-4512-9002-7bfd0cba2246",
"name": "Amazon Ads",
"dockerRepository": "airbyte/source-amazon-ads",
- "dockerImageTag": "1.0.2",
+ "dockerImageTag": "1.0.3",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/amazon-ads",
"icon": "amazonads.svg",
"sourceType": "api",
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
index 31cce062ebc7..bba86fcaf3f5 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
@@ -65,7 +65,7 @@
- name: Amazon Ads
sourceDefinitionId: c6b0a29e-1da9-4512-9002-7bfd0cba2246
dockerRepository: airbyte/source-amazon-ads
- dockerImageTag: 1.0.2
+ dockerImageTag: 1.0.3
documentationUrl: https://docs.airbyte.com/integrations/sources/amazon-ads
icon: amazonads.svg
sourceType: api
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
index ba13cf61a725..54d688092716 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
@@ -822,7 +822,7 @@
supportsNormalization: false
supportsDBT: false
supported_destination_sync_modes: []
-- dockerImage: "airbyte/source-amazon-ads:1.0.2"
+- dockerImage: "airbyte/source-amazon-ads:1.0.3"
spec:
documentationUrl: "https://docs.airbyte.com/integrations/sources/amazon-ads"
connectionSpecification:
diff --git a/airbyte-integrations/connectors/source-amazon-ads/Dockerfile b/airbyte-integrations/connectors/source-amazon-ads/Dockerfile
index d989493b2056..c46a26c59a1a 100644
--- a/airbyte-integrations/connectors/source-amazon-ads/Dockerfile
+++ b/airbyte-integrations/connectors/source-amazon-ads/Dockerfile
@@ -14,5 +14,5 @@ ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
-LABEL io.airbyte.version=1.0.2
+LABEL io.airbyte.version=1.0.3
LABEL io.airbyte.name=airbyte/source-amazon-ads
diff --git a/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/streams/report_streams/report_streams.py b/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/streams/report_streams/report_streams.py
index 324595719677..d1653ba7df0c 100644
--- a/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/streams/report_streams/report_streams.py
+++ b/airbyte-integrations/connectors/source-amazon-ads/source_amazon_ads/streams/report_streams/report_streams.py
@@ -4,6 +4,7 @@
import json
import re
+import uuid
from abc import ABC, abstractmethod
from copy import deepcopy
from dataclasses import dataclass
@@ -165,7 +166,7 @@ def read_records(
profileId=report_info.profile_id,
recordType=report_info.record_type,
reportDate=report_date,
- recordId=metric_object[self.metrics_type_to_id_map[report_info.record_type]],
+ recordId=metric_object.get(self.metrics_type_to_id_map[report_info.record_type], str(uuid.uuid4())),
metric=metric_object,
).dict()
diff --git a/airbyte-integrations/connectors/source-amazon-ads/unit_tests/test_report_streams.py b/airbyte-integrations/connectors/source-amazon-ads/unit_tests/test_report_streams.py
index be13de943fbd..6c49fcacddd3 100644
--- a/airbyte-integrations/connectors/source-amazon-ads/unit_tests/test_report_streams.py
+++ b/airbyte-integrations/connectors/source-amazon-ads/unit_tests/test_report_streams.py
@@ -103,6 +103,15 @@
)
METRICS_COUNT = 5
+METRIC_RESPONSE_WITHOUT_ASIN_PK = b64decode(
+ """
+ H4sIAAAAAAAAClXMvQrCMBQF4L1PETIbyM1v4+giLr6AOAQTStH+ECsi4r
+ t7aZOKwx3u+TjnVBHyxiOEXnw3+rbpD4FuSe205IYrvvnHo+8iMr3jf4us
+ xKzHnK0lmls+7NPwGOdFapTjINXPcmy0FByELjD51MRpQesAUSooeI2v55
+ DCrp1ZAwipnF1HMy9lZ7StJRdAET/V+Qv1VRgd7AAAAA==
+"""
+)
+
def setup_responses(init_response=None, init_response_products=None, init_response_brands=None, status_response=None, metric_response=None):
if init_response:
@@ -206,6 +215,23 @@ def test_products_report_stream(config):
assert len(metrics) == METRICS_COUNT * len(stream.metrics_map)
+@responses.activate
+def test_products_report_stream_without_pk(config):
+ setup_responses(
+ init_response_products=REPORT_INIT_RESPONSE,
+ status_response=REPORT_STATUS_RESPONSE,
+ metric_response=METRIC_RESPONSE_WITHOUT_ASIN_PK,
+ )
+
+ profiles = make_profiles(profile_type="vendor")
+
+ stream = SponsoredProductsReportStream(config, profiles, authenticator=mock.MagicMock())
+ stream_slice = {"profile": profiles[0], "reportDate": "2021-07-25", "retry_count": 3}
+ metrics = [m for m in stream.read_records(SyncMode.incremental, stream_slice=stream_slice)]
+
+ assert len(metrics) == len(stream.metrics_map)
+
+
@responses.activate
def test_brands_report_stream(config):
setup_responses(
diff --git a/connectors.md b/connectors.md
index ff4fd2c65f2f..c7a0be32c650 100644
--- a/connectors.md
+++ b/connectors.md
@@ -11,7 +11,7 @@
| **Airtable** | | Source | airbyte/source-airtable:3.0.0 | generally_available | [link](https://docs.airbyte.com/integrations/sources/airtable) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-airtable) | `14c6e7ea-97ed-4f5e-a7b5-25e9a80b8212` |
| **AlloyDB for PostgreSQL** | | Source | airbyte/source-alloydb:2.0.19 | generally_available | [link](https://docs.airbyte.com/integrations/sources/alloydb) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-alloydb) | `1fa90628-2b9e-11ed-a261-0242ac120002` |
| **Alpha Vantage** | | Source | airbyte/source-alpha-vantage:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/alpha-vantage) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-alpha-vantage) | `db385323-9333-4fec-bec3-9e0ca9326c90` |
-| **Amazon Ads** | | Source | airbyte/source-amazon-ads:1.0.2 | generally_available | [link](https://docs.airbyte.com/integrations/sources/amazon-ads) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amazon-ads) | `c6b0a29e-1da9-4512-9002-7bfd0cba2246` |
+| **Amazon Ads** | | Source | airbyte/source-amazon-ads:1.0.3 | generally_available | [link](https://docs.airbyte.com/integrations/sources/amazon-ads) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amazon-ads) | `c6b0a29e-1da9-4512-9002-7bfd0cba2246` |
| **Amazon SQS** | | Source | airbyte/source-amazon-sqs:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/amazon-sqs) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amazon-sqs) | `983fd355-6bf3-4709-91b5-37afa391eeb6` |
| **Amazon Seller Partner** | | Source | airbyte/source-amazon-seller-partner:1.0.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/amazon-seller-partner) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amazon-seller-partner) | `e55879a8-0ef8-4557-abcf-ab34c53ec460` |
| **Amplitude** | | Source | airbyte/source-amplitude:0.2.0 | generally_available | [link](https://docs.airbyte.com/integrations/sources/amplitude) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amplitude) | `fa9f58c6-2d03-4237-aaa4-07d75e0c1396` |
diff --git a/docs/integrations/sources/amazon-ads.md b/docs/integrations/sources/amazon-ads.md
index 048db1f8985f..53271ade13b6 100644
--- a/docs/integrations/sources/amazon-ads.md
+++ b/docs/integrations/sources/amazon-ads.md
@@ -94,6 +94,7 @@ Information about expected report generation waiting time you may find [here](ht
| Version | Date | Pull Request | Subject |
|:--------|:-----------|:---------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------|
+| 1.0.3 | 2023-04-13 | [25146](https://github.com/airbytehq/airbyte/pull/25146) | Validate pk for reports when expected pk is not returned |
| 1.0.2 | 2023-02-03 | [22355](https://github.com/airbytehq/airbyte/pull/22355) | Migrate `products_report` stream to API v3 |
| 1.0.1 | 2022-11-01 | [18677](https://github.com/airbytehq/airbyte/pull/18677) | Add optional config report_record_types |
| 1.0.0 | 2023-01-30 | [21677](https://github.com/airbytehq/airbyte/pull/21677) | Fix bug with non-unique primary keys in report streams. Add asins_keywords and asins_targets |
From c222af616f68798ddb02378a51221476ee51dcfa Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Thu, 13 Apr 2023 23:09:51 +0530
Subject: [PATCH 049/187] =?UTF-8?q?=F0=9F=8E=89Source=20Twilio:=20New=20St?=
=?UTF-8?q?ream=20Conversation=20Participants=20(#23995)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Source Twilio: New Stream Conversation Participants
* fix: format schema and fix to incremental stream
* refactor: Add newline
* fix: remove unwanted file
* fix: schema fixes
* fix: Avoid acceptance test bypass for full testing
* fix: Fixed incremental behaviour, Updated docs, Updated VersionTag
* fix: Fixed incremental behaviour, Updated docs, Updated VersionTag
* fix: Fixed syntax, Updated docs
* fix: schema, update docs
* fix: Changed parent stream, expected record fixes, connector version bump
* chore: EOL fix
* fix expected records for conversations participant
* Update Twilio version to 0.5.0
* update twilio version to 0.5.0
* remove conversation_participants from state file
* add lines and add eof
* update twilio version to 0.5.0 in source spec
* removed conversation_participants from abnormal state
* remove extra lines
* update doc connector version
* update json schema draft version
* fix doc conflict
* add expected records
* auto-bump connector version
---------
Co-authored-by: Marcos Marx
Co-authored-by: marcosmarxm
Co-authored-by: Octavia Squidington III
---
.../src/main/resources/seed/oss_catalog.json | 2 +-
.../resources/seed/source_definitions.yaml | 2 +-
.../src/main/resources/seed/source_specs.yaml | 2 +-
.../connectors/source-twilio/Dockerfile | 2 +-
.../constant_records_catalog.json | 9 +++
.../integration_tests/expected_records.jsonl | 2 +
.../schemas/conversation_participants.json | 56 +++++++++++++++++++
.../source-twilio/source_twilio/source.py | 2 +
.../source-twilio/source_twilio/streams.py | 16 ++++++
.../source-twilio/unit_tests/test_source.py | 2 +
connectors.md | 2 +-
docs/integrations/sources/twilio.md | 3 +
12 files changed, 95 insertions(+), 5 deletions(-)
create mode 100644 airbyte-integrations/connectors/source-twilio/source_twilio/schemas/conversation_participants.json
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index d6efadb33fa9..3375461d5810 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -25803,7 +25803,7 @@
"sourceDefinitionId": "b9dc6155-672e-42ea-b10d-9f1f1fb95ab1",
"name": "Twilio",
"dockerRepository": "airbyte/source-twilio",
- "dockerImageTag": "0.4.0",
+ "dockerImageTag": "0.5.0",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/twilio",
"icon": "twilio.svg",
"sourceType": "api",
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
index bba86fcaf3f5..20080f18f6e9 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
@@ -2162,7 +2162,7 @@
- name: Twilio
sourceDefinitionId: b9dc6155-672e-42ea-b10d-9f1f1fb95ab1
dockerRepository: airbyte/source-twilio
- dockerImageTag: 0.4.0
+ dockerImageTag: 0.5.0
documentationUrl: https://docs.airbyte.com/integrations/sources/twilio
icon: twilio.svg
sourceType: api
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
index 54d688092716..4c517edbc849 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
@@ -16223,7 +16223,7 @@
supportsNormalization: false
supportsDBT: false
supported_destination_sync_modes: []
-- dockerImage: "airbyte/source-twilio:0.4.0"
+- dockerImage: "airbyte/source-twilio:0.5.0"
spec:
documentationUrl: "https://docs.airbyte.com/integrations/sources/twilio"
connectionSpecification:
diff --git a/airbyte-integrations/connectors/source-twilio/Dockerfile b/airbyte-integrations/connectors/source-twilio/Dockerfile
index 811f8cf05796..951479e35121 100644
--- a/airbyte-integrations/connectors/source-twilio/Dockerfile
+++ b/airbyte-integrations/connectors/source-twilio/Dockerfile
@@ -12,5 +12,5 @@ COPY main.py ./
ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
-LABEL io.airbyte.version=0.4.0
+LABEL io.airbyte.version=0.5.0
LABEL io.airbyte.name=airbyte/source-twilio
diff --git a/airbyte-integrations/connectors/source-twilio/integration_tests/constant_records_catalog.json b/airbyte-integrations/connectors/source-twilio/integration_tests/constant_records_catalog.json
index 6f211ac1a3b5..6eaadbd314b5 100644
--- a/airbyte-integrations/connectors/source-twilio/integration_tests/constant_records_catalog.json
+++ b/airbyte-integrations/connectors/source-twilio/integration_tests/constant_records_catalog.json
@@ -174,6 +174,15 @@
"sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
},
+ {
+ "stream": {
+ "name": "conversation_participants",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
{
"stream": {
"name": "flows",
diff --git a/airbyte-integrations/connectors/source-twilio/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-twilio/integration_tests/expected_records.jsonl
index 28379ab05cb0..85f747be5cc2 100644
--- a/airbyte-integrations/connectors/source-twilio/integration_tests/expected_records.jsonl
+++ b/airbyte-integrations/connectors/source-twilio/integration_tests/expected_records.jsonl
@@ -542,3 +542,5 @@
{"stream": "executions", "data": {"status": "ended", "date_updated": "2023-03-16T20:38:55Z", "contact_channel_address": "+15558675310", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "url": "https://studio.twilio.com/v1/Flows/FW7ad717a690629a6da33bd3c8b9cf7d97/Executions/FN56f40a4629dfdd07f9d5071b5c90b23c", "context": {}, "sid": "FN56f40a4629dfdd07f9d5071b5c90b23c", "date_created": "2023-03-16T20:38:54Z", "contact_sid": "FC2aa67aaf0fe6169979cfa2a6f85fc654", "flow_sid": "FW7ad717a690629a6da33bd3c8b9cf7d97", "links": {"steps": "https://studio.twilio.com/v1/Flows/FW7ad717a690629a6da33bd3c8b9cf7d97/Executions/FN56f40a4629dfdd07f9d5071b5c90b23c/Steps", "execution_context": "https://studio.twilio.com/v1/Flows/FW7ad717a690629a6da33bd3c8b9cf7d97/Executions/FN56f40a4629dfdd07f9d5071b5c90b23c/Context"}}, "emitted_at": 1679000535024}
{"stream": "conversations", "data": {"unique_name": null, "date_updated": "2023-03-21T13:39:44Z", "friendly_name": "Friendly Conversation", "timers": {}, "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "url": "https://conversations.twilio.com/v1/Conversations/CH0ed7b4c3498e455a96fa09fcccee720e", "state": "active", "date_created": "2023-03-21T13:39:44Z", "messaging_service_sid": "MGfdf707ca9a7e03496ad79dc64e5e543e", "sid": "CH0ed7b4c3498e455a96fa09fcccee720e", "attributes": "{}", "bindings": null, "chat_service_sid": "IS5fcc074f7ead44c99a0a24a374a7e19f", "links": {"participants": "https://conversations.twilio.com/v1/Conversations/CH0ed7b4c3498e455a96fa09fcccee720e/Participants", "messages": "https://conversations.twilio.com/v1/Conversations/CH0ed7b4c3498e455a96fa09fcccee720e/Messages", "webhooks": "https://conversations.twilio.com/v1/Conversations/CH0ed7b4c3498e455a96fa09fcccee720e/Webhooks"}}, "emitted_at": 1679415128580}
{"stream": "conversation_messages", "data": {"body": "Ahoy there", "index": 0, "author": "smee", "date_updated": "2023-04-01T12:37:19Z", "media": null, "participant_sid": null, "conversation_sid": "CH0ed7b4c3498e455a96fa09fcccee720e", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "delivery": null, "url": "https://conversations.twilio.com/v1/Conversations/CH0ed7b4c3498e455a96fa09fcccee720e/Messages/IMd28bbec7d60f4c9b84595170871c6f28", "date_created": "2023-04-01T12:37:19Z", "content_sid": null, "sid": "IMd28bbec7d60f4c9b84595170871c6f28", "attributes": "{}", "links": {"delivery_receipts": "https://conversations.twilio.com/v1/Conversations/CH0ed7b4c3498e455a96fa09fcccee720e/Messages/IMd28bbec7d60f4c9b84595170871c6f28/Receipts"}}, "emitted_at": 1680353085404}
+{"stream": "conversation_participants", "data": {"last_read_message_index": null, "date_updated": "2023-04-13T11:52:17Z", "last_read_timestamp": null, "conversation_sid": "CH0ed7b4c3498e455a96fa09fcccee720e", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "url": "https://conversations.twilio.com/v1/Conversations/CH0ed7b4c3498e455a96fa09fcccee720e/Participants/MB0a984a4238f14b828cf277becf880bd4", "date_created": "2023-04-13T11:52:17Z", "role_sid": "RLca3ff6cb9bc9404caf14e43b63fed446", "sid": "MB0a984a4238f14b828cf277becf880bd4", "attributes": "{}", "identity": "Integration Test 2", "messaging_binding": null}, "emitted_at": 1681386889231}
+{"stream": "conversation_participants", "data": {"last_read_message_index": null, "date_updated": "2023-04-13T11:52:02Z", "last_read_timestamp": null, "conversation_sid": "CH0ed7b4c3498e455a96fa09fcccee720e", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "url": "https://conversations.twilio.com/v1/Conversations/CH0ed7b4c3498e455a96fa09fcccee720e/Participants/MB41bb002a3a5e412fa7f2459dcfb4925f", "date_created": "2023-04-13T11:52:02Z", "role_sid": "RLca3ff6cb9bc9404caf14e43b63fed446", "sid": "MB41bb002a3a5e412fa7f2459dcfb4925f", "attributes": "{}", "identity": "Integration Test", "messaging_binding": null}, "emitted_at": 1681386889233}
diff --git a/airbyte-integrations/connectors/source-twilio/source_twilio/schemas/conversation_participants.json b/airbyte-integrations/connectors/source-twilio/source_twilio/schemas/conversation_participants.json
new file mode 100644
index 000000000000..35c580c3c274
--- /dev/null
+++ b/airbyte-integrations/connectors/source-twilio/source_twilio/schemas/conversation_participants.json
@@ -0,0 +1,56 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "account_sid": {
+ "type": ["null", "string"]
+ },
+ "conversation_sid": {
+ "type": ["null", "string"]
+ },
+ "sid": {
+ "type": ["null", "string"]
+ },
+ "identity": {
+ "type": ["null", "string"]
+ },
+ "attributes": {
+ "type": ["null", "string"]
+ },
+ "messaging_binding": {
+ "type": ["null", "object"],
+ "properties": {
+ "type": {
+ "type": ["null", "string"]
+ },
+ "address": {
+ "type": ["null", "string"]
+ },
+ "proxy_address": {
+ "type": ["null", "string"]
+ }
+ }
+ },
+ "role_sid": {
+ "type": ["null", "string"]
+ },
+ "date_created": {
+ "format": "date-time",
+ "type": ["null", "string"]
+ },
+ "date_updated": {
+ "format": "date-time",
+ "type": ["null", "string"]
+ },
+ "url": {
+ "type": ["null", "string"]
+ },
+ "last_read_message_index": {
+ "type": ["null", "string"]
+ },
+ "last_read_timestamp": {
+ "type": ["null", "string"]
+ }
+ }
+}
diff --git a/airbyte-integrations/connectors/source-twilio/source_twilio/source.py b/airbyte-integrations/connectors/source-twilio/source_twilio/source.py
index 25b85e575420..eb000f8158c2 100644
--- a/airbyte-integrations/connectors/source-twilio/source_twilio/source.py
+++ b/airbyte-integrations/connectors/source-twilio/source_twilio/source.py
@@ -24,6 +24,7 @@
ConferenceParticipants,
Conferences,
ConversationMessages,
+ ConversationParticipants,
Conversations,
DependentPhoneNumbers,
Executions,
@@ -98,6 +99,7 @@ def streams(self, config: Mapping[str, Any]) -> List[Stream]:
Conferences(**incremental_stream_kwargs),
Conversations(**full_refresh_stream_kwargs),
ConversationMessages(**full_refresh_stream_kwargs),
+ ConversationParticipants(**full_refresh_stream_kwargs),
DependentPhoneNumbers(**full_refresh_stream_kwargs),
Flows(**full_refresh_stream_kwargs),
Executions(**full_refresh_stream_kwargs),
diff --git a/airbyte-integrations/connectors/source-twilio/source_twilio/streams.py b/airbyte-integrations/connectors/source-twilio/source_twilio/streams.py
index 64d19b45f72c..b32b07be24b6 100644
--- a/airbyte-integrations/connectors/source-twilio/source_twilio/streams.py
+++ b/airbyte-integrations/connectors/source-twilio/source_twilio/streams.py
@@ -19,6 +19,7 @@
from pendulum.datetime import DateTime
from requests.auth import AuthBase
+TWILIO_CONVERSATION_BASE = "https://conversations.twilio.com/v1/"
TWILIO_API_URL_BASE = "https://api.twilio.com"
TWILIO_API_URL_BASE_VERSIONED = f"{TWILIO_API_URL_BASE}/2010-04-01/"
TWILIO_MONITOR_URL_BASE = "https://monitor.twilio.com/v1/"
@@ -542,6 +543,21 @@ def path(self, **kwargs):
return self.name.title()
+class ConversationParticipants(TwilioNestedStream):
+ """https://www.twilio.com/docs/conversations/api/conversation-participant-resource"""
+
+ parent_stream = Conversations
+ url_base = TWILIO_CONVERSATIONS_URL_BASE
+ data_field = "participants"
+ uri_from_subresource = False
+
+ def path(self, stream_slice: Mapping[str, Any], **kwargs):
+ return f"Conversations/{stream_slice['conversation_sid']}/Participants"
+
+ def parent_record_to_stream_slice(self, record: Mapping[str, Any]) -> Mapping[str, Any]:
+ return {"conversation_sid": record["sid"]}
+
+
class ConversationMessages(TwilioNestedStream):
"""https://www.twilio.com/docs/conversations/api/conversation-message-resource#list-all-conversation-messages"""
diff --git a/airbyte-integrations/connectors/source-twilio/unit_tests/test_source.py b/airbyte-integrations/connectors/source-twilio/unit_tests/test_source.py
index 56d2bf879e84..346bb5dbf45c 100644
--- a/airbyte-integrations/connectors/source-twilio/unit_tests/test_source.py
+++ b/airbyte-integrations/connectors/source-twilio/unit_tests/test_source.py
@@ -19,6 +19,7 @@
Calls,
ConferenceParticipants,
Conferences,
+ ConversationParticipants,
Conversations,
DependentPhoneNumbers,
IncomingPhoneNumbers,
@@ -98,6 +99,7 @@ def test_check_connection_handles_exceptions(mocker, config, exception, expected
(UsageRecords),
(UsageTriggers),
(Conversations),
+ (ConversationParticipants)
],
)
def test_streams(stream_cls, config):
diff --git a/connectors.md b/connectors.md
index c7a0be32c650..20a8b3d761f9 100644
--- a/connectors.md
+++ b/connectors.md
@@ -246,7 +246,7 @@
| **Toggl** | | Source | airbyte/source-toggl:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/toggl) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-toggl) | `7e7c844f-2300-4342-b7d3-6dd7992593cd` |
| **Trello** | | Source | airbyte/source-trello:0.3.1 | beta | [link](https://docs.airbyte.com/integrations/sources/trello) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-trello) | `8da67652-004c-11ec-9a03-0242ac130003` |
| **TrustPilot** | | Source | airbyte/source-trustpilot:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/trustpilot) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-trustpilot) | `d7e23ea6-d741-4314-9209-a33c91a2e945` |
-| **Twilio** | | Source | airbyte/source-twilio:0.4.0 | generally_available | [link](https://docs.airbyte.com/integrations/sources/twilio) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-twilio) | `b9dc6155-672e-42ea-b10d-9f1f1fb95ab1` |
+| **Twilio** | | Source | airbyte/source-twilio:0.5.0 | generally_available | [link](https://docs.airbyte.com/integrations/sources/twilio) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-twilio) | `b9dc6155-672e-42ea-b10d-9f1f1fb95ab1` |
| **Twilio Taskrouter** | | Source | airbyte/source-twilio-taskrouter:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/twilio-taskrouter) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-twilio-taskrouter) | `2446953b-b794-429b-a9b3-c821ba992a48` |
| **Twitter** | | Source | airbyte/source-twitter:0.1.2 | beta | [link](https://docs.airbyte.com/integrations/sources/twitter) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-twitter) | `d7fd4f40-5e5a-4b8b-918f-a73077f8c131` |
| **Tyntec SMS** | | Source | airbyte/source-tyntec-sms:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/tyntec-sms) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-tyntec-sms) | `3c0c3cd1-b3e0-464a-9090-d3ceb5f92346` |
diff --git a/docs/integrations/sources/twilio.md b/docs/integrations/sources/twilio.md
index a4f6850a4d14..0da64aba78e0 100644
--- a/docs/integrations/sources/twilio.md
+++ b/docs/integrations/sources/twilio.md
@@ -64,6 +64,7 @@ The Twilio source connector supports the following [sync modes](https://docs.air
* [Conferences](https://www.twilio.com/docs/voice/api/conference-resource#read-multiple-conference-resources) \(Incremental\)
* [Conversations](https://www.twilio.com/docs/conversations/api/conversation-resource#read-multiple-conversation-resources)
* [Conversation Messages](https://www.twilio.com/docs/conversations/api/conversation-message-resource#list-all-conversation-messages)
+* [Conversation Participants](https://www.twilio.com/docs/conversations/api/conversation-participant-resource)
* [Dependent Phone Numbers](https://www.twilio.com/docs/usage/api/address?code-sample=code-list-dependent-pns-subresources&code-language=curl&code-sdk-version=json#instance-subresources) \(Incremental\)
* [Executions](https://www.twilio.com/docs/phone-numbers/api/incomingphonenumber-resource#read-multiple-incomingphonenumber-resources) \(Incremental\)
* [Incoming Phone Numbers](https://www.twilio.com/docs/phone-numbers/api/incomingphonenumber-resource#read-multiple-incomingphonenumber-resources) \(Incremental\)
@@ -87,6 +88,8 @@ For more information, see [the Twilio docs for rate limitations](https://support
| Version | Date | Pull Request | Subject |
|:--------|:-----------|:---------------------------------------------------------|:--------------------------------------------------------------------------------------------------------|
+
+| 0.5.0 | 2023-03-21 | [23995](https://github.com/airbytehq/airbyte/pull/23995) | Add new stream `Conversation Participants` |
| 0.4.0 | 2023-03-18 | [23995](https://github.com/airbytehq/airbyte/pull/23995) | Add new stream `Conversation Messages` |
| 0.3.0 | 2023-03-18 | [22874](https://github.com/airbytehq/airbyte/pull/22874) | Add new stream `Executions` with parent `Flows` |
| 0.2.0 | 2023-03-16 | [24114](https://github.com/airbytehq/airbyte/pull/24114) | Add `Conversations` stream
From 940d2108b6169fb6f721020be8e308bb23c8556a Mon Sep 17 00:00:00 2001
From: Arsen Losenko <20901439+arsenlosenko@users.noreply.github.com>
Date: Thu, 13 Apr 2023 20:50:51 +0300
Subject: [PATCH 050/187] Source Iterable: update expected records (#25144)
---
.../integration_tests/expected_records.jsonl | 204 +++++++++---------
1 file changed, 100 insertions(+), 104 deletions(-)
diff --git a/airbyte-integrations/connectors/source-iterable/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-iterable/integration_tests/expected_records.jsonl
index fd34ba3474dd..0e0c3b43caab 100644
--- a/airbyte-integrations/connectors/source-iterable/integration_tests/expected_records.jsonl
+++ b/airbyte-integrations/connectors/source-iterable/integration_tests/expected_records.jsonl
@@ -121,67 +121,65 @@
{"stream":"email_open","data":{"ip":"66.249.81.11","email":"y.kurochkin@zazmic.com","userAgent":"Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)","templateId":3043605,"messageId":"acd3c6a275a445a8944457a25e218daa","createdAt":"2021-04-14T17:00:11+00:00","campaignId":2220229,"userAgentDevice":"Gmail"},"emitted_at":1675804471149}
{"stream":"email_send","data":{"email":"y.kurochkin-fake@zazmic.com","messageTypeId":47258,"catalogLookupCount":0,"templateId":3043605,"messageBusId":"01000178d1341684-a4d837cd-d5ac-4b47-9074-5673b56adcf3-000000","messageId":"5ab46e765ee449588bb9709fb4a68290","createdAt":"2021-04-14T16:25:55+00:00","catalogCollectionCount":0,"campaignId":2220229,"channelId":39582,"productRecommendationCount":0,"contentId":12029221},"emitted_at":1675804472505}
{"stream":"email_send","data":{"email":"y.kurochkin@zazmic.com","messageTypeId":47258,"catalogLookupCount":0,"templateId":3043605,"messageBusId":"01000178d1341a2f-0b4e8650-bce6-4464-adcc-74408648c444-000000","messageId":"acd3c6a275a445a8944457a25e218daa","createdAt":"2021-04-14T16:25:56+00:00","catalogCollectionCount":0,"campaignId":2220229,"channelId":39582,"productRecommendationCount":0,"contentId":12029221},"emitted_at":1675804472506}
-{"stream":"email_subscribe","data":{"email":"fake-email-1@imail.com","emailListIds":[949814],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:48:01 +00:00","userId":"1234","createdAt":"2021-04-14T16:49:04+00:00","signupSource":"ListAPI"},"emitted_at":1675804474662}
-{"stream":"email_subscribe","data":{"email":"fake-email-10@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:18 +00:00","userId":"new-fake-user-number-10","createdAt":"2021-04-14T16:52:18+00:00","signupSource":"ListAPI"},"emitted_at":1675804474663}
-{"stream":"email_subscribe","data":{"email":"fake-email-50@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:42 +00:00","userId":"new-fake-user-number-50","createdAt":"2021-04-14T16:52:43+00:00","signupSource":"ListAPI"},"emitted_at":1675804474664}
-{"stream":"email_subscribe","data":{"email":"fake-email-4@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:14 +00:00","userId":"new-fake-user-number-4","createdAt":"2021-04-14T16:52:15+00:00","signupSource":"ListAPI"},"emitted_at":1675804474664}
-{"stream":"email_subscribe","data":{"email":"fake-email-6@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:16 +00:00","userId":"new-fake-user-number-6","createdAt":"2021-04-14T16:52:16+00:00","signupSource":"ListAPI"},"emitted_at":1675804474665}
-{"stream":"email_subscribe","data":{"email":"y.kurochkin-fake@zazmic.com","emailListIds":[949814],"channelIds":[],"profileUpdatedAt":"2021-04-09 11:26:50 +00:00","userId":"string","createdAt":"2021-04-09T11:26:50+00:00","signupSource":"ListAPI"},"emitted_at":1675804474666}
-{"stream":"email_subscribe","data":{"email":"fake-email-8@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:17 +00:00","userId":"new-fake-user-number-8","createdAt":"2021-04-14T16:52:18+00:00","signupSource":"ListAPI"},"emitted_at":1675804474666}
-{"stream":"email_subscribe","data":{"email":"fake-email-1@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:13 +00:00","userId":"new-fake-user-number-1","createdAt":"2021-04-14T16:52:13+00:00","signupSource":"ListAPI"},"emitted_at":1675804474667}
-{"stream":"email_subscribe","data":{"email":"fake-email-0@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:08 +00:00","userId":"new-fake-user-number-0","createdAt":"2021-04-14T16:52:09+00:00","signupSource":"ListAPI"},"emitted_at":1675804474668}
-{"stream":"email_subscribe","data":{"email":"fake-email-42@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:37 +00:00","userId":"new-fake-user-number-42","createdAt":"2021-04-14T16:52:37+00:00","signupSource":"ListAPI"},"emitted_at":1675804474669}
-{"stream":"email_subscribe","data":{"email":"fake-email-52@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:43 +00:00","userId":"new-fake-user-number-52","createdAt":"2021-04-14T16:52:43+00:00","signupSource":"ListAPI"},"emitted_at":1675804474669}
-{"stream":"email_subscribe","data":{"email":"fake-email-23@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:26 +00:00","userId":"new-fake-user-number-23","createdAt":"2021-04-14T16:52:26+00:00","signupSource":"ListAPI"},"emitted_at":1675804474669}
-{"stream":"email_subscribe","data":{"email":"fake-email-15@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:21 +00:00","userId":"new-fake-user-number-15","createdAt":"2021-04-14T16:52:21+00:00","signupSource":"ListAPI"},"emitted_at":1675804474670}
-{"stream":"email_subscribe","data":{"email":"fake-email-34@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:32 +00:00","userId":"new-fake-user-number-34","createdAt":"2021-04-14T16:52:33+00:00","signupSource":"ListAPI"},"emitted_at":1675804474670}
-{"stream":"email_subscribe","data":{"email":"fake-emil-1@imail.com","emailListIds":[949814],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:51:23 +00:00","userId":"134","createdAt":"2021-04-14T16:51:27+00:00","signupSource":"ListAPI"},"emitted_at":1675804474671}
-{"stream":"email_subscribe","data":{"email":"fake-email-12@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:20 +00:00","userId":"new-fake-user-number-12","createdAt":"2021-04-14T16:52:21+00:00","signupSource":"ListAPI"},"emitted_at":1675804474671}
-{"stream":"email_subscribe","data":{"email":"fake-email-2@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:13 +00:00","userId":"new-fake-user-number-2","createdAt":"2021-04-14T16:52:14+00:00","signupSource":"ListAPI"},"emitted_at":1675804474676}
-{"stream":"email_subscribe","data":{"email":"fake-email-44@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:38 +00:00","userId":"new-fake-user-number-44","createdAt":"2021-04-14T16:52:39+00:00","signupSource":"ListAPI"},"emitted_at":1675804474676}
-{"stream":"email_subscribe","data":{"email":"fake-email-30@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:30 +00:00","userId":"new-fake-user-number-30","createdAt":"2021-04-14T16:52:33+00:00","signupSource":"ListAPI"},"emitted_at":1675804474677}
-{"stream":"email_subscribe","data":{"email":"fake-email-13@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:20 +00:00","userId":"new-fake-user-number-13","createdAt":"2021-04-14T16:52:21+00:00","signupSource":"ListAPI"},"emitted_at":1675804474677}
-{"stream":"email_subscribe","data":{"email":"fake-email-24@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:26 +00:00","userId":"new-fake-user-number-24","createdAt":"2021-04-14T16:52:27+00:00","signupSource":"ListAPI"},"emitted_at":1675804474678}
-{"stream":"email_subscribe","data":{"email":"fake-email-38@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:35 +00:00","userId":"new-fake-user-number-38","createdAt":"2021-04-14T16:52:35+00:00","signupSource":"ListAPI"},"emitted_at":1675804474780}
-{"stream":"email_subscribe","data":{"email":"fake-email-5@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:15 +00:00","userId":"new-fake-user-number-5","createdAt":"2021-04-14T16:52:18+00:00","signupSource":"ListAPI"},"emitted_at":1675804474785}
-{"stream":"email_subscribe","data":{"email":"fake-email-22@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:25 +00:00","userId":"new-fake-user-number-22","createdAt":"2021-04-14T16:52:26+00:00","signupSource":"ListAPI"},"emitted_at":1675804474785}
-{"stream":"email_subscribe","data":{"email":"fake-email-41@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:36 +00:00","userId":"new-fake-user-number-41","createdAt":"2021-04-14T16:52:37+00:00","signupSource":"ListAPI"},"emitted_at":1675804474786}
-{"stream":"email_subscribe","data":{"email":"fake-email-19@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:24 +00:00","userId":"new-fake-user-number-19","createdAt":"2021-04-14T16:52:24+00:00","signupSource":"ListAPI"},"emitted_at":1675804474786}
-{"stream":"email_subscribe","data":{"email":"jane@iterable.com","emailListIds":[949814],"lastName":"Smith","userId":"user5678","firstName":"Jane","channelIds":[],"someDate":"2015-11-13","isFoobar":false,"profileUpdatedAt":"2021-04-14 16:45:13 +00:00","createdAt":"2021-04-14T16:46:02+00:00","signupSource":"Import"},"emitted_at":1675804474787}
-{"stream":"email_subscribe","data":{"email":"fake-email-28@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:29 +00:00","userId":"new-fake-user-number-28","createdAt":"2021-04-14T16:52:29+00:00","signupSource":"ListAPI"},"emitted_at":1675804474789}
-{"stream":"email_subscribe","data":{"email":"fake-email-40@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:36 +00:00","userId":"new-fake-user-number-40","createdAt":"2021-04-14T16:52:36+00:00","signupSource":"ListAPI"},"emitted_at":1675804474790}
-{"stream":"email_subscribe","data":{"email":"fake-email-7@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:16 +00:00","userId":"new-fake-user-number-7","createdAt":"2021-04-14T16:52:18+00:00","signupSource":"ListAPI"},"emitted_at":1675804474791}
-{"stream":"email_subscribe","data":{"email":"fake-email-26@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:28 +00:00","userId":"new-fake-user-number-26","createdAt":"2021-04-14T16:52:28+00:00","signupSource":"ListAPI"},"emitted_at":1675804474792}
-{"stream":"email_subscribe","data":{"email":"fake-email-47@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:40 +00:00","userId":"new-fake-user-number-47","createdAt":"2021-04-14T16:52:40+00:00","signupSource":"ListAPI"},"emitted_at":1675804474792}
-{"stream":"email_subscribe","data":{"email":"fake-email-21@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:25 +00:00","userId":"new-fake-user-number-21","createdAt":"2021-04-14T16:52:25+00:00","signupSource":"ListAPI"},"emitted_at":1675804474793}
-{"stream":"email_subscribe","data":{"email":"fake-email-3@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:14 +00:00","userId":"new-fake-user-number-3","createdAt":"2021-04-14T16:52:14+00:00","signupSource":"ListAPI"},"emitted_at":1675804474794}
-{"stream":"email_subscribe","data":{"email":"fake-email-32@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:31 +00:00","userId":"new-fake-user-number-32","createdAt":"2021-04-14T16:52:32+00:00","signupSource":"ListAPI"},"emitted_at":1675804474794}
-{"stream":"email_subscribe","data":{"email":"fake-email-43@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:37 +00:00","userId":"new-fake-user-number-43","createdAt":"2021-04-14T16:52:38+00:00","signupSource":"ListAPI"},"emitted_at":1675804474795}
-{"stream":"email_subscribe","data":{"email":"fake-email-20@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:24 +00:00","userId":"new-fake-user-number-20","createdAt":"2021-04-14T16:52:24+00:00","signupSource":"ListAPI"},"emitted_at":1675804474796}
-{"stream":"email_subscribe","data":{"email":"fake-email-54@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:44 +00:00","userId":"new-fake-user-number-54","createdAt":"2021-04-14T16:52:45+00:00","signupSource":"ListAPI"},"emitted_at":1675804474796}
-{"stream":"email_subscribe","data":{"email":"fake-email-45@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:39 +00:00","userId":"new-fake-user-number-45","createdAt":"2021-04-14T16:52:39+00:00","signupSource":"ListAPI"},"emitted_at":1675804474797}
-{"stream":"email_subscribe","data":{"email":"fake-email-36@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:33 +00:00","userId":"new-fake-user-number-36","createdAt":"2021-04-14T16:52:34+00:00","signupSource":"ListAPI"},"emitted_at":1675804474798}
-{"stream":"email_subscribe","data":{"email":"fake-email-33@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:32 +00:00","userId":"new-fake-user-number-33","createdAt":"2021-04-14T16:52:32+00:00","signupSource":"ListAPI"},"emitted_at":1675804474799}
-{"stream":"email_subscribe","data":{"email":"fake-email-14@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:21 +00:00","userId":"new-fake-user-number-14","createdAt":"2021-04-14T16:52:21+00:00","signupSource":"ListAPI"},"emitted_at":1675804474799}
-{"stream":"email_subscribe","data":{"email":"fake-email-35@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:33 +00:00","userId":"new-fake-user-number-35","createdAt":"2021-04-14T16:52:34+00:00","signupSource":"ListAPI"},"emitted_at":1675804474800}
-{"stream":"email_subscribe","data":{"email":"fake-email-37@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:34 +00:00","userId":"new-fake-user-number-37","createdAt":"2021-04-14T16:52:34+00:00","signupSource":"ListAPI"},"emitted_at":1675804474800}
-{"stream":"email_subscribe","data":{"email":"fake-email-27@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:28 +00:00","userId":"new-fake-user-number-27","createdAt":"2021-04-14T16:52:29+00:00","signupSource":"ListAPI"},"emitted_at":1675804474801}
-{"stream":"email_subscribe","data":{"email":"fake-email-11@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:19 +00:00","userId":"new-fake-user-number-11","createdAt":"2021-04-14T16:52:21+00:00","signupSource":"ListAPI"},"emitted_at":1675804474802}
-{"stream":"email_subscribe","data":{"email":"fake-email-29@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:29 +00:00","userId":"new-fake-user-number-29","createdAt":"2021-04-14T16:52:33+00:00","signupSource":"ListAPI"},"emitted_at":1675804474803}
-{"stream":"email_subscribe","data":{"email":"fake-email-39@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:35 +00:00","userId":"new-fake-user-number-39","createdAt":"2021-04-14T16:52:36+00:00","signupSource":"ListAPI"},"emitted_at":1675804474803}
-{"stream":"email_subscribe","data":{"email":"fake-email-46@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:39 +00:00","userId":"new-fake-user-number-46","createdAt":"2021-04-14T16:52:39+00:00","signupSource":"ListAPI"},"emitted_at":1675804474803}
-{"stream":"email_subscribe","data":{"email":"fake-email-16@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:22 +00:00","userId":"new-fake-user-number-16","createdAt":"2021-04-14T16:52:22+00:00","signupSource":"ListAPI"},"emitted_at":1675804474804}
-{"stream":"email_subscribe","data":{"email":"fake-email-49@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:41 +00:00","userId":"new-fake-user-number-49","createdAt":"2021-04-14T16:52:41+00:00","signupSource":"ListAPI"},"emitted_at":1675804474804}
-{"stream":"email_subscribe","data":{"email":"fake-email-48@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:40 +00:00","userId":"new-fake-user-number-48","createdAt":"2021-04-14T16:52:41+00:00","signupSource":"ListAPI"},"emitted_at":1675804474805}
-{"stream":"email_subscribe","data":{"email":"fake-email-25@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:27 +00:00","userId":"new-fake-user-number-25","createdAt":"2021-04-14T16:52:27+00:00","signupSource":"ListAPI"},"emitted_at":1675804474805}
-{"stream":"email_subscribe","data":{"email":"fake-email-9@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:17 +00:00","userId":"new-fake-user-number-9","createdAt":"2021-04-14T16:52:18+00:00","signupSource":"ListAPI"},"emitted_at":1675804474806}
-{"stream":"email_subscribe","data":{"email":"fake-email-53@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:43 +00:00","userId":"new-fake-user-number-53","createdAt":"2021-04-14T16:52:44+00:00","signupSource":"ListAPI"},"emitted_at":1675804474806}
-{"stream":"email_subscribe","data":{"email":"fake-email-51@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:42 +00:00","userId":"new-fake-user-number-51","createdAt":"2021-04-14T16:52:42+00:00","signupSource":"ListAPI"},"emitted_at":1675804474807}
-{"stream":"email_subscribe","data":{"email":"fake-email-17@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:22 +00:00","userId":"new-fake-user-number-17","createdAt":"2021-04-14T16:52:23+00:00","signupSource":"ListAPI"},"emitted_at":1675804474807}
-{"stream":"email_subscribe","data":{"email":"fake-email-18@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:23 +00:00","userId":"new-fake-user-number-18","createdAt":"2021-04-14T16:52:23+00:00","signupSource":"ListAPI"},"emitted_at":1675804474808}
-{"stream":"email_subscribe","data":{"email":"fake-email-31@bmail.com","emailListIds":[949810],"channelIds":[],"profileUpdatedAt":"2021-04-14 16:52:30 +00:00","userId":"new-fake-user-number-31","createdAt":"2021-04-14T16:52:31+00:00","signupSource":"ListAPI"},"emitted_at":1675804474808}
-{"stream":"email_subscribe","data":{"email":"y.kurochkin@zazmic.com","emailListIds":[949814],"channelIds":[],"profileUpdatedAt":"2021-04-09 11:25:54 +00:00","userId":"string","createdAt":"2021-04-09T11:25:55+00:00","signupSource":"ListAPI"},"emitted_at":1675804474808}
-{"stream":"email_subscribe","data":{"email":"y.kurochkin@zazmic.com","emailListIds":[],"channelIds":[39582,39581],"profileUpdatedAt":"2021-04-08 14:23:30 +00:00","createdAt":"2021-04-08T14:23:30+00:00","signupSource":"Import"},"emitted_at":1675804475809}
+{"stream": "email_subscribe", "data": {"email": "fake-email-1@imail.com", "emailListIds": [949814], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:48:01 +00:00", "userId": "1234", "createdAt": "2021-04-14T16:49:04+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081420}
+{"stream": "email_subscribe", "data": {"email": "fake-email-10@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:18 +00:00", "userId": "new-fake-user-number-10", "createdAt": "2021-04-14T16:52:18+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081420}
+{"stream": "email_subscribe", "data": {"email": "fake-email-50@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:42 +00:00", "userId": "new-fake-user-number-50", "createdAt": "2021-04-14T16:52:43+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081420}
+{"stream": "email_subscribe", "data": {"email": "fake-email-4@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:14 +00:00", "userId": "new-fake-user-number-4", "createdAt": "2021-04-14T16:52:15+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081421}
+{"stream": "email_subscribe", "data": {"email": "fake-email-6@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:16 +00:00", "userId": "new-fake-user-number-6", "createdAt": "2021-04-14T16:52:16+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081421}
+{"stream": "email_subscribe", "data": {"email": "fake-email-8@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:17 +00:00", "userId": "new-fake-user-number-8", "createdAt": "2021-04-14T16:52:18+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081422}
+{"stream": "email_subscribe", "data": {"email": "fake-email-1@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:13 +00:00", "userId": "new-fake-user-number-1", "createdAt": "2021-04-14T16:52:13+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081422}
+{"stream": "email_subscribe", "data": {"email": "john@iterable.com", "emailListIds": [949814], "lastName": "Smith", "userId": "1234", "firstName": "John", "channelIds": [], "someDate": "2016-11-29 13:22:56", "isFoobar": true, "profileUpdatedAt": "2021-04-14 16:45:13 +00:00", "createdAt": "2021-04-14T16:46:02+00:00", "signupSource": "Import"}, "emitted_at": 1681370081422}
+{"stream": "email_subscribe", "data": {"email": "fake-email-0@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:08 +00:00", "userId": "new-fake-user-number-0", "createdAt": "2021-04-14T16:52:09+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081423}
+{"stream": "email_subscribe", "data": {"email": "fake-email-42@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:37 +00:00", "userId": "new-fake-user-number-42", "createdAt": "2021-04-14T16:52:37+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081423}
+{"stream": "email_subscribe", "data": {"email": "fake-email-52@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:43 +00:00", "userId": "new-fake-user-number-52", "createdAt": "2021-04-14T16:52:43+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081423}
+{"stream": "email_subscribe", "data": {"email": "fake-email-23@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:26 +00:00", "userId": "new-fake-user-number-23", "createdAt": "2021-04-14T16:52:26+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081424}
+{"stream": "email_subscribe", "data": {"email": "fake-email-15@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:21 +00:00", "userId": "new-fake-user-number-15", "createdAt": "2021-04-14T16:52:21+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081424}
+{"stream": "email_subscribe", "data": {"email": "fake-email-34@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:32 +00:00", "userId": "new-fake-user-number-34", "createdAt": "2021-04-14T16:52:33+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081424}
+{"stream": "email_subscribe", "data": {"email": "fake-emil-1@imail.com", "emailListIds": [949814], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:51:23 +00:00", "userId": "134", "createdAt": "2021-04-14T16:51:27+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081424}
+{"stream": "email_subscribe", "data": {"email": "fake-email-12@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:20 +00:00", "userId": "new-fake-user-number-12", "createdAt": "2021-04-14T16:52:21+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081425}
+{"stream": "email_subscribe", "data": {"email": "fake-email-2@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:13 +00:00", "userId": "new-fake-user-number-2", "createdAt": "2021-04-14T16:52:14+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081425}
+{"stream": "email_subscribe", "data": {"email": "fake-email-44@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:38 +00:00", "userId": "new-fake-user-number-44", "createdAt": "2021-04-14T16:52:39+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081425}
+{"stream": "email_subscribe", "data": {"email": "fake-email-30@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:30 +00:00", "userId": "new-fake-user-number-30", "createdAt": "2021-04-14T16:52:33+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081426}
+{"stream": "email_subscribe", "data": {"email": "fake-email-13@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:20 +00:00", "userId": "new-fake-user-number-13", "createdAt": "2021-04-14T16:52:21+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081426}
+{"stream": "email_subscribe", "data": {"email": "jane@iterable.com", "emailListIds": [949814], "lastName": "Smith", "userId": "user5678", "firstName": "Jane", "channelIds": [], "someDate": "2015-11-13", "isFoobar": false, "profileUpdatedAt": "2021-04-14 16:45:13 +00:00", "createdAt": "2021-04-14T16:46:02+00:00", "signupSource": "Import"}, "emitted_at": 1681370081426}
+{"stream": "email_subscribe", "data": {"email": "fake-email-24@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:26 +00:00", "userId": "new-fake-user-number-24", "createdAt": "2021-04-14T16:52:27+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081427}
+{"stream": "email_subscribe", "data": {"email": "fake-email-38@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:35 +00:00", "userId": "new-fake-user-number-38", "createdAt": "2021-04-14T16:52:35+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081427}
+{"stream": "email_subscribe", "data": {"email": "fake-email-5@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:15 +00:00", "userId": "new-fake-user-number-5", "createdAt": "2021-04-14T16:52:18+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081427}
+{"stream": "email_subscribe", "data": {"email": "fake-email-22@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:25 +00:00", "userId": "new-fake-user-number-22", "createdAt": "2021-04-14T16:52:26+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081427}
+{"stream": "email_subscribe", "data": {"email": "fake-email-41@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:36 +00:00", "userId": "new-fake-user-number-41", "createdAt": "2021-04-14T16:52:37+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081428}
+{"stream": "email_subscribe", "data": {"email": "fake-email-19@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:24 +00:00", "userId": "new-fake-user-number-19", "createdAt": "2021-04-14T16:52:24+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081428}
+{"stream": "email_subscribe", "data": {"email": "fake-email-3@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:14 +00:00", "userId": "new-fake-user-number-3", "createdAt": "2021-04-14T16:52:14+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081428}
+{"stream": "email_subscribe", "data": {"email": "fake-email-28@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:29 +00:00", "userId": "new-fake-user-number-28", "createdAt": "2021-04-14T16:52:29+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081428}
+{"stream": "email_subscribe", "data": {"email": "fake-email-40@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:36 +00:00", "userId": "new-fake-user-number-40", "createdAt": "2021-04-14T16:52:36+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081428}
+{"stream": "email_subscribe", "data": {"email": "fake-email-7@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:16 +00:00", "userId": "new-fake-user-number-7", "createdAt": "2021-04-14T16:52:18+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081429}
+{"stream": "email_subscribe", "data": {"email": "fake-email-26@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:28 +00:00", "userId": "new-fake-user-number-26", "createdAt": "2021-04-14T16:52:28+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081429}
+{"stream": "email_subscribe", "data": {"email": "fake-email-47@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:40 +00:00", "userId": "new-fake-user-number-47", "createdAt": "2021-04-14T16:52:40+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081429}
+{"stream": "email_subscribe", "data": {"email": "fake-email-21@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:25 +00:00", "userId": "new-fake-user-number-21", "createdAt": "2021-04-14T16:52:25+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081430}
+{"stream": "email_subscribe", "data": {"email": "fake-email-32@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:31 +00:00", "userId": "new-fake-user-number-32", "createdAt": "2021-04-14T16:52:32+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081430}
+{"stream": "email_subscribe", "data": {"email": "fake-email-43@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:37 +00:00", "userId": "new-fake-user-number-43", "createdAt": "2021-04-14T16:52:38+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081430}
+{"stream": "email_subscribe", "data": {"email": "fake-email-20@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:24 +00:00", "userId": "new-fake-user-number-20", "createdAt": "2021-04-14T16:52:24+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081430}
+{"stream": "email_subscribe", "data": {"email": "fake-email-14@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:21 +00:00", "userId": "new-fake-user-number-14", "createdAt": "2021-04-14T16:52:21+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081431}
+{"stream": "email_subscribe", "data": {"email": "fake-email-11@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:19 +00:00", "userId": "new-fake-user-number-11", "createdAt": "2021-04-14T16:52:21+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081431}
+{"stream": "email_subscribe", "data": {"email": "fake-email-54@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:44 +00:00", "userId": "new-fake-user-number-54", "createdAt": "2021-04-14T16:52:45+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081431}
+{"stream": "email_subscribe", "data": {"email": "fake-email-45@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:39 +00:00", "userId": "new-fake-user-number-45", "createdAt": "2021-04-14T16:52:39+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081431}
+{"stream": "email_subscribe", "data": {"email": "fake-email-36@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:33 +00:00", "userId": "new-fake-user-number-36", "createdAt": "2021-04-14T16:52:34+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081431}
+{"stream": "email_subscribe", "data": {"email": "fake-email-33@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:32 +00:00", "userId": "new-fake-user-number-33", "createdAt": "2021-04-14T16:52:32+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081432}
+{"stream": "email_subscribe", "data": {"email": "fake-email-35@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:33 +00:00", "userId": "new-fake-user-number-35", "createdAt": "2021-04-14T16:52:34+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081432}
+{"stream": "email_subscribe", "data": {"email": "fake-email-37@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:34 +00:00", "userId": "new-fake-user-number-37", "createdAt": "2021-04-14T16:52:34+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081432}
+{"stream": "email_subscribe", "data": {"email": "fake-email-27@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:28 +00:00", "userId": "new-fake-user-number-27", "createdAt": "2021-04-14T16:52:29+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081432}
+{"stream": "email_subscribe", "data": {"email": "fake-email-16@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:22 +00:00", "userId": "new-fake-user-number-16", "createdAt": "2021-04-14T16:52:22+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081432}
+{"stream": "email_subscribe", "data": {"email": "fake-email-29@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:29 +00:00", "userId": "new-fake-user-number-29", "createdAt": "2021-04-14T16:52:33+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081432}
+{"stream": "email_subscribe", "data": {"email": "fake-email-39@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:35 +00:00", "userId": "new-fake-user-number-39", "createdAt": "2021-04-14T16:52:36+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081433}
+{"stream": "email_subscribe", "data": {"email": "fake-email-46@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:39 +00:00", "userId": "new-fake-user-number-46", "createdAt": "2021-04-14T16:52:39+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081433}
+{"stream": "email_subscribe", "data": {"email": "fake-email-25@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:27 +00:00", "userId": "new-fake-user-number-25", "createdAt": "2021-04-14T16:52:27+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081433}
+{"stream": "email_subscribe", "data": {"email": "fake-email-49@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:41 +00:00", "userId": "new-fake-user-number-49", "createdAt": "2021-04-14T16:52:41+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081545}
+{"stream": "email_subscribe", "data": {"email": "fake-email-48@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:40 +00:00", "userId": "new-fake-user-number-48", "createdAt": "2021-04-14T16:52:41+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081546}
+{"stream": "email_subscribe", "data": {"email": "fake-email-51@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:42 +00:00", "userId": "new-fake-user-number-51", "createdAt": "2021-04-14T16:52:42+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081547}
+{"stream": "email_subscribe", "data": {"email": "fake-email-9@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:17 +00:00", "userId": "new-fake-user-number-9", "createdAt": "2021-04-14T16:52:18+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081548}
+{"stream": "email_subscribe", "data": {"email": "fake-email-53@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:43 +00:00", "userId": "new-fake-user-number-53", "createdAt": "2021-04-14T16:52:44+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081548}
+{"stream": "email_subscribe", "data": {"email": "fake-email-17@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:22 +00:00", "userId": "new-fake-user-number-17", "createdAt": "2021-04-14T16:52:23+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081549}
+{"stream": "email_subscribe", "data": {"email": "fake-email-18@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:23 +00:00", "userId": "new-fake-user-number-18", "createdAt": "2021-04-14T16:52:23+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370081549}
+{"stream": "email_subscribe", "data": {"email": "fake-email-31@bmail.com", "emailListIds": [949810], "channelIds": [], "profileUpdatedAt": "2021-04-14 16:52:30 +00:00", "userId": "new-fake-user-number-31", "createdAt": "2021-04-14T16:52:31+00:00", "signupSource": "ListAPI"}, "emitted_at": 1681370082734}
{"stream":"email_unsubscribe","data":{"email":"y.kurochkin-fake@zazmic.com","unsubSource":"HardBounce","emailListIds":[],"channelIds":[39582,39581],"templateId":3043605,"recipientState":"HardBounce","status":"5.1.1","messageId":"5ab46e765ee449588bb9709fb4a68290","createdAt":"2021-04-14T16:29:41+00:00"},"emitted_at":1675804476418}
{"stream":"email_unsubscribe","data":{"email":"fake-email-42@bmail.com","unsubSource":"Import","emailListIds":[949810],"channelIds":[],"createdAt":"2021-04-14T17:00:43+00:00"},"emitted_at":1675804476420}
{"stream":"email_unsubscribe","data":{"email":"fake-email-10@bmail.com","unsubSource":"Import","emailListIds":[949810],"channelIds":[],"createdAt":"2021-04-14T17:00:42+00:00"},"emitted_at":1675804476421}
@@ -221,46 +219,44 @@
{"stream":"email_unsubscribe","data":{"email":"fake-email-9@bmail.com","unsubSource":"Import","emailListIds":[949810],"channelIds":[],"createdAt":"2021-04-14T17:00:42+00:00"},"emitted_at":1675804476547}
{"stream":"email_unsubscribe","data":{"email":"fake-email-18@bmail.com","unsubSource":"Import","emailListIds":[949810],"channelIds":[],"createdAt":"2021-04-14T17:00:43+00:00"},"emitted_at":1675804476548}
{"stream":"email_unsubscribe","data":{"email":"fake-email-17@bmail.com","unsubSource":"Import","emailListIds":[949810],"channelIds":[],"createdAt":"2021-04-14T17:00:44+00:00"},"emitted_at":1675804477379}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:49:24 +00:00","documentUpdatedAt":"2021-04-14 16:49:24 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:49:04 +00:00","email":"fake-email-1@imail.com","data":{"profileUpdatedAt":"2021-04-14 16:48:01 +00:00","signupSource":"ListAPI","userId":"1234","emailListIds":[949814],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804651816}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:51:27 +00:00","documentUpdatedAt":"2021-04-14 16:51:27 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:51:27 +00:00","email":"fake-emil-1@imail.com","data":{"profileUpdatedAt":"2021-04-14 16:51:23 +00:00","signupSource":"ListAPI","userId":"134","emailListIds":[949814],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804652150}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-09 11:26:50 +00:00","documentUpdatedAt":"2021-04-09 11:26:50 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-09 11:26:50 +00:00","email":"y.kurochkin-fake@zazmic.com","data":{"profileUpdatedAt":"2021-04-09 11:26:50 +00:00","signupSource":"ListAPI","userId":"string","emailListIds":[949814],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804652303}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:25:55 +00:00","documentUpdatedAt":"2021-04-14 16:25:55 +00:00"},"_type":"emailSend","createdAt":"2021-04-14 16:25:55 +00:00","email":"y.kurochkin-fake@zazmic.com","data":{"messageTypeId":47258,"catalogLookupCount":0,"templateId":3043605,"messageBusId":"01000178d1341684-a4d837cd-d5ac-4b47-9074-5673b56adcf3-000000","messageId":"5ab46e765ee449588bb9709fb4a68290","catalogCollectionCount":0,"campaignId":2220229,"channelId":39582,"productRecommendationCount":0,"contentId":12029221}},"emitted_at":1675804652304}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:29:39 +00:00","documentUpdatedAt":"2021-04-14 16:29:39 +00:00"},"_type":"emailBounce","createdAt":"2021-04-14 16:29:39 +00:00","email":"y.kurochkin-fake@zazmic.com","data":{"templateId":3043605,"recipientState":"HardBounce","status":"5.1.1","messageId":"5ab46e765ee449588bb9709fb4a68290","campaignId":2220229}},"emitted_at":1675804652304}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:29:42 +00:00","documentUpdatedAt":"2021-04-14 16:29:42 +00:00"},"_type":"emailUnSubscribe","createdAt":"2021-04-14 16:29:41 +00:00","email":"y.kurochkin-fake@zazmic.com","data":{"unsubSource":"HardBounce","templateId":3043605,"recipientState":"HardBounce","status":"5.1.1","messageId":"5ab46e765ee449588bb9709fb4a68290","emailListIds":[],"channelIds":[39582,39581],"messageTypeIds":[]}},"emitted_at":1675804652304}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:46:07 +00:00","documentUpdatedAt":"2021-04-14 16:46:07 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:46:02 +00:00","email":"jane@iterable.com","data":{"lastName":"Smith","firstName":"Jane","someDate":"2015-11-13","isFoobar":false,"profileUpdatedAt":"2021-04-14 16:45:13 +00:00","signupSource":"Import","userId":"user5678","emailListIds":[949814],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804652455}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:53:08 +00:00","documentUpdatedAt":"2021-04-14 16:53:08 +00:00"},"_type":"emailClick","createdAt":"2021-04-14 16:53:07 +00:00","email":"y.kurochkin@zazmic.com","data":{"city":"Hyderabad","ip":"157.47.119.114","country":"India","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 13729.72.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.116 Safari/537.36","templateId":3043605,"messageId":"acd3c6a275a445a8944457a25e218daa","campaignId":2220229,"userAgentDevice":"Other","hrefIndex":1,"url":"https://iterable.com","region":"TG","contentId":12029221}},"emitted_at":1675804652734}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:27:39 +00:00","documentUpdatedAt":"2021-04-14 16:27:39 +00:00"},"_type":"emailOpen","createdAt":"2021-04-14 16:27:39 +00:00","email":"y.kurochkin@zazmic.com","data":{"ip":"66.249.81.18","userAgent":"Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)","templateId":3043605,"messageId":"acd3c6a275a445a8944457a25e218daa","campaignId":2220229,"userAgentDevice":"Gmail"}},"emitted_at":1675804652734}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:27:40 +00:00","documentUpdatedAt":"2021-04-14 16:27:40 +00:00"},"_type":"emailOpen","createdAt":"2021-04-14 16:27:40 +00:00","email":"y.kurochkin@zazmic.com","data":{"ip":"66.249.81.7","userAgent":"Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)","templateId":3043605,"messageId":"acd3c6a275a445a8944457a25e218daa","campaignId":2220229,"userAgentDevice":"Gmail"}},"emitted_at":1675804652734}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:27:42 +00:00","documentUpdatedAt":"2021-04-14 16:27:42 +00:00"},"_type":"emailClick","createdAt":"2021-04-14 16:27:42 +00:00","email":"y.kurochkin@zazmic.com","data":{"city":"Kyiv","ip":"188.163.104.11","country":"Ukraine","userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36","templateId":3043605,"messageId":"acd3c6a275a445a8944457a25e218daa","campaignId":2220229,"userAgentDevice":"Linux","hrefIndex":1,"url":"https://iterable.com","region":"30","contentId":12029221}},"emitted_at":1675804652734}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:27:45 +00:00","documentUpdatedAt":"2021-04-14 16:27:45 +00:00"},"_type":"emailClick","createdAt":"2021-04-14 16:27:45 +00:00","email":"y.kurochkin@zazmic.com","data":{"city":"Nosivka","ip":"77.120.15.68","country":"Ukraine","userAgent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36 OPR/70.0.3728.133","templateId":3043605,"messageId":"acd3c6a275a445a8944457a25e218daa","campaignId":2220229,"userAgentDevice":"Windows","hrefIndex":1,"url":"https://iterable.com","region":"74","contentId":12029221}},"emitted_at":1675804652734}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:25:56 +00:00","documentUpdatedAt":"2021-04-14 16:25:56 +00:00"},"_type":"emailSend","createdAt":"2021-04-14 16:25:56 +00:00","email":"y.kurochkin@zazmic.com","data":{"messageTypeId":47258,"catalogLookupCount":0,"templateId":3043605,"messageBusId":"01000178d1341a2f-0b4e8650-bce6-4464-adcc-74408648c444-000000","messageId":"acd3c6a275a445a8944457a25e218daa","catalogCollectionCount":0,"campaignId":2220229,"channelId":39582,"productRecommendationCount":0,"contentId":12029221}},"emitted_at":1675804652734}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:25:57 +00:00","documentUpdatedAt":"2021-04-14 16:25:57 +00:00"},"_type":"emailOpen","createdAt":"2021-04-14 16:25:57 +00:00","email":"y.kurochkin@zazmic.com","data":{"city":null,"ip":"66.249.92.93","country":"United States","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246 Mozilla/5.0","templateId":3043605,"messageId":"acd3c6a275a445a8944457a25e218daa","region":null,"campaignId":2220229,"userAgentDevice":"Other"}},"emitted_at":1675804652734}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:47:13 +00:00","documentUpdatedAt":"2021-04-14 16:47:13 +00:00"},"_type":"emailOpen","createdAt":"2021-04-14 16:41:09 +00:00","email":"y.kurochkin@zazmic.com","data":{"ip":"66.249.81.9","userAgent":"Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)","templateId":3043605,"messageId":"acd3c6a275a445a8944457a25e218daa","campaignId":2220229,"userAgentDevice":"Gmail"}},"emitted_at":1675804652735}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:47:21 +00:00","documentUpdatedAt":"2021-04-14 16:47:21 +00:00"},"_type":"emailOpen","createdAt":"2021-04-14 16:41:22 +00:00","email":"y.kurochkin@zazmic.com","data":{"city":"Honnali","ip":"106.193.40.76","country":"India","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 13729.72.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.116 Safari/537.36","templateId":3043605,"messageId":"acd3c6a275a445a8944457a25e218daa","region":"KA","campaignId":2220229,"userAgentDevice":"Other"}},"emitted_at":1675804652735}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:47:29 +00:00","documentUpdatedAt":"2021-04-14 16:47:29 +00:00"},"_type":"emailOpen","createdAt":"2021-04-14 16:42:23 +00:00","email":"y.kurochkin@zazmic.com","data":{"city":"Hyderabad","ip":"157.48.243.44","country":"India","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 13729.72.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.116 Safari/537.36","templateId":3043605,"messageId":"acd3c6a275a445a8944457a25e218daa","region":"TG","campaignId":2220229,"userAgentDevice":"Other"}},"emitted_at":1675804652735}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:47:32 +00:00","documentUpdatedAt":"2021-04-14 16:47:32 +00:00"},"_type":"emailOpen","createdAt":"2021-04-14 16:42:40 +00:00","email":"y.kurochkin@zazmic.com","data":{"city":"Hyderabad","ip":"157.47.119.114","country":"India","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 13729.72.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.116 Safari/537.36","templateId":3043605,"messageId":"acd3c6a275a445a8944457a25e218daa","region":"TG","campaignId":2220229,"userAgentDevice":"Other"}},"emitted_at":1675804652735}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:29:59 +00:00","documentUpdatedAt":"2021-04-14 16:29:59 +00:00"},"_type":"emailClick","createdAt":"2021-04-14 16:29:58 +00:00","email":"y.kurochkin@zazmic.com","data":{"city":"Ivano-Frankivsk","ip":"62.122.200.134","country":"Ukraine","userAgent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36","templateId":3043605,"messageId":"acd3c6a275a445a8944457a25e218daa","campaignId":2220229,"userAgentDevice":"Windows","hrefIndex":1,"url":"https://iterable.com","region":"26","contentId":12029221}},"emitted_at":1675804652735}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:52:00 +00:00","documentUpdatedAt":"2021-04-14 16:52:00 +00:00"},"_type":"emailClick","createdAt":"2021-04-14 16:51:59 +00:00","email":"y.kurochkin@zazmic.com","data":{"city":"Hyderabad","ip":"157.47.119.114","country":"India","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 13729.72.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.116 Safari/537.36","templateId":3043605,"messageId":"acd3c6a275a445a8944457a25e218daa","campaignId":2220229,"userAgentDevice":"Other","hrefIndex":1,"url":"https://iterable.com","region":"TG","contentId":12029221}},"emitted_at":1675804652735}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:26:17 +00:00","documentUpdatedAt":"2021-04-14 16:26:17 +00:00"},"_type":"emailOpen","createdAt":"2021-04-14 16:26:17 +00:00","email":"y.kurochkin@zazmic.com","data":{"ip":"66.249.81.18","userAgent":"Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)","templateId":3043605,"messageId":"acd3c6a275a445a8944457a25e218daa","campaignId":2220229,"userAgentDevice":"Gmail"}},"emitted_at":1675804652735}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:26:19 +00:00","documentUpdatedAt":"2021-04-14 16:26:19 +00:00"},"_type":"emailOpen","createdAt":"2021-04-14 16:26:19 +00:00","email":"y.kurochkin@zazmic.com","data":{"ip":"66.249.81.27","userAgent":"Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)","templateId":3043605,"messageId":"acd3c6a275a445a8944457a25e218daa","campaignId":2220229,"userAgentDevice":"Gmail"}},"emitted_at":1675804652735}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-09 11:25:55 +00:00","documentUpdatedAt":"2021-04-09 11:25:55 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-09 11:25:55 +00:00","email":"y.kurochkin@zazmic.com","data":{"profileUpdatedAt":"2021-04-09 11:25:54 +00:00","signupSource":"ListAPI","userId":"string","emailListIds":[949814],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804652735}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-08 14:23:30 +00:00","documentUpdatedAt":"2021-04-08 14:23:30 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-08 14:23:30 +00:00","email":"y.kurochkin@zazmic.com","data":{"profileUpdatedAt":"2021-04-08 14:23:30 +00:00","signupSource":"Import","emailListIds":[],"channelIds":[39582,39581],"messageTypeIds":[]}},"emitted_at":1675804652735}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:55:15 +00:00","documentUpdatedAt":"2021-04-14 16:55:15 +00:00"},"_type":"emailClick","createdAt":"2021-04-14 16:55:14 +00:00","email":"y.kurochkin@zazmic.com","data":{"city":"Hyderabad","ip":"157.47.119.114","country":"India","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 13729.72.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.116 Safari/537.36","templateId":3043605,"messageId":"acd3c6a275a445a8944457a25e218daa","campaignId":2220229,"userAgentDevice":"Other","hrefIndex":0,"url":"https://iterable.com","region":"TG","contentId":12029221}},"emitted_at":1675804652735}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 17:00:11 +00:00","documentUpdatedAt":"2021-04-14 17:00:11 +00:00"},"_type":"emailOpen","createdAt":"2021-04-14 17:00:11 +00:00","email":"y.kurochkin@zazmic.com","data":{"ip":"66.249.81.11","userAgent":"Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)","templateId":3043605,"messageId":"acd3c6a275a445a8944457a25e218daa","campaignId":2220229,"userAgentDevice":"Gmail"}},"emitted_at":1675804652735}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:52:43 +00:00","documentUpdatedAt":"2021-04-14 16:52:43 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:52:43 +00:00","email":"fake-email-50@bmail.com","data":{"profileUpdatedAt":"2021-04-14 16:52:42 +00:00","signupSource":"ListAPI","userId":"new-fake-user-number-50","emailListIds":[949810],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804654570}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:52:44 +00:00","documentUpdatedAt":"2021-04-14 16:52:44 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:52:43 +00:00","email":"fake-email-52@bmail.com","data":{"profileUpdatedAt":"2021-04-14 16:52:43 +00:00","signupSource":"ListAPI","userId":"new-fake-user-number-52","emailListIds":[949810],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804654713}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:52:39 +00:00","documentUpdatedAt":"2021-04-14 16:52:39 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:52:39 +00:00","email":"fake-email-45@bmail.com","data":{"profileUpdatedAt":"2021-04-14 16:52:39 +00:00","signupSource":"ListAPI","userId":"new-fake-user-number-45","emailListIds":[949810],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804654864}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:52:33 +00:00","documentUpdatedAt":"2021-04-14 16:52:33 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:52:33 +00:00","email":"fake-email-29@bmail.com","data":{"profileUpdatedAt":"2021-04-14 16:52:29 +00:00","signupSource":"ListAPI","userId":"new-fake-user-number-29","emailListIds":[949810],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804655024}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:52:34 +00:00","documentUpdatedAt":"2021-04-14 16:52:34 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:52:34 +00:00","email":"fake-email-37@bmail.com","data":{"profileUpdatedAt":"2021-04-14 16:52:34 +00:00","signupSource":"ListAPI","userId":"new-fake-user-number-37","emailListIds":[949810],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804655172}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:52:32 +00:00","documentUpdatedAt":"2021-04-14 16:52:32 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:52:32 +00:00","email":"fake-email-33@bmail.com","data":{"profileUpdatedAt":"2021-04-14 16:52:32 +00:00","signupSource":"ListAPI","userId":"new-fake-user-number-33","emailListIds":[949810],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804655323}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:52:21 +00:00","documentUpdatedAt":"2021-04-14 16:52:21 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:52:21 +00:00","email":"fake-email-14@bmail.com","data":{"profileUpdatedAt":"2021-04-14 16:52:21 +00:00","signupSource":"ListAPI","userId":"new-fake-user-number-14","emailListIds":[949810],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804656583}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:52:34 +00:00","documentUpdatedAt":"2021-04-14 16:52:34 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:52:34 +00:00","email":"fake-email-35@bmail.com","data":{"profileUpdatedAt":"2021-04-14 16:52:33 +00:00","signupSource":"ListAPI","userId":"new-fake-user-number-35","emailListIds":[949810],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804656730}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:52:36 +00:00","documentUpdatedAt":"2021-04-14 16:52:36 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:52:36 +00:00","email":"fake-email-39@bmail.com","data":{"profileUpdatedAt":"2021-04-14 16:52:35 +00:00","signupSource":"ListAPI","userId":"new-fake-user-number-39","emailListIds":[949810],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804656878}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:52:39 +00:00","documentUpdatedAt":"2021-04-14 16:52:39 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:52:39 +00:00","email":"fake-email-46@bmail.com","data":{"profileUpdatedAt":"2021-04-14 16:52:39 +00:00","signupSource":"ListAPI","userId":"new-fake-user-number-46","emailListIds":[949810],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804657116}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:52:23 +00:00","documentUpdatedAt":"2021-04-14 16:52:23 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:52:22 +00:00","email":"fake-email-16@bmail.com","data":{"profileUpdatedAt":"2021-04-14 16:52:22 +00:00","signupSource":"ListAPI","userId":"new-fake-user-number-16","emailListIds":[949810],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804657267}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:52:41 +00:00","documentUpdatedAt":"2021-04-14 16:52:41 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:52:41 +00:00","email":"fake-email-49@bmail.com","data":{"profileUpdatedAt":"2021-04-14 16:52:41 +00:00","signupSource":"ListAPI","userId":"new-fake-user-number-49","emailListIds":[949810],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804657423}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:52:41 +00:00","documentUpdatedAt":"2021-04-14 16:52:41 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:52:41 +00:00","email":"fake-email-48@bmail.com","data":{"profileUpdatedAt":"2021-04-14 16:52:40 +00:00","signupSource":"ListAPI","userId":"new-fake-user-number-48","emailListIds":[949810],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804657565}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:52:27 +00:00","documentUpdatedAt":"2021-04-14 16:52:27 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:52:27 +00:00","email":"fake-email-25@bmail.com","data":{"profileUpdatedAt":"2021-04-14 16:52:27 +00:00","signupSource":"ListAPI","userId":"new-fake-user-number-25","emailListIds":[949810],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804657729}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:52:44 +00:00","documentUpdatedAt":"2021-04-14 16:52:44 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:52:44 +00:00","email":"fake-email-53@bmail.com","data":{"profileUpdatedAt":"2021-04-14 16:52:43 +00:00","signupSource":"ListAPI","userId":"new-fake-user-number-53","emailListIds":[949810],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804657872}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:52:42 +00:00","documentUpdatedAt":"2021-04-14 16:52:42 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:52:42 +00:00","email":"fake-email-51@bmail.com","data":{"profileUpdatedAt":"2021-04-14 16:52:42 +00:00","signupSource":"ListAPI","userId":"new-fake-user-number-51","emailListIds":[949810],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804658027}
-{"stream":"events","data":{"itblInternal":{"documentCreatedAt":"2021-04-14 16:52:31 +00:00","documentUpdatedAt":"2021-04-14 16:52:31 +00:00"},"_type":"emailSubscribe","createdAt":"2021-04-14 16:52:31 +00:00","email":"fake-email-31@bmail.com","data":{"profileUpdatedAt":"2021-04-14 16:52:30 +00:00","signupSource":"ListAPI","userId":"new-fake-user-number-31","emailListIds":[949810],"channelIds":[],"messageTypeIds":[]}},"emitted_at":1675804658177}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:49:24 +00:00", "documentUpdatedAt": "2021-04-14 16:49:24 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:49:04 +00:00", "email": "fake-email-1@imail.com", "data": {"profileUpdatedAt": "2021-04-14 16:48:01 +00:00", "signupSource": "ListAPI", "userId": "1234", "emailListIds": [949814], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375001959}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:46:07 +00:00", "documentUpdatedAt": "2021-04-14 16:46:07 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:46:02 +00:00", "email": "john@iterable.com", "data": {"lastName": "Smith", "firstName": "John", "someDate": "2016-11-29 13:22:56", "isFoobar": true, "profileUpdatedAt": "2021-04-14 16:45:13 +00:00", "signupSource": "Import", "userId": "1234", "emailListIds": [949814], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375002108}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:25:55 +00:00", "documentUpdatedAt": "2021-04-14 16:25:55 +00:00"}, "_type": "emailSend", "createdAt": "2021-04-14 16:25:55 +00:00", "email": "y.kurochkin-fake@zazmic.com", "data": {"messageTypeId": 47258, "catalogLookupCount": 0, "templateId": 3043605, "messageBusId": "01000178d1341684-a4d837cd-d5ac-4b47-9074-5673b56adcf3-000000", "messageId": "5ab46e765ee449588bb9709fb4a68290", "catalogCollectionCount": 0, "campaignId": 2220229, "channelId": 39582, "productRecommendationCount": 0, "contentId": 12029221}}, "emitted_at": 1681375002276}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:29:39 +00:00", "documentUpdatedAt": "2021-04-14 16:29:39 +00:00"}, "_type": "emailBounce", "createdAt": "2021-04-14 16:29:39 +00:00", "email": "y.kurochkin-fake@zazmic.com", "data": {"templateId": 3043605, "recipientState": "HardBounce", "status": "5.1.1", "messageId": "5ab46e765ee449588bb9709fb4a68290", "campaignId": 2220229}}, "emitted_at": 1681375002278}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:29:42 +00:00", "documentUpdatedAt": "2021-04-14 16:29:42 +00:00"}, "_type": "emailUnSubscribe", "createdAt": "2021-04-14 16:29:41 +00:00", "email": "y.kurochkin-fake@zazmic.com", "data": {"unsubSource": "HardBounce", "templateId": 3043605, "recipientState": "HardBounce", "status": "5.1.1", "messageId": "5ab46e765ee449588bb9709fb4a68290", "emailListIds": [], "channelIds": [39582, 39581], "messageTypeIds": []}}, "emitted_at": 1681375002279}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:51:27 +00:00", "documentUpdatedAt": "2021-04-14 16:51:27 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:51:27 +00:00", "email": "fake-emil-1@imail.com", "data": {"profileUpdatedAt": "2021-04-14 16:51:23 +00:00", "signupSource": "ListAPI", "userId": "134", "emailListIds": [949814], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375002443}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:46:07 +00:00", "documentUpdatedAt": "2021-04-14 16:46:07 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:46:02 +00:00", "email": "jane@iterable.com", "data": {"lastName": "Smith", "firstName": "Jane", "someDate": "2015-11-13", "isFoobar": false, "profileUpdatedAt": "2021-04-14 16:45:13 +00:00", "signupSource": "Import", "userId": "user5678", "emailListIds": [949814], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375002604}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:53:08 +00:00", "documentUpdatedAt": "2021-04-14 16:53:08 +00:00"}, "_type": "emailClick", "createdAt": "2021-04-14 16:53:07 +00:00", "email": "y.kurochkin@zazmic.com", "data": {"city": "Hyderabad", "ip": "157.47.119.114", "country": "India", "userAgent": "Mozilla/5.0 (X11; CrOS x86_64 13729.72.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.116 Safari/537.36", "templateId": 3043605, "messageId": "acd3c6a275a445a8944457a25e218daa", "campaignId": 2220229, "userAgentDevice": "Other", "hrefIndex": 1, "url": "https://iterable.com", "region": "TG", "contentId": 12029221}}, "emitted_at": 1681375002813}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:27:39 +00:00", "documentUpdatedAt": "2021-04-14 16:27:39 +00:00"}, "_type": "emailOpen", "createdAt": "2021-04-14 16:27:39 +00:00", "email": "y.kurochkin@zazmic.com", "data": {"ip": "66.249.81.18", "userAgent": "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)", "templateId": 3043605, "messageId": "acd3c6a275a445a8944457a25e218daa", "campaignId": 2220229, "userAgentDevice": "Gmail"}}, "emitted_at": 1681375002813}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:27:40 +00:00", "documentUpdatedAt": "2021-04-14 16:27:40 +00:00"}, "_type": "emailOpen", "createdAt": "2021-04-14 16:27:40 +00:00", "email": "y.kurochkin@zazmic.com", "data": {"ip": "66.249.81.7", "userAgent": "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)", "templateId": 3043605, "messageId": "acd3c6a275a445a8944457a25e218daa", "campaignId": 2220229, "userAgentDevice": "Gmail"}}, "emitted_at": 1681375002813}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:27:42 +00:00", "documentUpdatedAt": "2021-04-14 16:27:42 +00:00"}, "_type": "emailClick", "createdAt": "2021-04-14 16:27:42 +00:00", "email": "y.kurochkin@zazmic.com", "data": {"city": "Kyiv", "ip": "188.163.104.11", "country": "Ukraine", "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36", "templateId": 3043605, "messageId": "acd3c6a275a445a8944457a25e218daa", "campaignId": 2220229, "userAgentDevice": "Linux", "hrefIndex": 1, "url": "https://iterable.com", "region": "30", "contentId": 12029221}}, "emitted_at": 1681375002813}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:27:45 +00:00", "documentUpdatedAt": "2021-04-14 16:27:45 +00:00"}, "_type": "emailClick", "createdAt": "2021-04-14 16:27:45 +00:00", "email": "y.kurochkin@zazmic.com", "data": {"city": "Nosivka", "ip": "77.120.15.68", "country": "Ukraine", "userAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36 OPR/70.0.3728.133", "templateId": 3043605, "messageId": "acd3c6a275a445a8944457a25e218daa", "campaignId": 2220229, "userAgentDevice": "Windows", "hrefIndex": 1, "url": "https://iterable.com", "region": "74", "contentId": 12029221}}, "emitted_at": 1681375002813}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:25:56 +00:00", "documentUpdatedAt": "2021-04-14 16:25:56 +00:00"}, "_type": "emailSend", "createdAt": "2021-04-14 16:25:56 +00:00", "email": "y.kurochkin@zazmic.com", "data": {"messageTypeId": 47258, "catalogLookupCount": 0, "templateId": 3043605, "messageBusId": "01000178d1341a2f-0b4e8650-bce6-4464-adcc-74408648c444-000000", "messageId": "acd3c6a275a445a8944457a25e218daa", "catalogCollectionCount": 0, "campaignId": 2220229, "channelId": 39582, "productRecommendationCount": 0, "contentId": 12029221}}, "emitted_at": 1681375002813}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:25:57 +00:00", "documentUpdatedAt": "2021-04-14 16:25:57 +00:00"}, "_type": "emailOpen", "createdAt": "2021-04-14 16:25:57 +00:00", "email": "y.kurochkin@zazmic.com", "data": {"city": null, "ip": "66.249.92.93", "country": "United States", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246 Mozilla/5.0", "templateId": 3043605, "messageId": "acd3c6a275a445a8944457a25e218daa", "region": null, "campaignId": 2220229, "userAgentDevice": "Other"}}, "emitted_at": 1681375002813}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:47:13 +00:00", "documentUpdatedAt": "2021-04-14 16:47:13 +00:00"}, "_type": "emailOpen", "createdAt": "2021-04-14 16:41:09 +00:00", "email": "y.kurochkin@zazmic.com", "data": {"ip": "66.249.81.9", "userAgent": "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)", "templateId": 3043605, "messageId": "acd3c6a275a445a8944457a25e218daa", "campaignId": 2220229, "userAgentDevice": "Gmail"}}, "emitted_at": 1681375002814}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:47:21 +00:00", "documentUpdatedAt": "2021-04-14 16:47:21 +00:00"}, "_type": "emailOpen", "createdAt": "2021-04-14 16:41:22 +00:00", "email": "y.kurochkin@zazmic.com", "data": {"city": "Honnali", "ip": "106.193.40.76", "country": "India", "userAgent": "Mozilla/5.0 (X11; CrOS x86_64 13729.72.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.116 Safari/537.36", "templateId": 3043605, "messageId": "acd3c6a275a445a8944457a25e218daa", "region": "KA", "campaignId": 2220229, "userAgentDevice": "Other"}}, "emitted_at": 1681375002814}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:47:29 +00:00", "documentUpdatedAt": "2021-04-14 16:47:29 +00:00"}, "_type": "emailOpen", "createdAt": "2021-04-14 16:42:23 +00:00", "email": "y.kurochkin@zazmic.com", "data": {"city": "Hyderabad", "ip": "157.48.243.44", "country": "India", "userAgent": "Mozilla/5.0 (X11; CrOS x86_64 13729.72.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.116 Safari/537.36", "templateId": 3043605, "messageId": "acd3c6a275a445a8944457a25e218daa", "region": "TG", "campaignId": 2220229, "userAgentDevice": "Other"}}, "emitted_at": 1681375002814}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:47:32 +00:00", "documentUpdatedAt": "2021-04-14 16:47:32 +00:00"}, "_type": "emailOpen", "createdAt": "2021-04-14 16:42:40 +00:00", "email": "y.kurochkin@zazmic.com", "data": {"city": "Hyderabad", "ip": "157.47.119.114", "country": "India", "userAgent": "Mozilla/5.0 (X11; CrOS x86_64 13729.72.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.116 Safari/537.36", "templateId": 3043605, "messageId": "acd3c6a275a445a8944457a25e218daa", "region": "TG", "campaignId": 2220229, "userAgentDevice": "Other"}}, "emitted_at": 1681375002814}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:29:59 +00:00", "documentUpdatedAt": "2021-04-14 16:29:59 +00:00"}, "_type": "emailClick", "createdAt": "2021-04-14 16:29:58 +00:00", "email": "y.kurochkin@zazmic.com", "data": {"city": "Ivano-Frankivsk", "ip": "62.122.200.134", "country": "Ukraine", "userAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36", "templateId": 3043605, "messageId": "acd3c6a275a445a8944457a25e218daa", "campaignId": 2220229, "userAgentDevice": "Windows", "hrefIndex": 1, "url": "https://iterable.com", "region": "26", "contentId": 12029221}}, "emitted_at": 1681375002814}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:52:00 +00:00", "documentUpdatedAt": "2021-04-14 16:52:00 +00:00"}, "_type": "emailClick", "createdAt": "2021-04-14 16:51:59 +00:00", "email": "y.kurochkin@zazmic.com", "data": {"city": "Hyderabad", "ip": "157.47.119.114", "country": "India", "userAgent": "Mozilla/5.0 (X11; CrOS x86_64 13729.72.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.116 Safari/537.36", "templateId": 3043605, "messageId": "acd3c6a275a445a8944457a25e218daa", "campaignId": 2220229, "userAgentDevice": "Other", "hrefIndex": 1, "url": "https://iterable.com", "region": "TG", "contentId": 12029221}}, "emitted_at": 1681375002815}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:26:17 +00:00", "documentUpdatedAt": "2021-04-14 16:26:17 +00:00"}, "_type": "emailOpen", "createdAt": "2021-04-14 16:26:17 +00:00", "email": "y.kurochkin@zazmic.com", "data": {"ip": "66.249.81.18", "userAgent": "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)", "templateId": 3043605, "messageId": "acd3c6a275a445a8944457a25e218daa", "campaignId": 2220229, "userAgentDevice": "Gmail"}}, "emitted_at": 1681375002815}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:26:19 +00:00", "documentUpdatedAt": "2021-04-14 16:26:19 +00:00"}, "_type": "emailOpen", "createdAt": "2021-04-14 16:26:19 +00:00", "email": "y.kurochkin@zazmic.com", "data": {"ip": "66.249.81.27", "userAgent": "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)", "templateId": 3043605, "messageId": "acd3c6a275a445a8944457a25e218daa", "campaignId": 2220229, "userAgentDevice": "Gmail"}}, "emitted_at": 1681375002815}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:55:15 +00:00", "documentUpdatedAt": "2021-04-14 16:55:15 +00:00"}, "_type": "emailClick", "createdAt": "2021-04-14 16:55:14 +00:00", "email": "y.kurochkin@zazmic.com", "data": {"city": "Hyderabad", "ip": "157.47.119.114", "country": "India", "userAgent": "Mozilla/5.0 (X11; CrOS x86_64 13729.72.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.116 Safari/537.36", "templateId": 3043605, "messageId": "acd3c6a275a445a8944457a25e218daa", "campaignId": 2220229, "userAgentDevice": "Other", "hrefIndex": 0, "url": "https://iterable.com", "region": "TG", "contentId": 12029221}}, "emitted_at": 1681375002815}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 17:00:11 +00:00", "documentUpdatedAt": "2021-04-14 17:00:11 +00:00"}, "_type": "emailOpen", "createdAt": "2021-04-14 17:00:11 +00:00", "email": "y.kurochkin@zazmic.com", "data": {"ip": "66.249.81.11", "userAgent": "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)", "templateId": 3043605, "messageId": "acd3c6a275a445a8944457a25e218daa", "campaignId": 2220229, "userAgentDevice": "Gmail"}}, "emitted_at": 1681375002816}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:52:43 +00:00", "documentUpdatedAt": "2021-04-14 16:52:43 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:52:43 +00:00", "email": "fake-email-50@bmail.com", "data": {"profileUpdatedAt": "2021-04-14 16:52:42 +00:00", "signupSource": "ListAPI", "userId": "new-fake-user-number-50", "emailListIds": [949810], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375005010}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:52:44 +00:00", "documentUpdatedAt": "2021-04-14 16:52:44 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:52:43 +00:00", "email": "fake-email-52@bmail.com", "data": {"profileUpdatedAt": "2021-04-14 16:52:43 +00:00", "signupSource": "ListAPI", "userId": "new-fake-user-number-52", "emailListIds": [949810], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375006174}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:52:21 +00:00", "documentUpdatedAt": "2021-04-14 16:52:21 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:52:21 +00:00", "email": "fake-email-14@bmail.com", "data": {"profileUpdatedAt": "2021-04-14 16:52:21 +00:00", "signupSource": "ListAPI", "userId": "new-fake-user-number-14", "emailListIds": [949810], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375006324}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:52:39 +00:00", "documentUpdatedAt": "2021-04-14 16:52:39 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:52:39 +00:00", "email": "fake-email-45@bmail.com", "data": {"profileUpdatedAt": "2021-04-14 16:52:39 +00:00", "signupSource": "ListAPI", "userId": "new-fake-user-number-45", "emailListIds": [949810], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375006484}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:52:33 +00:00", "documentUpdatedAt": "2021-04-14 16:52:33 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:52:33 +00:00", "email": "fake-email-29@bmail.com", "data": {"profileUpdatedAt": "2021-04-14 16:52:29 +00:00", "signupSource": "ListAPI", "userId": "new-fake-user-number-29", "emailListIds": [949810], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375006790}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:52:34 +00:00", "documentUpdatedAt": "2021-04-14 16:52:34 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:52:34 +00:00", "email": "fake-email-37@bmail.com", "data": {"profileUpdatedAt": "2021-04-14 16:52:34 +00:00", "signupSource": "ListAPI", "userId": "new-fake-user-number-37", "emailListIds": [949810], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375006973}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:52:32 +00:00", "documentUpdatedAt": "2021-04-14 16:52:32 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:52:32 +00:00", "email": "fake-email-33@bmail.com", "data": {"profileUpdatedAt": "2021-04-14 16:52:32 +00:00", "signupSource": "ListAPI", "userId": "new-fake-user-number-33", "emailListIds": [949810], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375007306}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:52:34 +00:00", "documentUpdatedAt": "2021-04-14 16:52:34 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:52:34 +00:00", "email": "fake-email-35@bmail.com", "data": {"profileUpdatedAt": "2021-04-14 16:52:33 +00:00", "signupSource": "ListAPI", "userId": "new-fake-user-number-35", "emailListIds": [949810], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375007455}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:52:23 +00:00", "documentUpdatedAt": "2021-04-14 16:52:23 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:52:22 +00:00", "email": "fake-email-16@bmail.com", "data": {"profileUpdatedAt": "2021-04-14 16:52:22 +00:00", "signupSource": "ListAPI", "userId": "new-fake-user-number-16", "emailListIds": [949810], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375007645}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:52:36 +00:00", "documentUpdatedAt": "2021-04-14 16:52:36 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:52:36 +00:00", "email": "fake-email-39@bmail.com", "data": {"profileUpdatedAt": "2021-04-14 16:52:35 +00:00", "signupSource": "ListAPI", "userId": "new-fake-user-number-39", "emailListIds": [949810], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375008118}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:52:39 +00:00", "documentUpdatedAt": "2021-04-14 16:52:39 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:52:39 +00:00", "email": "fake-email-46@bmail.com", "data": {"profileUpdatedAt": "2021-04-14 16:52:39 +00:00", "signupSource": "ListAPI", "userId": "new-fake-user-number-46", "emailListIds": [949810], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375008269}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:52:27 +00:00", "documentUpdatedAt": "2021-04-14 16:52:27 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:52:27 +00:00", "email": "fake-email-25@bmail.com", "data": {"profileUpdatedAt": "2021-04-14 16:52:27 +00:00", "signupSource": "ListAPI", "userId": "new-fake-user-number-25", "emailListIds": [949810], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375008442}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:52:41 +00:00", "documentUpdatedAt": "2021-04-14 16:52:41 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:52:41 +00:00", "email": "fake-email-49@bmail.com", "data": {"profileUpdatedAt": "2021-04-14 16:52:41 +00:00", "signupSource": "ListAPI", "userId": "new-fake-user-number-49", "emailListIds": [949810], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375008600}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:52:41 +00:00", "documentUpdatedAt": "2021-04-14 16:52:41 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:52:41 +00:00", "email": "fake-email-48@bmail.com", "data": {"profileUpdatedAt": "2021-04-14 16:52:40 +00:00", "signupSource": "ListAPI", "userId": "new-fake-user-number-48", "emailListIds": [949810], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375009476}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:52:42 +00:00", "documentUpdatedAt": "2021-04-14 16:52:42 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:52:42 +00:00", "email": "fake-email-51@bmail.com", "data": {"profileUpdatedAt": "2021-04-14 16:52:42 +00:00", "signupSource": "ListAPI", "userId": "new-fake-user-number-51", "emailListIds": [949810], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375009631}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:52:44 +00:00", "documentUpdatedAt": "2021-04-14 16:52:44 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:52:44 +00:00", "email": "fake-email-53@bmail.com", "data": {"profileUpdatedAt": "2021-04-14 16:52:43 +00:00", "signupSource": "ListAPI", "userId": "new-fake-user-number-53", "emailListIds": [949810], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375009779}
+{"stream": "events", "data": {"itblInternal": {"documentCreatedAt": "2021-04-14 16:52:31 +00:00", "documentUpdatedAt": "2021-04-14 16:52:31 +00:00"}, "_type": "emailSubscribe", "createdAt": "2021-04-14 16:52:31 +00:00", "email": "fake-email-31@bmail.com", "data": {"profileUpdatedAt": "2021-04-14 16:52:30 +00:00", "signupSource": "ListAPI", "userId": "new-fake-user-number-31", "emailListIds": [949810], "channelIds": [], "messageTypeIds": []}}, "emitted_at": 1681375009925}
From b10e5859363fbe96cc8f5f09ca68a8752ac2dba0 Mon Sep 17 00:00:00 2001
From: Arsen Losenko <20901439+arsenlosenko@users.noreply.github.com>
Date: Thu, 13 Apr 2023 21:29:16 +0300
Subject: [PATCH 051/187] Source Facebook Pages: update insight metrics request
params (#25143)
* Source Facebook Pages: update insight metrics request params
* Update Dockerfile and changelog
* auto-bump connector version
---------
Co-authored-by: Octavia Squidington III
---
.../init-oss/src/main/resources/seed/oss_catalog.json | 2 +-
.../init-oss/src/main/resources/seed/source_definitions.yaml | 2 +-
.../init-oss/src/main/resources/seed/source_specs.yaml | 2 +-
.../connectors/source-facebook-pages/Dockerfile | 2 +-
.../source-facebook-pages/source_facebook_pages/manifest.yaml | 4 ++--
connectors.md | 2 +-
docs/integrations/sources/facebook-pages.md | 1 +
7 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index 3375461d5810..17c70e0a4100 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -12286,7 +12286,7 @@
"sourceDefinitionId": "010eb12f-837b-4685-892d-0a39f76a98f5",
"name": "Facebook Pages",
"dockerRepository": "airbyte/source-facebook-pages",
- "dockerImageTag": "0.2.3",
+ "dockerImageTag": "0.2.4",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/facebook-pages",
"icon": "facebook.svg",
"sourceType": "api",
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
index 20080f18f6e9..7e2245624c80 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
@@ -573,7 +573,7 @@
- name: Facebook Pages
sourceDefinitionId: 010eb12f-837b-4685-892d-0a39f76a98f5
dockerRepository: airbyte/source-facebook-pages
- dockerImageTag: 0.2.3
+ dockerImageTag: 0.2.4
documentationUrl: https://docs.airbyte.com/integrations/sources/facebook-pages
icon: facebook.svg
sourceType: api
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
index 4c517edbc849..8812fc090970 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
@@ -4275,7 +4275,7 @@
oauthFlowInitParameters: []
oauthFlowOutputParameters:
- - "access_token"
-- dockerImage: "airbyte/source-facebook-pages:0.2.3"
+- dockerImage: "airbyte/source-facebook-pages:0.2.4"
spec:
documentationUrl: "https://docs.airbyte.com/integrations/sources/facebook-pages"
connectionSpecification:
diff --git a/airbyte-integrations/connectors/source-facebook-pages/Dockerfile b/airbyte-integrations/connectors/source-facebook-pages/Dockerfile
index 66b3c96215cc..9f0d1639d068 100644
--- a/airbyte-integrations/connectors/source-facebook-pages/Dockerfile
+++ b/airbyte-integrations/connectors/source-facebook-pages/Dockerfile
@@ -34,5 +34,5 @@ COPY source_facebook_pages ./source_facebook_pages
ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
-LABEL io.airbyte.version=0.2.3
+LABEL io.airbyte.version=0.2.4
LABEL io.airbyte.name=airbyte/source-facebook-pages
diff --git a/airbyte-integrations/connectors/source-facebook-pages/source_facebook_pages/manifest.yaml b/airbyte-integrations/connectors/source-facebook-pages/source_facebook_pages/manifest.yaml
index fa10ddcd65f2..51f1081cae50 100644
--- a/airbyte-integrations/connectors/source-facebook-pages/source_facebook_pages/manifest.yaml
+++ b/airbyte-integrations/connectors/source-facebook-pages/source_facebook_pages/manifest.yaml
@@ -408,8 +408,8 @@ definitions:
'page_impressions_unique',
'page_impressions_paid',
'page_impressions_paid_unique',
- 'page_impressions_organic',
- 'page_impressions_organic_unique',
+ 'page_impressions_organic_v2',
+ 'page_impressions_organic_unique_v2',
'page_impressions_viral',
'page_impressions_viral_unique',
'page_impressions_nonviral',
diff --git a/connectors.md b/connectors.md
index 20a8b3d761f9..faea2f66fa20 100644
--- a/connectors.md
+++ b/connectors.md
@@ -70,7 +70,7 @@
| **Everhour** | | Source | airbyte/source-everhour:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/everhour) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-everhour) | `6babfc42-c734-4ef6-a817-6eca15f0f9b7` |
| **Exchange Rates Api** | | Source | airbyte/source-exchange-rates:1.2.8 | alpha | [link](https://docs.airbyte.com/integrations/sources/exchangeratesapi) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-exchange-rates) | `e2b40e36-aa0e-4bed-b41b-bcea6fa348b1` |
| **Facebook Marketing** | | Source | airbyte/source-facebook-marketing:0.3.2 | generally_available | [link](https://docs.airbyte.com/integrations/sources/facebook-marketing) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-facebook-marketing) | `e7778cfc-e97c-4458-9ecb-b4f2bba8946c` |
-| **Facebook Pages** | | Source | airbyte/source-facebook-pages:0.2.3 | beta | [link](https://docs.airbyte.com/integrations/sources/facebook-pages) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-facebook-pages) | `010eb12f-837b-4685-892d-0a39f76a98f5` |
+| **Facebook Pages** | | Source | airbyte/source-facebook-pages:0.2.4 | beta | [link](https://docs.airbyte.com/integrations/sources/facebook-pages) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-facebook-pages) | `010eb12f-837b-4685-892d-0a39f76a98f5` |
| **Fastbill** | | Source | airbyte/source-fastbill:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/fastbill) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-fastbill) | `eb3e9c1c-0467-4eb7-a172-5265e04ccd0a` |
| **Fauna** | | Source | airbyte/source-fauna:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/fauna) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-fauna) | `3825db3e-c94b-42ac-bd53-b5a9507ace2b` |
| **File (CSV, JSON, Excel, Feather, Parquet)** | | Source | airbyte/source-file:0.2.37 | generally_available | [link](https://docs.airbyte.com/integrations/sources/file) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-file) | `778daa7c-feaf-4db6-96f3-70fd645acc77` |
diff --git a/docs/integrations/sources/facebook-pages.md b/docs/integrations/sources/facebook-pages.md
index fefb3a059f43..bf869cb669e4 100644
--- a/docs/integrations/sources/facebook-pages.md
+++ b/docs/integrations/sources/facebook-pages.md
@@ -79,6 +79,7 @@ See Facebook's [documentation on rate limiting](https://developers.facebook.com/
| Version | Date | Pull Request | Subject |
|:--------|:-----------|:---------------------------------------------------------|:--------------------------------------------------------------------------|
+| 0.2.4 | 2023-04-13 | [25143](https://github.com/airbytehq/airbyte/pull/25143) | Update insight metrics request params |
| 0.2.3 | 2023-02-23 | [23395](https://github.com/airbytehq/airbyte/pull/23395) | Parse datetime to rfc3339 |
| 0.2.2 | 2023-02-10 | [22804](https://github.com/airbytehq/airbyte/pull/22804) | Retry 500 errors |
| 0.2.1 | 2022-12-29 | [20925](https://github.com/airbytehq/airbyte/pull/20925) | Fix tests; modify expected records |
From 8d39855c62b8f7c7686e15a7ba827062f6274d45 Mon Sep 17 00:00:00 2001
From: Augustin
Date: Thu, 13 Apr 2023 20:48:23 +0200
Subject: [PATCH 052/187] fix strict-encrypt metadata dockerRepository (#25159)
---
.../destination-clickhouse-strict-encrypt/metadata.yaml | 2 +-
.../destination-elasticsearch-strict-encrypt/metadata.yaml | 2 +-
.../connectors/destination-mongodb-strict-encrypt/metadata.yaml | 2 +-
.../connectors/destination-mssql-strict-encrypt/metadata.yaml | 2 +-
.../connectors/destination-mysql-strict-encrypt/metadata.yaml | 2 +-
.../connectors/destination-oracle-strict-encrypt/metadata.yaml | 2 +-
.../destination-postgres-strict-encrypt/metadata.yaml | 2 +-
.../connectors/source-alloydb-strict-encrypt/metadata.yaml | 2 +-
.../connectors/source-clickhouse-strict-encrypt/metadata.yaml | 2 +-
.../connectors/source-cockroachdb-strict-encrypt/metadata.yaml | 2 +-
.../connectors/source-mongodb-strict-encrypt/metadata.yaml | 2 +-
.../connectors/source-mssql-strict-encrypt/metadata.yaml | 2 +-
.../connectors/source-mysql-strict-encrypt/metadata.yaml | 2 +-
.../connectors/source-oracle-strict-encrypt/metadata.yaml | 2 +-
.../connectors/source-postgres-strict-encrypt/metadata.yaml | 2 +-
15 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/airbyte-integrations/connectors/destination-clickhouse-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/destination-clickhouse-strict-encrypt/metadata.yaml
index 14d527150d6c..6fd13f76e187 100644
--- a/airbyte-integrations/connectors/destination-clickhouse-strict-encrypt/metadata.yaml
+++ b/airbyte-integrations/connectors/destination-clickhouse-strict-encrypt/metadata.yaml
@@ -8,7 +8,7 @@ data:
connectorType: destination
definitionId: ce0d828e-1dc4-496c-b122-2da42e637e48
dockerImageTag: 0.2.3
- dockerRepository: airbyte/destination-clickhouse
+ dockerRepository: airbyte/destination-clickhouse-strict-encrypt
githubIssueLabel: destination-clickhouse
icon: clickhouse.svg
license: MIT
diff --git a/airbyte-integrations/connectors/destination-elasticsearch-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/destination-elasticsearch-strict-encrypt/metadata.yaml
index 90152b955b30..5d2b1254d80a 100644
--- a/airbyte-integrations/connectors/destination-elasticsearch-strict-encrypt/metadata.yaml
+++ b/airbyte-integrations/connectors/destination-elasticsearch-strict-encrypt/metadata.yaml
@@ -8,7 +8,7 @@ data:
connectorType: destination
definitionId: 68f351a7-2745-4bef-ad7f-996b8e51bb8c
dockerImageTag: 0.1.6
- dockerRepository: airbyte/destination-elasticsearch
+ dockerRepository: airbyte/destination-elasticsearch-strict-encrypt
githubIssueLabel: destination-elasticsearch
icon: elasticsearch.svg
license: MIT
diff --git a/airbyte-integrations/connectors/destination-mongodb-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/destination-mongodb-strict-encrypt/metadata.yaml
index f0823a431ae2..3c96f1caa5f9 100644
--- a/airbyte-integrations/connectors/destination-mongodb-strict-encrypt/metadata.yaml
+++ b/airbyte-integrations/connectors/destination-mongodb-strict-encrypt/metadata.yaml
@@ -8,7 +8,7 @@ data:
connectorType: destination
definitionId: 8b746512-8c2e-6ac1-4adc-b59faafd473c
dockerImageTag: 0.1.9
- dockerRepository: airbyte/destination-mongodb
+ dockerRepository: airbyte/destination-mongodb-strict-encrypt
githubIssueLabel: destination-mongodb
icon: mongodb.svg
license: MIT
diff --git a/airbyte-integrations/connectors/destination-mssql-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/destination-mssql-strict-encrypt/metadata.yaml
index b56cff2d23e9..a30d34776b20 100644
--- a/airbyte-integrations/connectors/destination-mssql-strict-encrypt/metadata.yaml
+++ b/airbyte-integrations/connectors/destination-mssql-strict-encrypt/metadata.yaml
@@ -8,7 +8,7 @@ data:
connectorType: destination
definitionId: d4353156-9217-4cad-8dd7-c108fd4f74cf
dockerImageTag: 0.1.23
- dockerRepository: airbyte/destination-mssql
+ dockerRepository: airbyte/destination-mssql-strict-encrypt
githubIssueLabel: destination-mssql
icon: mssql.svg
license: MIT
diff --git a/airbyte-integrations/connectors/destination-mysql-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/destination-mysql-strict-encrypt/metadata.yaml
index 2a45708864c6..4f91cf525fec 100644
--- a/airbyte-integrations/connectors/destination-mysql-strict-encrypt/metadata.yaml
+++ b/airbyte-integrations/connectors/destination-mysql-strict-encrypt/metadata.yaml
@@ -8,7 +8,7 @@ data:
connectorType: destination
definitionId: ca81ee7c-3163-4246-af40-094cc31e5e42
dockerImageTag: 0.1.20
- dockerRepository: airbyte/destination-mysql
+ dockerRepository: airbyte/destination-mysql-strict-encrypt
githubIssueLabel: destination-mysql
icon: mysql.svg
license: MIT
diff --git a/airbyte-integrations/connectors/destination-oracle-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/destination-oracle-strict-encrypt/metadata.yaml
index b38a2ac6bfcf..1eee2c07a676 100644
--- a/airbyte-integrations/connectors/destination-oracle-strict-encrypt/metadata.yaml
+++ b/airbyte-integrations/connectors/destination-oracle-strict-encrypt/metadata.yaml
@@ -8,7 +8,7 @@ data:
connectorType: destination
definitionId: 3986776d-2319-4de9-8af8-db14c0996e72
dockerImageTag: 0.1.19
- dockerRepository: airbyte/destination-oracle
+ dockerRepository: airbyte/destination-oracle-strict-encrypt
githubIssueLabel: destination-oracle
icon: oracle.svg
license: MIT
diff --git a/airbyte-integrations/connectors/destination-postgres-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/destination-postgres-strict-encrypt/metadata.yaml
index 943df18038aa..58d8606b9628 100644
--- a/airbyte-integrations/connectors/destination-postgres-strict-encrypt/metadata.yaml
+++ b/airbyte-integrations/connectors/destination-postgres-strict-encrypt/metadata.yaml
@@ -8,7 +8,7 @@ data:
connectorType: destination
definitionId: 25c5221d-dce2-4163-ade9-739ef790f503
dockerImageTag: 0.3.27
- dockerRepository: airbyte/destination-postgres
+ dockerRepository: airbyte/destination-postgres-strict-encrypt
githubIssueLabel: destination-postgres
icon: postgresql.svg
license: MIT
diff --git a/airbyte-integrations/connectors/source-alloydb-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/source-alloydb-strict-encrypt/metadata.yaml
index c7a7c01bb820..e1fe7637de17 100644
--- a/airbyte-integrations/connectors/source-alloydb-strict-encrypt/metadata.yaml
+++ b/airbyte-integrations/connectors/source-alloydb-strict-encrypt/metadata.yaml
@@ -12,7 +12,7 @@ data:
connectorType: source
definitionId: 1fa90628-2b9e-11ed-a261-0242ac120002
dockerImageTag: 2.0.17
- dockerRepository: airbyte/source-alloydb
+ dockerRepository: airbyte/source-alloydb-strict-encrypt
githubIssueLabel: source-alloydb
icon: alloydb.svg
license: MIT
diff --git a/airbyte-integrations/connectors/source-clickhouse-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/source-clickhouse-strict-encrypt/metadata.yaml
index 881c0c062897..184ce40fabc4 100644
--- a/airbyte-integrations/connectors/source-clickhouse-strict-encrypt/metadata.yaml
+++ b/airbyte-integrations/connectors/source-clickhouse-strict-encrypt/metadata.yaml
@@ -12,7 +12,7 @@ data:
connectorType: source
definitionId: bad83517-5e54-4a3d-9b53-63e85fbd4d7c
dockerImageTag: 0.1.17
- dockerRepository: airbyte/source-clickhouse
+ dockerRepository: airbyte/source-clickhouse-strict-encrypt
githubIssueLabel: source-clickhouse
icon: clickhouse.svg
license: MIT
diff --git a/airbyte-integrations/connectors/source-cockroachdb-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/source-cockroachdb-strict-encrypt/metadata.yaml
index 88485fbc7bc6..8ee1e94cb1cb 100644
--- a/airbyte-integrations/connectors/source-cockroachdb-strict-encrypt/metadata.yaml
+++ b/airbyte-integrations/connectors/source-cockroachdb-strict-encrypt/metadata.yaml
@@ -11,7 +11,7 @@ data:
connectorType: source
definitionId: 9fa5862c-da7c-11eb-8d19-0242ac130003
dockerImageTag: 0.1.22
- dockerRepository: airbyte/source-cockroachdb
+ dockerRepository: airbyte/source-cockroachdb-strict-encrypt
githubIssueLabel: source-cockroachdb
icon: cockroachdb.svg
license: MIT
diff --git a/airbyte-integrations/connectors/source-mongodb-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/source-mongodb-strict-encrypt/metadata.yaml
index 97e4a25668e0..3673db11ae8f 100644
--- a/airbyte-integrations/connectors/source-mongodb-strict-encrypt/metadata.yaml
+++ b/airbyte-integrations/connectors/source-mongodb-strict-encrypt/metadata.yaml
@@ -8,7 +8,7 @@ data:
connectorType: source
definitionId: b2e713cd-cc36-4c0a-b5bd-b47cb8a0561e
dockerImageTag: 0.1.19
- dockerRepository: airbyte/source-mongodb-v2
+ dockerRepository: airbyte/source-mongodb-strict-encrypt
githubIssueLabel: source-mongodb-v2
icon: mongodb.svg
license: MIT
diff --git a/airbyte-integrations/connectors/source-mssql-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/source-mssql-strict-encrypt/metadata.yaml
index 74124fa7612a..f18aeb9daf9f 100644
--- a/airbyte-integrations/connectors/source-mssql-strict-encrypt/metadata.yaml
+++ b/airbyte-integrations/connectors/source-mssql-strict-encrypt/metadata.yaml
@@ -12,7 +12,7 @@ data:
connectorType: source
definitionId: b5ea17b1-f170-46dc-bc31-cc744ca984c1
dockerImageTag: 1.0.9
- dockerRepository: airbyte/source-mssql
+ dockerRepository: airbyte/source-mssql-strict-encrypt
githubIssueLabel: source-mssql
icon: mssql.svg
license: MIT
diff --git a/airbyte-integrations/connectors/source-mysql-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/source-mysql-strict-encrypt/metadata.yaml
index ff9449af3c1e..6aa831a0c4f8 100644
--- a/airbyte-integrations/connectors/source-mysql-strict-encrypt/metadata.yaml
+++ b/airbyte-integrations/connectors/source-mysql-strict-encrypt/metadata.yaml
@@ -12,7 +12,7 @@ data:
connectorType: source
definitionId: 435bb9a5-7887-4809-aa58-28c27df0d7ad
dockerImageTag: 2.0.12
- dockerRepository: airbyte/source-mysql
+ dockerRepository: airbyte/source-mysql-strict-encrypt
githubIssueLabel: source-mysql
icon: mysql.svg
license: MIT
diff --git a/airbyte-integrations/connectors/source-oracle-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/source-oracle-strict-encrypt/metadata.yaml
index 044d32c9061f..de3652aeb250 100644
--- a/airbyte-integrations/connectors/source-oracle-strict-encrypt/metadata.yaml
+++ b/airbyte-integrations/connectors/source-oracle-strict-encrypt/metadata.yaml
@@ -12,7 +12,7 @@ data:
connectorType: source
definitionId: b39a7370-74c3-45a6-ac3a-380d48520a83
dockerImageTag: 0.3.24
- dockerRepository: airbyte/source-oracle
+ dockerRepository: airbyte/source-oracle-strict-encrypt
githubIssueLabel: source-oracle
icon: oracle.svg
license: MIT
diff --git a/airbyte-integrations/connectors/source-postgres-strict-encrypt/metadata.yaml b/airbyte-integrations/connectors/source-postgres-strict-encrypt/metadata.yaml
index 6e8f3e134759..6e288f2cb1ae 100644
--- a/airbyte-integrations/connectors/source-postgres-strict-encrypt/metadata.yaml
+++ b/airbyte-integrations/connectors/source-postgres-strict-encrypt/metadata.yaml
@@ -12,7 +12,7 @@ data:
connectorType: source
definitionId: decd338e-5647-4c0b-adf4-da0e75f5a750
dockerImageTag: 2.0.17
- dockerRepository: airbyte/source-postgres
+ dockerRepository: airbyte/source-postgres-strict-encrypt
githubIssueLabel: source-postgres
icon: postgresql.svg
license: MIT
From a4bfb2c73013fb085340e9cb55d7db7bbe40a7fc Mon Sep 17 00:00:00 2001
From: Arsen Losenko <20901439+arsenlosenko@users.noreply.github.com>
Date: Thu, 13 Apr 2023 21:59:17 +0300
Subject: [PATCH 053/187] Source Slack: update expected records (#25150)
---
.../source-slack/integration_tests/expected_records.jsonl | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/airbyte-integrations/connectors/source-slack/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-slack/integration_tests/expected_records.jsonl
index b07e32139c3a..55f3265d7d7f 100644
--- a/airbyte-integrations/connectors/source-slack/integration_tests/expected_records.jsonl
+++ b/airbyte-integrations/connectors/source-slack/integration_tests/expected_records.jsonl
@@ -1,6 +1,6 @@
-{"stream": "channels", "data": {"id": "C04KX3KEZ54", "name": "general", "is_channel": true, "is_group": false, "is_im": false, "is_mpim": false, "is_private": false, "created": 1674485468, "is_archived": false, "is_general": true, "unlinked": 0, "name_normalized": "general", "is_shared": false, "is_org_shared": false, "is_pending_ext_shared": false, "pending_shared": [], "context_team_id": "T04KX3KDDU6", "updated": 1674485468693, "parent_conversation": null, "creator": "U04L65GPMKN", "is_ext_shared": false, "shared_team_ids": ["T04KX3KDDU6"], "pending_connected_team_ids": [], "is_member": true, "topic": {"value": "", "creator": "", "last_set": 0}, "purpose": {"value": "This is the one channel that will always include everyone. It\u2019s a great spot for announcements and team-wide conversations.", "creator": "U04L65GPMKN", "last_set": 1674485468}, "previous_names": [], "num_members": 3}, "emitted_at": 1675094013783}
-{"stream": "channels", "data": {"id": "C04L3M4PTJ6", "name": "random", "is_channel": true, "is_group": false, "is_im": false, "is_mpim": false, "is_private": false, "created": 1674485468, "is_archived": false, "is_general": false, "unlinked": 0, "name_normalized": "random", "is_shared": false, "is_org_shared": false, "is_pending_ext_shared": false, "pending_shared": [], "context_team_id": "T04KX3KDDU6", "updated": 1674485468902, "parent_conversation": null, "creator": "U04L65GPMKN", "is_ext_shared": false, "shared_team_ids": ["T04KX3KDDU6"], "pending_connected_team_ids": [], "is_member": true, "topic": {"value": "", "creator": "", "last_set": 0}, "purpose": {"value": "This channel is for... well, everything else. It\u2019s a place for team jokes, spur-of-the-moment ideas, and funny GIFs. Go wild!", "creator": "U04L65GPMKN", "last_set": 1674485468}, "previous_names": [], "num_members": 3}, "emitted_at": 1675094013784}
-{"stream": "channels", "data": {"id": "C04LTCM2Y56", "name": "integrationtest", "is_channel": true, "is_group": false, "is_im": false, "is_mpim": false, "is_private": false, "created": 1674485589, "is_archived": false, "is_general": false, "unlinked": 0, "name_normalized": "integrationtest", "is_shared": false, "is_org_shared": false, "is_pending_ext_shared": false, "pending_shared": [], "context_team_id": "T04KX3KDDU6", "updated": 1674485589890, "parent_conversation": null, "creator": "U04L65GPMKN", "is_ext_shared": false, "shared_team_ids": ["T04KX3KDDU6"], "pending_connected_team_ids": [], "is_member": true, "topic": {"value": "", "creator": "", "last_set": 0}, "purpose": {"value": "This channel is for everything #integrationtest. Hold meetings, share docs, and make decisions together with your team.", "creator": "U04L65GPMKN", "last_set": 1674485589}, "previous_names": [], "num_members": 3}, "emitted_at": 1675094013785}
+{"stream": "channels", "data": {"id": "C04KX3KEZ54", "name": "general", "is_channel": true, "is_group": false, "is_im": false, "is_mpim": false, "is_private": false, "created": 1674485468, "is_archived": false, "is_general": true, "unlinked": 0, "name_normalized": "general", "is_shared": false, "is_org_shared": false, "is_pending_ext_shared": false, "pending_shared": [], "context_team_id": "T04KX3KDDU6", "updated": 1681216123063, "parent_conversation": null, "creator": "U04L65GPMKN", "is_ext_shared": false, "shared_team_ids": ["T04KX3KDDU6"], "pending_connected_team_ids": [], "is_member": true, "topic": {"value": "", "creator": "", "last_set": 0}, "purpose": {"value": "This is the one channel that will always include everyone. It\u2019s a great spot for announcements and team-wide conversations.", "creator": "U04L65GPMKN", "last_set": 1674485468}, "previous_names": [], "num_members": 3}, "emitted_at": 1675094013783}
+{"stream": "channels", "data": {"id": "C04L3M4PTJ6", "name": "random", "is_channel": true, "is_group": false, "is_im": false, "is_mpim": false, "is_private": false, "created": 1674485468, "is_archived": false, "is_general": false, "unlinked": 0, "name_normalized": "random", "is_shared": false, "is_org_shared": false, "is_pending_ext_shared": false, "pending_shared": [], "context_team_id": "T04KX3KDDU6", "updated": 1681216123075, "parent_conversation": null, "creator": "U04L65GPMKN", "is_ext_shared": false, "shared_team_ids": ["T04KX3KDDU6"], "pending_connected_team_ids": [], "is_member": true, "topic": {"value": "", "creator": "", "last_set": 0}, "purpose": {"value": "This channel is for... well, everything else. It\u2019s a place for team jokes, spur-of-the-moment ideas, and funny GIFs. Go wild!", "creator": "U04L65GPMKN", "last_set": 1674485468}, "previous_names": [], "num_members": 3}, "emitted_at": 1675094013784}
+{"stream": "channels", "data": {"id": "C04LTCM2Y56", "name": "integrationtest", "is_channel": true, "is_group": false, "is_im": false, "is_mpim": false, "is_private": false, "created": 1674485589, "is_archived": false, "is_general": false, "unlinked": 0, "name_normalized": "integrationtest", "is_shared": false, "is_org_shared": false, "is_pending_ext_shared": false, "pending_shared": [], "context_team_id": "T04KX3KDDU6", "updated": 1681216123086, "parent_conversation": null, "creator": "U04L65GPMKN", "is_ext_shared": false, "shared_team_ids": ["T04KX3KDDU6"], "pending_connected_team_ids": [], "is_member": true, "topic": {"value": "", "creator": "", "last_set": 0}, "purpose": {"value": "This channel is for everything #integrationtest. Hold meetings, share docs, and make decisions together with your team.", "creator": "U04L65GPMKN", "last_set": 1674485589}, "previous_names": [], "num_members": 3}, "emitted_at": 1675094013785}
{"stream": "users", "data": {"id": "USLACKBOT", "team_id": "T04KX3KDDU6", "name": "slackbot", "deleted": false, "color": "757575", "real_name": "Slackbot", "tz": "America/Los_Angeles", "tz_label": "Pacific Daylight Time", "tz_offset": -25200, "profile": {"title": "", "phone": "", "skype": "", "real_name": "Slackbot", "real_name_normalized": "Slackbot", "display_name": "Slackbot", "display_name_normalized": "Slackbot", "fields": {}, "status_text": "", "status_emoji": "", "status_emoji_display_info": [], "status_expiration": 0, "avatar_hash": "sv41d8cd98f0", "always_active": true, "first_name": "slackbot", "last_name": "", "image_24": "https://a.slack-edge.com/80588/img/slackbot_24.png", "image_32": "https://a.slack-edge.com/80588/img/slackbot_32.png", "image_48": "https://a.slack-edge.com/80588/img/slackbot_48.png", "image_72": "https://a.slack-edge.com/80588/img/slackbot_72.png", "image_192": "https://a.slack-edge.com/80588/marketing/img/avatars/slackbot/avatar-slackbot.png", "image_512": "https://a.slack-edge.com/80588/img/slackbot_512.png", "status_text_canonical": "", "team": "T04KX3KDDU6"}, "is_admin": false, "is_owner": false, "is_primary_owner": false, "is_restricted": false, "is_ultra_restricted": false, "is_bot": false, "is_app_user": false, "updated": 0, "is_email_confirmed": false, "who_can_share_contact_card": "EVERYONE"}, "emitted_at": 1680008591232}
{"stream": "users", "data": {"id": "U04KUMXNYMV", "team_id": "T04KX3KDDU6", "name": "deactivateduser693438", "deleted": true, "profile": {"title": "", "phone": "", "skype": "", "real_name": "Deactivated User", "real_name_normalized": "Deactivated User", "display_name": "deactivateduser", "display_name_normalized": "deactivateduser", "fields": null, "status_text": "", "status_emoji": "", "status_emoji_display_info": [], "status_expiration": 0, "avatar_hash": "g849cc56ed76", "huddle_state": "default_unset", "first_name": "Deactivated", "last_name": "User", "image_24": "https://secure.gravatar.com/avatar/d5320ceddda202563fd9e6222c07c00a.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-24.png", "image_32": "https://secure.gravatar.com/avatar/d5320ceddda202563fd9e6222c07c00a.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-32.png", "image_48": "https://secure.gravatar.com/avatar/d5320ceddda202563fd9e6222c07c00a.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-48.png", "image_72": "https://secure.gravatar.com/avatar/d5320ceddda202563fd9e6222c07c00a.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-72.png", "image_192": "https://secure.gravatar.com/avatar/d5320ceddda202563fd9e6222c07c00a.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-192.png", "image_512": "https://secure.gravatar.com/avatar/d5320ceddda202563fd9e6222c07c00a.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-512.png", "status_text_canonical": "", "team": "T04KX3KDDU6"}, "is_bot": false, "is_app_user": false, "updated": 1675090804, "is_forgotten": true, "is_invited_user": true}, "emitted_at": 1680008591233}
{"stream": "users", "data": {"id": "U04L2KY5CES", "team_id": "T04KX3KDDU6", "name": "deactivateduser686066", "deleted": true, "profile": {"title": "", "phone": "", "skype": "", "real_name": "Deactivated User", "real_name_normalized": "Deactivated User", "display_name": "deactivateduser", "display_name_normalized": "deactivateduser", "fields": null, "status_text": "", "status_emoji": "", "status_emoji_display_info": [], "status_expiration": 0, "avatar_hash": "g849cc56ed76", "huddle_state": "default_unset", "first_name": "Deactivated", "last_name": "User", "image_24": "https://secure.gravatar.com/avatar/cacb225265b3b19c4e72029a62cf1ef1.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0009-24.png", "image_32": "https://secure.gravatar.com/avatar/cacb225265b3b19c4e72029a62cf1ef1.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0009-32.png", "image_48": "https://secure.gravatar.com/avatar/cacb225265b3b19c4e72029a62cf1ef1.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0009-48.png", "image_72": "https://secure.gravatar.com/avatar/cacb225265b3b19c4e72029a62cf1ef1.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0009-72.png", "image_192": "https://secure.gravatar.com/avatar/cacb225265b3b19c4e72029a62cf1ef1.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0009-192.png", "image_512": "https://secure.gravatar.com/avatar/cacb225265b3b19c4e72029a62cf1ef1.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0009-512.png", "status_text_canonical": "", "team": "T04KX3KDDU6"}, "is_bot": false, "is_app_user": false, "updated": 1675090785, "is_forgotten": true, "is_invited_user": true}, "emitted_at": 1680008591233}
From 7ebf1e6af704a2b90e97e0fd8edfc2ba95e9f6e9 Mon Sep 17 00:00:00 2001
From: Augustin
Date: Thu, 13 Apr 2023 21:51:58 +0200
Subject: [PATCH 054/187] dagger: upgrade to 0.5.0 (#25171)
* dagger: upgrade to 0.5.0
* clean class ConnectorPackageInstall(Step):
---
.github/actions/run-dagger-pipeline/action.yml | 8 --------
.../connector_integration_test_single_dagger.yml | 14 --------------
.../workflows/connector_nightly_builds_dagger.yml | 7 -------
.../pipelines/tests/python_connectors.py | 2 +-
tools/ci_connector_ops/setup.py | 2 +-
5 files changed, 2 insertions(+), 31 deletions(-)
diff --git a/.github/actions/run-dagger-pipeline/action.yml b/.github/actions/run-dagger-pipeline/action.yml
index 8ceac5340995..dca73bbb168e 100644
--- a/.github/actions/run-dagger-pipeline/action.yml
+++ b/.github/actions/run-dagger-pipeline/action.yml
@@ -38,14 +38,6 @@ runs:
shell: bash
run: |
export _EXPERIMENTAL_DAGGER_RUNNER_HOST="unix:///var/run/buildkit/buildkitd.sock"
- DAGGER_CLI_COMMIT="67c7e7635cf4ea0e446e2fed522a3e314c960f6a"
- DAGGER_TMP_BINDIR="/tmp/dagger_${DAGGER_CLI_COMMIT}"
- export _EXPERIMENTAL_DAGGER_CLI_BIN="$DAGGER_TMP_BINDIR/dagger"
- if [ ! -f "$_EXPERIMENTAL_DAGGER_CLI_BIN" ]; then
- mkdir -p "$DAGGER_TMP_BINDIR"
- curl "https://dl.dagger.io/dagger/main/${DAGGER_CLI_COMMIT}/dagger_${DAGGER_CLI_COMMIT}_$(uname -s | tr A-Z a-z)_$(uname -m | sed s/x86_64/amd64/).tar.gz" | tar xvz -C "$DAGGER_TMP_BINDIR"
- fi
-
airbyte-ci --is-ci --gha-workflow-run-id=${{ github.run_id }} ${{ inputs.subcommand }} ${{ inputs.options }}
env:
diff --git a/.github/workflows/connector_integration_test_single_dagger.yml b/.github/workflows/connector_integration_test_single_dagger.yml
index ffc7550ee0b3..56a849133f49 100644
--- a/.github/workflows/connector_integration_test_single_dagger.yml
+++ b/.github/workflows/connector_integration_test_single_dagger.yml
@@ -39,13 +39,6 @@ jobs:
if: github.event_name == 'workflow_dispatch'
run: |
export _EXPERIMENTAL_DAGGER_RUNNER_HOST="unix:///var/run/buildkit/buildkitd.sock"
- DAGGER_CLI_COMMIT="f0119bcde82e06731558a8baf70d6e7d271b21d1"
- DAGGER_TMP_BINDIR="/tmp/dagger_${DAGGER_CLI_COMMIT}"
- export _EXPERIMENTAL_DAGGER_CLI_BIN="$DAGGER_TMP_BINDIR/dagger"
- if [ ! -f "$_EXPERIMENTAL_DAGGER_CLI_BIN" ]; then
- mkdir -p "$DAGGER_TMP_BINDIR"
- curl "https://dl.dagger.io/dagger/main/${DAGGER_CLI_COMMIT}/dagger_${DAGGER_CLI_COMMIT}_$(uname -s | tr A-Z a-z)_$(uname -m | sed s/x86_64/amd64/).tar.gz" | tar xvz -C "$DAGGER_TMP_BINDIR"
- fi
airbyte-ci --is-ci --gha-workflow-run-id=${{ github.run_id }} connectors test ${{ github.event.inputs.test-connectors-options }}
env:
_EXPERIMENTAL_DAGGER_CLOUD_TOKEN: "p.eyJ1IjogIjFiZjEwMmRjLWYyZmQtNDVhNi1iNzM1LTgxNzI1NGFkZDU2ZiIsICJpZCI6ICJlNjk3YzZiYy0yMDhiLTRlMTktODBjZC0yNjIyNGI3ZDBjMDEifQ.hT6eMOYt3KZgNoVGNYI3_v4CC-s19z8uQsBkGrBhU3k"
@@ -63,13 +56,6 @@ jobs:
if: github.event_name == 'pull_request'
run: |
export _EXPERIMENTAL_DAGGER_RUNNER_HOST="unix:///var/run/buildkit/buildkitd.sock"
- DAGGER_CLI_COMMIT="f0119bcde82e06731558a8baf70d6e7d271b21d1"
- DAGGER_TMP_BINDIR="/tmp/dagger_${DAGGER_CLI_COMMIT}"
- export _EXPERIMENTAL_DAGGER_CLI_BIN="$DAGGER_TMP_BINDIR/dagger"
- if [ ! -f "$_EXPERIMENTAL_DAGGER_CLI_BIN" ]; then
- mkdir -p "$DAGGER_TMP_BINDIR"
- curl "https://dl.dagger.io/dagger/main/${DAGGER_CLI_COMMIT}/dagger_${DAGGER_CLI_COMMIT}_$(uname -s | tr A-Z a-z)_$(uname -m | sed s/x86_64/amd64/).tar.gz" | tar xvz -C "$DAGGER_TMP_BINDIR"
- fi
airbyte-ci --is-ci --gha-workflow-run-id=${{ github.run_id }} connectors test --modified
env:
_EXPERIMENTAL_DAGGER_CLOUD_TOKEN: "p.eyJ1IjogIjFiZjEwMmRjLWYyZmQtNDVhNi1iNzM1LTgxNzI1NGFkZDU2ZiIsICJpZCI6ICJlNjk3YzZiYy0yMDhiLTRlMTktODBjZC0yNjIyNGI3ZDBjMDEifQ.hT6eMOYt3KZgNoVGNYI3_v4CC-s19z8uQsBkGrBhU3k"
diff --git a/.github/workflows/connector_nightly_builds_dagger.yml b/.github/workflows/connector_nightly_builds_dagger.yml
index 387a7943b3ea..9723ec484d92 100644
--- a/.github/workflows/connector_nightly_builds_dagger.yml
+++ b/.github/workflows/connector_nightly_builds_dagger.yml
@@ -44,13 +44,6 @@ jobs:
- name: Test connectors
run: |
export _EXPERIMENTAL_DAGGER_RUNNER_HOST="unix:///var/run/buildkit/buildkitd.sock"
- DAGGER_CLI_COMMIT="f0119bcde82e06731558a8baf70d6e7d271b21d1"
- DAGGER_TMP_BINDIR="/tmp/dagger_${DAGGER_CLI_COMMIT}"
- export _EXPERIMENTAL_DAGGER_CLI_BIN="$DAGGER_TMP_BINDIR/dagger"
- if [ ! -f "$_EXPERIMENTAL_DAGGER_CLI_BIN" ]; then
- mkdir -p "$DAGGER_TMP_BINDIR"
- curl "https://dl.dagger.io/dagger/main/${DAGGER_CLI_COMMIT}/dagger_${DAGGER_CLI_COMMIT}_$(uname -s | tr A-Z a-z)_$(uname -m | sed s/x86_64/amd64/).tar.gz" | tar xvz -C "$DAGGER_TMP_BINDIR"
- fi
airbyte-ci --is-ci --gha-workflow-run-id=${{ github.run_id }} connectors test ${{ inputs.test-connectors-options || '--concurrency=5 --release-stage=generally_available --release-stage=beta' }}
env:
_EXPERIMENTAL_DAGGER_CLOUD_TOKEN: "p.eyJ1IjogIjFiZjEwMmRjLWYyZmQtNDVhNi1iNzM1LTgxNzI1NGFkZDU2ZiIsICJpZCI6ICJlNjk3YzZiYy0yMDhiLTRlMTktODBjZC0yNjIyNGI3ZDBjMDEifQ.hT6eMOYt3KZgNoVGNYI3_v4CC-s19z8uQsBkGrBhU3k"
diff --git a/tools/ci_connector_ops/ci_connector_ops/pipelines/tests/python_connectors.py b/tools/ci_connector_ops/ci_connector_ops/pipelines/tests/python_connectors.py
index 16dec87921a3..5cde808fc8f2 100644
--- a/tools/ci_connector_ops/ci_connector_ops/pipelines/tests/python_connectors.py
+++ b/tools/ci_connector_ops/ci_connector_ops/pipelines/tests/python_connectors.py
@@ -61,7 +61,7 @@ async def _run(self) -> Tuple[StepResult, Container]:
Tuple[StepResult, Container]: Failure or success of the package installation and the connector under test container (with the connector package installed).
"""
connector_under_test = await environments.with_installed_airbyte_connector(self.context)
- return await self.get_step_result(connector_under_test), connector_under_test
+ return (await self.get_step_result(connector_under_test)), connector_under_test
class UnitTests(PytestStep):
diff --git a/tools/ci_connector_ops/setup.py b/tools/ci_connector_ops/setup.py
index 67f0b7fc8f94..9616de6d8b08 100644
--- a/tools/ci_connector_ops/setup.py
+++ b/tools/ci_connector_ops/setup.py
@@ -43,7 +43,7 @@ def local_pkg(name: str) -> str:
]
PIPELINES_REQUIREMENTS = [
- "dagger-io~=0.4.2",
+ "dagger-io==0.5.0",
"asyncer",
"anyio",
]
From c379849d7f65edc7eac8b659c98fed31a47df27a Mon Sep 17 00:00:00 2001
From: Boluwatife Victor <95125924+BirdboyBolu@users.noreply.github.com>
Date: Thu, 13 Apr 2023 21:00:16 +0100
Subject: [PATCH 055/187] Fixed missing punctuations (#25151)
* Update README.md
I gave a better description to the Airbyte Cloud section, converted a few passive words to active, and added a missing comma.
* Update README.md
I noticed several punctuation marks were missing, so I fixed them. I also want to use this opportunity to draw get the attention of the docs team.
I would love to join Airbyte as a technical writer and be a part of the team. I am more than willing to handle these tasks, even if the organization does not have the current budget to onboard a new technical writer.
Also, I filled the form to participate in the Airbyte Writer Program. I hope the team reviews my topic and allow me contribute to the data insight and tutorial articles. Cheers!
* Update README.md
---------
Co-authored-by: Marcos Marx
---
README.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index 1e6ca8488e42..57c66ce34555 100644
--- a/README.md
+++ b/README.md
@@ -28,13 +28,13 @@
-We believe that only an **open-source** solution to data movement can cover the **long tail of data sources** while empowering data engineers to **customize existing connectors**. Our ultimate vision is to help you move data from any source to any destination. Airbyte already provides [300+ connectors](https://docs.airbyte.com/integrations/) for popular APIs, databases, data warehouses and data lakes.
+We believe that only an **open-source** solution to data movement can cover the **long tail of data sources** while empowering data engineers to **customize existing connectors**. Our ultimate vision is to help you move data from any source to any destination. Airbyte already provides [300+ connectors](https://docs.airbyte.com/integrations/) for popular APIs, databases, data warehouses, and data lakes.
You can implement Airbyte connectors in any language and take the form of a Docker image that follows the [Airbyte specification](https://docs.airbyte.com/understanding-airbyte/airbyte-protocol/). You can create new connectors very fast with:
- The [low-code Connector Development Kit](https://docs.airbyte.com/connector-development/config-based/low-code-cdk-overview) (CDK) for API connectors ([demo](https://www.youtube.com/watch?v=i7VSL2bDvmw))
- The [Python CDK](https://docs.airbyte.com/connector-development/cdk-python/) ([tutorial](https://docs.airbyte.com/connector-development/tutorials/cdk-speedrun))
-Airbyte has a built-in scheduler and uses [Temporal](https://airbyte.com/blog/scale-workflow-orchestration-with-temporal) to orchestrate jobs and ensure reliability at scale. Airbyte leverages [dbt](https://www.youtube.com/watch?v=saXwh6SpeHA) to normalize extracted data and can trigger custom transformations in SQL and dbt. You can also orchestrate Airbyte syncs with [Airflow](https://docs.airbyte.com/operator-guides/using-the-airflow-airbyte-operator), [Prefect](https://docs.airbyte.com/operator-guides/using-prefect-task) or [Dagster](https://docs.airbyte.com/operator-guides/using-dagster-integration).
+Airbyte has a built-in scheduler and uses [Temporal](https://airbyte.com/blog/scale-workflow-orchestration-with-temporal) to orchestrate jobs and ensure reliability at scale. Airbyte leverages [dbt](https://www.youtube.com/watch?v=saXwh6SpeHA) to normalize extracted data and can trigger custom transformations in SQL and dbt. You can also orchestrate Airbyte syncs with [Airflow](https://docs.airbyte.com/operator-guides/using-the-airflow-airbyte-operator), [Prefect](https://docs.airbyte.com/operator-guides/using-prefect-task), or [Dagster](https://docs.airbyte.com/operator-guides/using-dagster-integration).
![Airbyte OSS Connections UI](https://user-images.githubusercontent.com/2302748/205949986-5207ca24-f1f0-41b1-97e1-a0745a0de55a.png)
@@ -85,13 +85,13 @@ Sign up for [Airbyte Cloud](https://cloud.airbyte.io/signup) and get free credit
Get started by checking Github issues and creating a Pull Request. An easy way to start contributing is to update an existing connector or create a new connector using the low-code and Python CDKs. You can find the code for existing connectors in the [connectors](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors) directory. The Airbyte platform is written in Java, and the frontend in React. You can also contribute to our docs and tutorials. Advanced Airbyte users can apply to the [Maintainer program](https://airbyte.com/maintainer-program) and [Writer Program](https://airbyte.com/write-for-the-community).
-If you would like to make a contribution to the platform itself, please refer to guides in [the platform repository](https://github.com/airbytehq/airbyte-platform)
+If you would like to make a contribution to the platform itself, please refer to guides in [the platform repository](https://github.com/airbytehq/airbyte-platform).
Read the [Contributing guide](https://docs.airbyte.com/contributing-to-airbyte/).
## Reporting vulnerabilities
-⚠️ Please do not file GitHub issues or post on our public forum for security vulnerabilities as they are public! ⚠️
+⚠️ Please do not file GitHub issues or post on our public forum for security vulnerabilities, as they are public! ⚠️
Airbyte takes security issues very seriously. If you have any concerns about Airbyte or believe you have uncovered a vulnerability, please get in touch via the e-mail address security@airbyte.io. In the message, try to provide a description of the issue and ideally a way of reproducing it. The security team will get back to you as soon as possible.
From b089ce393fd0d910fabe454c7856d73393cb319f Mon Sep 17 00:00:00 2001
From: Rodi Reich Zilberman <867491+rodireich@users.noreply.github.com>
Date: Thu, 13 Apr 2023 13:47:20 -0700
Subject: [PATCH 056/187] refactor source harness and GitHub action to add
source-mysql (#25036)
* refactor to add source-mysql
* refactor to add source-mysql
* refactor to add source-mysql
* test
* Automated Change
* fix if condition
* try multiline
* new db
* add mysql catalogs
---------
Co-authored-by: rodireich
---
.../connector-performance-command.yml | 13 +-
.../integrations/performance/Main.java | 16 +-
.../catalogs/source-mysql/10m_catalog.json | 161 ++++++++++++++++++
.../catalogs/source-mysql/1m_catalog.json | 161 ++++++++++++++++++
.../catalogs/source-mysql/20m_catalog.json | 161 ++++++++++++++++++
.../bottleneck_stream1_catalog.json | 37 ++++
.../{ => source-postgres}/10m_catalog.json | 0
.../{ => source-postgres}/1m_catalog.json | 0
.../{ => source-postgres}/20m_catalog.json | 0
.../bottleneck_stream1_catalog.json | 0
10 files changed, 539 insertions(+), 10 deletions(-)
create mode 100644 airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-mysql/10m_catalog.json
create mode 100644 airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-mysql/1m_catalog.json
create mode 100644 airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-mysql/20m_catalog.json
create mode 100644 airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-mysql/bottleneck_stream1_catalog.json
rename airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/{ => source-postgres}/10m_catalog.json (100%)
rename airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/{ => source-postgres}/1m_catalog.json (100%)
rename airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/{ => source-postgres}/20m_catalog.json (100%)
rename airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/{ => source-postgres}/bottleneck_stream1_catalog.json (100%)
diff --git a/.github/workflows/connector-performance-command.yml b/.github/workflows/connector-performance-command.yml
index c458e0895758..5d43370ff921 100644
--- a/.github/workflows/connector-performance-command.yml
+++ b/.github/workflows/connector-performance-command.yml
@@ -81,8 +81,9 @@ jobs:
if: steps.regex.outputs.first_match != github.event.inputs.connector
run: echo "The connector provided has an invalid format!" && exit 1
- name: Filter supported connectors
- if: "${{ github.event.inputs.connector != 'connectors/source-postgres' }}"
- run: echo "Only connectors/source-postgres currently supported by harness" && exit 1
+ if: "${{ github.event.inputs.connector != 'connectors/source-postgres' &&
+ github.event.inputs.connector != 'connectors/source-mysql' }}"
+ run: echo "Only connectors/source-postgres and source-mysql currently supported by harness" && exit 1
- name: Checkout Airbyte
uses: actions/checkout@v3
with:
@@ -117,8 +118,9 @@ jobs:
run: |
echo "Building... ${{github.event.inputs.connector}}" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY # this is a blank line
- echo "Running ./gradlew :airbyte-integrations:connectors:source-postgres:build -x check"
- ./gradlew :airbyte-integrations:connectors:source-postgres:build -x check
+ connector_name=$(echo ${{ github.event.inputs.connector }} | cut -d / -f 2)
+ echo "Running ./gradlew :airbyte-integrations:connectors:$connector_name:build -x check"
+ ./gradlew :airbyte-integrations:connectors:$connector_name:build -x check
- name: KIND Kubernetes Cluster Setup
uses: helm/kind-action@v1.4.0
with:
@@ -133,7 +135,8 @@ jobs:
suffix: '"}}'
run: |
kubectl apply -f ./tools/bin/admin-service-account.yaml
- kind load docker-image airbyte/source-postgres:dev --name chart-testing
+ connector_name=$(echo $CONN | cut -d / -f 2)
+ kind load docker-image airbyte/$connector_name:dev --name chart-testing
kind load docker-image airbyte/source-harness:dev --name chart-testing
export CONNECTOR_IMAGE_NAME=${CONN/connectors/airbyte}:dev
export DATASET=$DS
diff --git a/airbyte-integrations/connectors-performance/source-harness/src/main/java/io/airbyte/integrations/performance/Main.java b/airbyte-integrations/connectors-performance/source-harness/src/main/java/io/airbyte/integrations/performance/Main.java
index 7ceb761128a7..155cd31a79fe 100644
--- a/airbyte-integrations/connectors-performance/source-harness/src/main/java/io/airbyte/integrations/performance/Main.java
+++ b/airbyte-integrations/connectors-performance/source-harness/src/main/java/io/airbyte/integrations/performance/Main.java
@@ -19,7 +19,7 @@
@Slf4j
public class Main {
- private static final String CREDENTIALS_PATH = "secrets/%s_credentials.json";
+ private static final String CREDENTIALS_PATH = "secrets/%s_%s_credentials.json";
public static void main(final String[] args) {
log.info("args: {}", Arrays.toString(args));
@@ -32,9 +32,15 @@ public static void main(final String[] args) {
image = args[0];
dataset = args[1];
}
+ default -> {
+ log.info("unexpected arguments");
+ System.exit(1);
+ }
}
- final Path credsPath = Path.of(CREDENTIALS_PATH.formatted(dataset));
+ final String connector = image.substring(image.indexOf("/") + 1, image.indexOf(":"));
+ log.info("Connector name: {}", connector);
+ final Path credsPath = Path.of(CREDENTIALS_PATH.formatted(connector, dataset));
if (!Files.exists(credsPath)) {
throw new IllegalStateException("{module-root}/" + credsPath + " not found. Must provide path to a source-harness credentials file.");
@@ -44,7 +50,7 @@ public static void main(final String[] args) {
final JsonNode catalog;
try {
- catalog = getCatalog(dataset);
+ catalog = getCatalog(dataset, connector);
} catch (final IOException ex) {
throw new IllegalStateException("Failed to read catalog", ex);
}
@@ -86,9 +92,9 @@ public static void main(final String[] args) {
System.exit(0);
}
- static JsonNode getCatalog(final String dataset) throws IOException {
+ static JsonNode getCatalog(final String dataset, final String connector) throws IOException {
final ObjectMapper objectMapper = new ObjectMapper();
- final String catalogFilename = "catalogs/%s_catalog.json".formatted(dataset);
+ final String catalogFilename = "catalogs/%s/%s_catalog.json".formatted(connector, dataset);
final InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(catalogFilename);
return objectMapper.readTree(is);
}
diff --git a/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-mysql/10m_catalog.json b/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-mysql/10m_catalog.json
new file mode 100644
index 000000000000..75d4fc01be8f
--- /dev/null
+++ b/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-mysql/10m_catalog.json
@@ -0,0 +1,161 @@
+{
+ "streams": [
+ {
+ "stream": {
+ "name": "purchases",
+ "namespace": "performance_10m",
+ "json_schema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "user_id": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "product_id": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "returned_at": {
+ "type": "string",
+ "format": "date-time",
+ "airbyte_type": "timestamp_with_timezone"
+ },
+ "purchased_at": {
+ "type": "string",
+ "format": "date-time",
+ "airbyte_type": "timestamp_with_timezone"
+ },
+ "added_to_cart_at": {
+ "type": "string",
+ "format": "date-time",
+ "airbyte_type": "timestamp_with_timezone"
+ }
+ }
+ },
+ "default_cursor_field": [],
+ "supported_sync_modes": ["full_refresh", "incremental"],
+ "source_defined_primary_key": [["id"]]
+ },
+ "sync_mode": "full_refresh",
+ "primary_key": [["id"]],
+ "cursor_field": ["id"],
+ "destination_sync_mode": "append"
+ },
+ {
+ "stream": {
+ "name": "users",
+ "namespace": "performance_10m",
+ "json_schema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "age": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ },
+ "gender": {
+ "type": "string"
+ },
+ "height": {
+ "type": "number"
+ },
+ "weight": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "language": {
+ "type": "string"
+ },
+ "telephone": {
+ "type": "string"
+ },
+ "blood_type": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time",
+ "airbyte_type": "timestamp_with_timezone"
+ },
+ "occupation": {
+ "type": "string"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time",
+ "airbyte_type": "timestamp_with_timezone"
+ },
+ "nationality": {
+ "type": "string"
+ },
+ "academic_degree": {
+ "type": "string"
+ }
+ }
+ },
+ "default_cursor_field": [],
+ "supported_sync_modes": ["full_refresh", "incremental"],
+ "source_defined_primary_key": [["id"]]
+ },
+ "sync_mode": "full_refresh",
+ "primary_key": [["id"]],
+ "cursor_field": ["updated_at"],
+ "destination_sync_mode": "append"
+ },
+ {
+ "stream": {
+ "name": "products",
+ "namespace": "performance_10m",
+ "json_schema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "make": {
+ "type": "string"
+ },
+ "year": {
+ "type": "string"
+ },
+ "model": {
+ "type": "string"
+ },
+ "price": {
+ "type": "number"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time",
+ "airbyte_type": "timestamp_with_timezone"
+ }
+ }
+ },
+ "default_cursor_field": [],
+ "supported_sync_modes": ["full_refresh", "incremental"],
+ "source_defined_primary_key": [["id"]]
+ },
+ "sync_mode": "full_refresh",
+ "primary_key": [["id"]],
+ "cursor_field": ["created_at"],
+ "destination_sync_mode": "append"
+ }
+ ]
+}
diff --git a/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-mysql/1m_catalog.json b/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-mysql/1m_catalog.json
new file mode 100644
index 000000000000..ad274523846a
--- /dev/null
+++ b/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-mysql/1m_catalog.json
@@ -0,0 +1,161 @@
+{
+ "streams": [
+ {
+ "stream": {
+ "name": "purchases",
+ "namespace": "performance_1m",
+ "json_schema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "user_id": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "product_id": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "returned_at": {
+ "type": "string",
+ "format": "date-time",
+ "airbyte_type": "timestamp_with_timezone"
+ },
+ "purchased_at": {
+ "type": "string",
+ "format": "date-time",
+ "airbyte_type": "timestamp_with_timezone"
+ },
+ "added_to_cart_at": {
+ "type": "string",
+ "format": "date-time",
+ "airbyte_type": "timestamp_with_timezone"
+ }
+ }
+ },
+ "default_cursor_field": [],
+ "supported_sync_modes": ["full_refresh", "incremental"],
+ "source_defined_primary_key": [["id"]]
+ },
+ "sync_mode": "full_refresh",
+ "primary_key": [["id"]],
+ "cursor_field": ["id"],
+ "destination_sync_mode": "append"
+ },
+ {
+ "stream": {
+ "name": "users",
+ "namespace": "performance_1m",
+ "json_schema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "age": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ },
+ "gender": {
+ "type": "string"
+ },
+ "height": {
+ "type": "number"
+ },
+ "weight": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "language": {
+ "type": "string"
+ },
+ "telephone": {
+ "type": "string"
+ },
+ "blood_type": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time",
+ "airbyte_type": "timestamp_with_timezone"
+ },
+ "occupation": {
+ "type": "string"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time",
+ "airbyte_type": "timestamp_with_timezone"
+ },
+ "nationality": {
+ "type": "string"
+ },
+ "academic_degree": {
+ "type": "string"
+ }
+ }
+ },
+ "default_cursor_field": [],
+ "supported_sync_modes": ["full_refresh", "incremental"],
+ "source_defined_primary_key": [["id"]]
+ },
+ "sync_mode": "full_refresh",
+ "primary_key": [["id"]],
+ "cursor_field": ["updated_at"],
+ "destination_sync_mode": "append"
+ },
+ {
+ "stream": {
+ "name": "products",
+ "namespace": "performance_1m",
+ "json_schema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "make": {
+ "type": "string"
+ },
+ "year": {
+ "type": "string"
+ },
+ "model": {
+ "type": "string"
+ },
+ "price": {
+ "type": "number"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time",
+ "airbyte_type": "timestamp_with_timezone"
+ }
+ }
+ },
+ "default_cursor_field": [],
+ "supported_sync_modes": ["full_refresh", "incremental"],
+ "source_defined_primary_key": [["id"]]
+ },
+ "sync_mode": "full_refresh",
+ "primary_key": [["id"]],
+ "cursor_field": ["created_at"],
+ "destination_sync_mode": "append"
+ }
+ ]
+}
diff --git a/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-mysql/20m_catalog.json b/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-mysql/20m_catalog.json
new file mode 100644
index 000000000000..55c38e69c72f
--- /dev/null
+++ b/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-mysql/20m_catalog.json
@@ -0,0 +1,161 @@
+{
+ "streams": [
+ {
+ "stream": {
+ "name": "purchases",
+ "namespace": "performance_20m",
+ "json_schema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "user_id": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "product_id": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "returned_at": {
+ "type": "string",
+ "format": "date-time",
+ "airbyte_type": "timestamp_with_timezone"
+ },
+ "purchased_at": {
+ "type": "string",
+ "format": "date-time",
+ "airbyte_type": "timestamp_with_timezone"
+ },
+ "added_to_cart_at": {
+ "type": "string",
+ "format": "date-time",
+ "airbyte_type": "timestamp_with_timezone"
+ }
+ }
+ },
+ "default_cursor_field": [],
+ "supported_sync_modes": ["full_refresh", "incremental"],
+ "source_defined_primary_key": [["id"]]
+ },
+ "sync_mode": "full_refresh",
+ "primary_key": [["id"]],
+ "cursor_field": ["id"],
+ "destination_sync_mode": "append"
+ },
+ {
+ "stream": {
+ "name": "users",
+ "namespace": "performance_20m",
+ "json_schema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "age": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ },
+ "gender": {
+ "type": "string"
+ },
+ "height": {
+ "type": "number"
+ },
+ "weight": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "language": {
+ "type": "string"
+ },
+ "telephone": {
+ "type": "string"
+ },
+ "blood_type": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time",
+ "airbyte_type": "timestamp_with_timezone"
+ },
+ "occupation": {
+ "type": "string"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time",
+ "airbyte_type": "timestamp_with_timezone"
+ },
+ "nationality": {
+ "type": "string"
+ },
+ "academic_degree": {
+ "type": "string"
+ }
+ }
+ },
+ "default_cursor_field": [],
+ "supported_sync_modes": ["full_refresh", "incremental"],
+ "source_defined_primary_key": [["id"]]
+ },
+ "sync_mode": "full_refresh",
+ "primary_key": [["id"]],
+ "cursor_field": ["updated_at"],
+ "destination_sync_mode": "append"
+ },
+ {
+ "stream": {
+ "name": "products",
+ "namespace": "performance_20m",
+ "json_schema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "number",
+ "airbyte_type": "integer"
+ },
+ "make": {
+ "type": "string"
+ },
+ "year": {
+ "type": "string"
+ },
+ "model": {
+ "type": "string"
+ },
+ "price": {
+ "type": "number"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time",
+ "airbyte_type": "timestamp_with_timezone"
+ }
+ }
+ },
+ "default_cursor_field": [],
+ "supported_sync_modes": ["full_refresh", "incremental"],
+ "source_defined_primary_key": [["id"]]
+ },
+ "sync_mode": "full_refresh",
+ "primary_key": [["id"]],
+ "cursor_field": ["created_at"],
+ "destination_sync_mode": "append"
+ }
+ ]
+}
diff --git a/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-mysql/bottleneck_stream1_catalog.json b/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-mysql/bottleneck_stream1_catalog.json
new file mode 100644
index 000000000000..6e8979b20a2f
--- /dev/null
+++ b/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-mysql/bottleneck_stream1_catalog.json
@@ -0,0 +1,37 @@
+{
+ "streams": [
+ {
+ "stream": {
+ "name": "stream1",
+ "namespace": "performance_bottleneck",
+ "json_schema": {
+ "type": "object",
+ "properties": {
+ "field1": {
+ "type": "string"
+ },
+ "field2": {
+ "type": "string"
+ },
+ "field3": {
+ "type": "string"
+ },
+ "field4": {
+ "type": "string"
+ },
+ "field5": {
+ "type": "string"
+ }
+ }
+ },
+ "default_cursor_field": [],
+ "supported_sync_modes": ["full_refresh", "incremental"],
+ "source_defined_primary_key": [["field1"]]
+ },
+ "sync_mode": "full_refresh",
+ "primary_key": [["field1"]],
+ "cursor_field": ["field1"],
+ "destination_sync_mode": "append"
+ }
+ ]
+}
diff --git a/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/10m_catalog.json b/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-postgres/10m_catalog.json
similarity index 100%
rename from airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/10m_catalog.json
rename to airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-postgres/10m_catalog.json
diff --git a/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/1m_catalog.json b/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-postgres/1m_catalog.json
similarity index 100%
rename from airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/1m_catalog.json
rename to airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-postgres/1m_catalog.json
diff --git a/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/20m_catalog.json b/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-postgres/20m_catalog.json
similarity index 100%
rename from airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/20m_catalog.json
rename to airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-postgres/20m_catalog.json
diff --git a/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/bottleneck_stream1_catalog.json b/airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-postgres/bottleneck_stream1_catalog.json
similarity index 100%
rename from airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/bottleneck_stream1_catalog.json
rename to airbyte-integrations/connectors-performance/source-harness/src/main/resources/catalogs/source-postgres/bottleneck_stream1_catalog.json
From 2e77287ded8c97a06d6d9bfb06b2ad1386f03a3c Mon Sep 17 00:00:00 2001
From: Philip Corr
Date: Thu, 13 Apr 2023 21:58:17 +0100
Subject: [PATCH 057/187] change google analytics dockerfile order to pip
install source (#23082)
Co-authored-by: Marcos Marx
---
.../connectors/source-google-analytics-v4/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/airbyte-integrations/connectors/source-google-analytics-v4/Dockerfile b/airbyte-integrations/connectors/source-google-analytics-v4/Dockerfile
index 913bb4a146d6..b514787d3b96 100644
--- a/airbyte-integrations/connectors/source-google-analytics-v4/Dockerfile
+++ b/airbyte-integrations/connectors/source-google-analytics-v4/Dockerfile
@@ -5,9 +5,9 @@ RUN apt-get update && apt-get install -y bash && rm -rf /var/lib/apt/lists/*
WORKDIR /airbyte/integration_code
COPY setup.py ./
-RUN pip install .
COPY source_google_analytics_v4 ./source_google_analytics_v4
COPY main.py ./
+RUN pip install .
ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
From 3a741c187284b07aceb223888d517eef0fe598f8 Mon Sep 17 00:00:00 2001
From: Lake Mossman
Date: Thu, 13 Apr 2023 14:10:08 -0700
Subject: [PATCH 058/187] Always show client cert and key (#25131)
* make CA cert and key always show
* make same change for mysql
* update readmes
* update strict-encrypt version and expected spec
* fix expected spec for mysql strict encrypt
* auto-bump connector version
* manually bump seed for postgres and mysql
---------
Co-authored-by: Octavia Squidington III
---
.../src/main/resources/seed/oss_catalog.json | 55 ++++++++++---------
.../resources/seed/source_definitions.yaml | 6 +-
.../src/main/resources/seed/source_specs.yaml | 31 ++++++-----
.../source-alloydb-strict-encrypt/Dockerfile | 2 +-
.../connectors/source-alloydb/Dockerfile | 2 +-
.../source-mysql-strict-encrypt/Dockerfile | 2 +-
.../src/test/resources/expected_spec.json | 12 ++--
.../connectors/source-mysql/Dockerfile | 2 +-
.../source-mysql/src/main/resources/spec.json | 12 ++--
.../resources/expected_spec.json | 12 ++--
.../source-postgres-strict-encrypt/Dockerfile | 2 +-
.../expected_strict_encrypt_spec.json | 14 +++--
.../connectors/source-postgres/Dockerfile | 2 +-
.../src/main/resources/spec.json | 14 +++--
.../resources/expected_spec.json | 14 +++--
connectors.md | 6 +-
docs/integrations/sources/alloydb.md | 1 +
docs/integrations/sources/mysql.md | 1 +
docs/integrations/sources/postgres.md | 1 +
19 files changed, 112 insertions(+), 79 deletions(-)
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index 17c70e0a4100..e093b07a038b 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -8008,7 +8008,7 @@
"sourceDefinitionId": "1fa90628-2b9e-11ed-a261-0242ac120002",
"name": "AlloyDB for PostgreSQL",
"dockerRepository": "airbyte/source-alloydb",
- "dockerImageTag": "2.0.19",
+ "dockerImageTag": "2.0.21",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/alloydb",
"icon": "alloydb.svg",
"sourceType": "database",
@@ -8082,15 +8082,6 @@
"group": "advanced",
"pattern_descriptor": "key1=value1&key2=value2"
},
- "ssl": {
- "title": "Connect using SSL",
- "description": "Encrypt data using SSL. When activating SSL, please select one of the connection modes.",
- "type": "boolean",
- "default": false,
- "order": 7,
- "group": "security",
- "always_show": true
- },
"ssl_mode": {
"title": "SSL Modes",
"description": "SSL connection modes. \n Read more in the docs.",
@@ -8158,7 +8149,7 @@
},
"ca_certificate": {
"type": "string",
- "title": "CA certificate",
+ "title": "CA Certificate",
"description": "CA certificate",
"airbyte_secret": true,
"multiline": true,
@@ -8170,7 +8161,8 @@
"description": "Client certificate",
"airbyte_secret": true,
"multiline": true,
- "order": 2
+ "order": 2,
+ "always_show": true
},
"client_key": {
"type": "string",
@@ -8178,7 +8170,8 @@
"description": "Client key",
"airbyte_secret": true,
"multiline": true,
- "order": 3
+ "order": 3,
+ "always_show": true
},
"client_key_password": {
"type": "string",
@@ -8213,7 +8206,8 @@
"description": "Client certificate",
"airbyte_secret": true,
"multiline": true,
- "order": 2
+ "order": 2,
+ "always_show": true
},
"client_key": {
"type": "string",
@@ -8221,7 +8215,8 @@
"description": "Client key",
"airbyte_secret": true,
"multiline": true,
- "order": 3
+ "order": 3,
+ "always_show": true
},
"client_key_password": {
"type": "string",
@@ -18175,7 +18170,7 @@
"sourceDefinitionId": "435bb9a5-7887-4809-aa58-28c27df0d7ad",
"name": "MySQL",
"dockerRepository": "airbyte/source-mysql",
- "dockerImageTag": "2.0.14",
+ "dockerImageTag": "2.0.15",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/mysql",
"icon": "mysql.svg",
"sourceType": "database",
@@ -18286,7 +18281,8 @@
"description": "Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)",
"airbyte_secret": true,
"multiline": true,
- "order": 2
+ "order": 2,
+ "always_show": true
},
"client_key": {
"type": "string",
@@ -18294,7 +18290,8 @@
"description": "Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)",
"airbyte_secret": true,
"multiline": true,
- "order": 3
+ "order": 3,
+ "always_show": true
},
"client_key_password": {
"type": "string",
@@ -18328,7 +18325,8 @@
"description": "Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)",
"airbyte_secret": true,
"multiline": true,
- "order": 2
+ "order": 2,
+ "always_show": true
},
"client_key": {
"type": "string",
@@ -18336,7 +18334,8 @@
"description": "Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)",
"airbyte_secret": true,
"multiline": true,
- "order": 3
+ "order": 3,
+ "always_show": true
},
"client_key_password": {
"type": "string",
@@ -20897,7 +20896,7 @@
"sourceDefinitionId": "decd338e-5647-4c0b-adf4-da0e75f5a750",
"name": "Postgres",
"dockerRepository": "airbyte/source-postgres",
- "dockerImageTag": "2.0.20",
+ "dockerImageTag": "2.0.21",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/postgres",
"icon": "postgresql.svg",
"sourceType": "database",
@@ -21038,7 +21037,7 @@
},
"ca_certificate": {
"type": "string",
- "title": "CA certificate",
+ "title": "CA Certificate",
"description": "CA certificate",
"airbyte_secret": true,
"multiline": true,
@@ -21050,7 +21049,8 @@
"description": "Client certificate",
"airbyte_secret": true,
"multiline": true,
- "order": 2
+ "order": 2,
+ "always_show": true
},
"client_key": {
"type": "string",
@@ -21058,7 +21058,8 @@
"description": "Client key",
"airbyte_secret": true,
"multiline": true,
- "order": 3
+ "order": 3,
+ "always_show": true
},
"client_key_password": {
"type": "string",
@@ -21093,7 +21094,8 @@
"description": "Client certificate",
"airbyte_secret": true,
"multiline": true,
- "order": 2
+ "order": 2,
+ "always_show": true
},
"client_key": {
"type": "string",
@@ -21101,7 +21103,8 @@
"description": "Client key",
"airbyte_secret": true,
"multiline": true,
- "order": 3
+ "order": 3,
+ "always_show": true
},
"client_key_password": {
"type": "string",
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
index 7e2245624c80..9dab9915e409 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
@@ -45,7 +45,7 @@
- name: AlloyDB for PostgreSQL
sourceDefinitionId: 1fa90628-2b9e-11ed-a261-0242ac120002
dockerRepository: airbyte/source-alloydb
- dockerImageTag: 2.0.19
+ dockerImageTag: 2.0.21
documentationUrl: https://docs.airbyte.com/integrations/sources/alloydb
icon: alloydb.svg
sourceType: database
@@ -1282,7 +1282,7 @@
- name: MySQL
sourceDefinitionId: 435bb9a5-7887-4809-aa58-28c27df0d7ad
dockerRepository: airbyte/source-mysql
- dockerImageTag: 2.0.14
+ dockerImageTag: 2.0.15
documentationUrl: https://docs.airbyte.com/integrations/sources/mysql
icon: mysql.svg
sourceType: database
@@ -1602,7 +1602,7 @@
- name: Postgres
sourceDefinitionId: decd338e-5647-4c0b-adf4-da0e75f5a750
dockerRepository: airbyte/source-postgres
- dockerImageTag: 2.0.20
+ dockerImageTag: 2.0.21
documentationUrl: https://docs.airbyte.com/integrations/sources/postgres
icon: postgresql.svg
sourceType: database
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
index 8812fc090970..e0a0efe8e261 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
@@ -370,7 +370,7 @@
supportsNormalization: false
supportsDBT: false
supported_destination_sync_modes: []
-- dockerImage: "airbyte/source-alloydb:2.0.19"
+- dockerImage: "airbyte/source-alloydb:2.0.21"
spec:
documentationUrl: "https://docs.airbyte.com/integrations/sources/postgres"
connectionSpecification:
@@ -444,15 +444,6 @@
order: 6
group: "advanced"
pattern_descriptor: "key1=value1&key2=value2"
- ssl:
- title: "Connect using SSL"
- description: "Encrypt data using SSL. When activating SSL, please select\
- \ one of the connection modes."
- type: "boolean"
- default: false
- order: 7
- group: "security"
- always_show: true
ssl_mode:
title: "SSL Modes"
description: "SSL connection modes. \n Read more Client key as well)",
"airbyte_secret": true,
"multiline": true,
- "order": 2
+ "order": 2,
+ "always_show": true
},
"client_key": {
"type": "string",
@@ -110,7 +111,8 @@
"description": "Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)",
"airbyte_secret": true,
"multiline": true,
- "order": 3
+ "order": 3,
+ "always_show": true
},
"client_key_password": {
"type": "string",
@@ -145,7 +147,8 @@
"description": "Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)",
"airbyte_secret": true,
"multiline": true,
- "order": 2
+ "order": 2,
+ "always_show": true
},
"client_key": {
"type": "string",
@@ -153,7 +156,8 @@
"description": "Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)",
"airbyte_secret": true,
"multiline": true,
- "order": 3
+ "order": 3,
+ "always_show": true
},
"client_key_password": {
"type": "string",
diff --git a/airbyte-integrations/connectors/source-mysql/Dockerfile b/airbyte-integrations/connectors/source-mysql/Dockerfile
index 2416d370beeb..e90365b5ede8 100644
--- a/airbyte-integrations/connectors/source-mysql/Dockerfile
+++ b/airbyte-integrations/connectors/source-mysql/Dockerfile
@@ -16,6 +16,6 @@ ENV APPLICATION source-mysql
COPY --from=build /airbyte /airbyte
-LABEL io.airbyte.version=2.0.14
+LABEL io.airbyte.version=2.0.15
LABEL io.airbyte.name=airbyte/source-mysql
diff --git a/airbyte-integrations/connectors/source-mysql/src/main/resources/spec.json b/airbyte-integrations/connectors/source-mysql/src/main/resources/spec.json
index a68ac01958a2..cc949a89b20b 100644
--- a/airbyte-integrations/connectors/source-mysql/src/main/resources/spec.json
+++ b/airbyte-integrations/connectors/source-mysql/src/main/resources/spec.json
@@ -108,7 +108,8 @@
"description": "Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)",
"airbyte_secret": true,
"multiline": true,
- "order": 2
+ "order": 2,
+ "always_show": true
},
"client_key": {
"type": "string",
@@ -116,7 +117,8 @@
"description": "Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)",
"airbyte_secret": true,
"multiline": true,
- "order": 3
+ "order": 3,
+ "always_show": true
},
"client_key_password": {
"type": "string",
@@ -151,7 +153,8 @@
"description": "Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)",
"airbyte_secret": true,
"multiline": true,
- "order": 2
+ "order": 2,
+ "always_show": true
},
"client_key": {
"type": "string",
@@ -159,7 +162,8 @@
"description": "Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)",
"airbyte_secret": true,
"multiline": true,
- "order": 3
+ "order": 3,
+ "always_show": true
},
"client_key_password": {
"type": "string",
diff --git a/airbyte-integrations/connectors/source-mysql/src/test-integration/resources/expected_spec.json b/airbyte-integrations/connectors/source-mysql/src/test-integration/resources/expected_spec.json
index 65bb65bb2842..06a5e3a7e27b 100644
--- a/airbyte-integrations/connectors/source-mysql/src/test-integration/resources/expected_spec.json
+++ b/airbyte-integrations/connectors/source-mysql/src/test-integration/resources/expected_spec.json
@@ -108,7 +108,8 @@
"description": "Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)",
"airbyte_secret": true,
"multiline": true,
- "order": 2
+ "order": 2,
+ "always_show": true
},
"client_key": {
"type": "string",
@@ -116,7 +117,8 @@
"description": "Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)",
"airbyte_secret": true,
"multiline": true,
- "order": 3
+ "order": 3,
+ "always_show": true
},
"client_key_password": {
"type": "string",
@@ -151,7 +153,8 @@
"description": "Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)",
"airbyte_secret": true,
"multiline": true,
- "order": 2
+ "order": 2,
+ "always_show": true
},
"client_key": {
"type": "string",
@@ -159,7 +162,8 @@
"description": "Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)",
"airbyte_secret": true,
"multiline": true,
- "order": 3
+ "order": 3,
+ "always_show": true
},
"client_key_password": {
"type": "string",
diff --git a/airbyte-integrations/connectors/source-postgres-strict-encrypt/Dockerfile b/airbyte-integrations/connectors/source-postgres-strict-encrypt/Dockerfile
index ba29c4028e63..41ba6476feee 100644
--- a/airbyte-integrations/connectors/source-postgres-strict-encrypt/Dockerfile
+++ b/airbyte-integrations/connectors/source-postgres-strict-encrypt/Dockerfile
@@ -16,5 +16,5 @@ ENV APPLICATION source-postgres-strict-encrypt
COPY --from=build /airbyte /airbyte
-LABEL io.airbyte.version=2.0.20
+LABEL io.airbyte.version=2.0.21
LABEL io.airbyte.name=airbyte/source-postgres-strict-encrypt
diff --git a/airbyte-integrations/connectors/source-postgres-strict-encrypt/src/test-integration/resources/expected_strict_encrypt_spec.json b/airbyte-integrations/connectors/source-postgres-strict-encrypt/src/test-integration/resources/expected_strict_encrypt_spec.json
index e2adc76839cf..6f951ca4e515 100644
--- a/airbyte-integrations/connectors/source-postgres-strict-encrypt/src/test-integration/resources/expected_strict_encrypt_spec.json
+++ b/airbyte-integrations/connectors/source-postgres-strict-encrypt/src/test-integration/resources/expected_strict_encrypt_spec.json
@@ -141,7 +141,7 @@
},
"ca_certificate": {
"type": "string",
- "title": "CA certificate",
+ "title": "CA Certificate",
"description": "CA certificate",
"airbyte_secret": true,
"multiline": true,
@@ -153,7 +153,8 @@
"description": "Client certificate",
"airbyte_secret": true,
"multiline": true,
- "order": 2
+ "order": 2,
+ "always_show": true
},
"client_key": {
"type": "string",
@@ -161,7 +162,8 @@
"description": "Client key",
"airbyte_secret": true,
"multiline": true,
- "order": 3
+ "order": 3,
+ "always_show": true
},
"client_key_password": {
"type": "string",
@@ -197,7 +199,8 @@
"description": "Client certificate",
"airbyte_secret": true,
"multiline": true,
- "order": 2
+ "order": 2,
+ "always_show": true
},
"client_key": {
"type": "string",
@@ -205,7 +208,8 @@
"description": "Client key",
"airbyte_secret": true,
"multiline": true,
- "order": 3
+ "order": 3,
+ "always_show": true
},
"client_key_password": {
"type": "string",
diff --git a/airbyte-integrations/connectors/source-postgres/Dockerfile b/airbyte-integrations/connectors/source-postgres/Dockerfile
index 53b87901063a..687c8beb22a1 100644
--- a/airbyte-integrations/connectors/source-postgres/Dockerfile
+++ b/airbyte-integrations/connectors/source-postgres/Dockerfile
@@ -16,5 +16,5 @@ ENV APPLICATION source-postgres
COPY --from=build /airbyte /airbyte
-LABEL io.airbyte.version=2.0.20
+LABEL io.airbyte.version=2.0.21
LABEL io.airbyte.name=airbyte/source-postgres
diff --git a/airbyte-integrations/connectors/source-postgres/src/main/resources/spec.json b/airbyte-integrations/connectors/source-postgres/src/main/resources/spec.json
index 65d625ca4893..4bc0c37260a1 100644
--- a/airbyte-integrations/connectors/source-postgres/src/main/resources/spec.json
+++ b/airbyte-integrations/connectors/source-postgres/src/main/resources/spec.json
@@ -140,7 +140,7 @@
},
"ca_certificate": {
"type": "string",
- "title": "CA certificate",
+ "title": "CA Certificate",
"description": "CA certificate",
"airbyte_secret": true,
"multiline": true,
@@ -152,7 +152,8 @@
"description": "Client certificate",
"airbyte_secret": true,
"multiline": true,
- "order": 2
+ "order": 2,
+ "always_show": true
},
"client_key": {
"type": "string",
@@ -160,7 +161,8 @@
"description": "Client key",
"airbyte_secret": true,
"multiline": true,
- "order": 3
+ "order": 3,
+ "always_show": true
},
"client_key_password": {
"type": "string",
@@ -196,7 +198,8 @@
"description": "Client certificate",
"airbyte_secret": true,
"multiline": true,
- "order": 2
+ "order": 2,
+ "always_show": true
},
"client_key": {
"type": "string",
@@ -204,7 +207,8 @@
"description": "Client key",
"airbyte_secret": true,
"multiline": true,
- "order": 3
+ "order": 3,
+ "always_show": true
},
"client_key_password": {
"type": "string",
diff --git a/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_spec.json b/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_spec.json
index 7446b473dfc1..2b89eccbc1f8 100644
--- a/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_spec.json
+++ b/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_spec.json
@@ -140,7 +140,7 @@
},
"ca_certificate": {
"type": "string",
- "title": "CA certificate",
+ "title": "CA Certificate",
"description": "CA certificate",
"airbyte_secret": true,
"multiline": true,
@@ -152,7 +152,8 @@
"description": "Client certificate",
"airbyte_secret": true,
"multiline": true,
- "order": 2
+ "order": 2,
+ "always_show": true
},
"client_key": {
"type": "string",
@@ -160,7 +161,8 @@
"description": "Client key",
"airbyte_secret": true,
"multiline": true,
- "order": 3
+ "order": 3,
+ "always_show": true
},
"client_key_password": {
"type": "string",
@@ -196,7 +198,8 @@
"description": "Client certificate",
"airbyte_secret": true,
"multiline": true,
- "order": 2
+ "order": 2,
+ "always_show": true
},
"client_key": {
"type": "string",
@@ -204,7 +207,8 @@
"description": "Client key",
"airbyte_secret": true,
"multiline": true,
- "order": 3
+ "order": 3,
+ "always_show": true
},
"client_key_password": {
"type": "string",
diff --git a/connectors.md b/connectors.md
index faea2f66fa20..2d6130a18b16 100644
--- a/connectors.md
+++ b/connectors.md
@@ -9,7 +9,7 @@
| **Adjust** | | Source | airbyte/source-adjust:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/adjust) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-adjust) | `d3b7fa46-111b-419a-998a-d7f046f6d66d` |
| **Aha** | | Source | airbyte/source-aha:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/aha) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-aha) | `81ca39dc-4534-4dd2-b848-b0cfd2c11fce` |
| **Airtable** | | Source | airbyte/source-airtable:3.0.0 | generally_available | [link](https://docs.airbyte.com/integrations/sources/airtable) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-airtable) | `14c6e7ea-97ed-4f5e-a7b5-25e9a80b8212` |
-| **AlloyDB for PostgreSQL** | | Source | airbyte/source-alloydb:2.0.19 | generally_available | [link](https://docs.airbyte.com/integrations/sources/alloydb) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-alloydb) | `1fa90628-2b9e-11ed-a261-0242ac120002` |
+| **AlloyDB for PostgreSQL** | | Source | airbyte/source-alloydb:2.0.21 | generally_available | [link](https://docs.airbyte.com/integrations/sources/alloydb) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-alloydb) | `1fa90628-2b9e-11ed-a261-0242ac120002` |
| **Alpha Vantage** | | Source | airbyte/source-alpha-vantage:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/alpha-vantage) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-alpha-vantage) | `db385323-9333-4fec-bec3-9e0ca9326c90` |
| **Amazon Ads** | | Source | airbyte/source-amazon-ads:1.0.3 | generally_available | [link](https://docs.airbyte.com/integrations/sources/amazon-ads) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amazon-ads) | `c6b0a29e-1da9-4512-9002-7bfd0cba2246` |
| **Amazon SQS** | | Source | airbyte/source-amazon-sqs:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/amazon-sqs) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amazon-sqs) | `983fd355-6bf3-4709-91b5-37afa391eeb6` |
@@ -146,7 +146,7 @@
| **Monday** | | Source | airbyte/source-monday:0.2.3 | beta | [link](https://docs.airbyte.com/integrations/sources/monday) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-monday) | `80a54ea2-9959-4040-aac1-eee42423ec9b` |
| **MongoDb** | | Source | airbyte/source-mongodb-v2:0.1.19 | alpha | [link](https://docs.airbyte.com/integrations/sources/mongodb-v2) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mongodb-v2) | `b2e713cd-cc36-4c0a-b5bd-b47cb8a0561e` |
| **My Hours** | | Source | airbyte/source-my-hours:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/my-hours) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-my-hours) | `722ba4bf-06ec-45a4-8dd5-72e4a5cf3903` |
-| **MySQL** | | Source | airbyte/source-mysql:2.0.14 | beta | [link](https://docs.airbyte.com/integrations/sources/mysql) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mysql) | `435bb9a5-7887-4809-aa58-28c27df0d7ad` |
+| **MySQL** | | Source | airbyte/source-mysql:2.0.15 | beta | [link](https://docs.airbyte.com/integrations/sources/mysql) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mysql) | `435bb9a5-7887-4809-aa58-28c27df0d7ad` |
| **NASA** | | Source | airbyte/source-nasa:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/nasa) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-nasa) | `1a8667d7-7978-43cd-ba4d-d32cbd478971` |
| **Netsuite** | | Source | airbyte/source-netsuite:0.1.3 | alpha | [link](https://docs.airbyte.com/integrations/sources/netsuite) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-netsuite) | `4f2f093d-ce44-4121-8118-9d13b7bfccd0` |
| **New York Times** | | Source | airbyte/source-nytimes:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/nytimes) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-nytimes) | `0fae6a9a-04eb-44d4-96e1-e02d3dbc1d83` |
@@ -181,7 +181,7 @@
| **PokeAPI** | | Source | airbyte/source-pokeapi:0.1.5 | alpha | [link](https://docs.airbyte.com/integrations/sources/pokeapi) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-pokeapi) | `6371b14b-bc68-4236-bfbd-468e8df8e968` |
| **Polygon Stock API** | | Source | airbyte/source-polygon-stock-api:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/polygon-stock-api) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-polygon-stock-api) | `5807d72f-0abc-49f9-8fa5-ae820007032b` |
| **PostHog** | | Source | airbyte/source-posthog:0.1.9 | beta | [link](https://docs.airbyte.com/integrations/sources/posthog) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-posthog) | `af6d50ee-dddf-4126-a8ee-7faee990774f` |
-| **Postgres** | | Source | airbyte/source-postgres:2.0.20 | generally_available | [link](https://docs.airbyte.com/integrations/sources/postgres) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-postgres) | `decd338e-5647-4c0b-adf4-da0e75f5a750` |
+| **Postgres** | | Source | airbyte/source-postgres:2.0.21 | generally_available | [link](https://docs.airbyte.com/integrations/sources/postgres) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-postgres) | `decd338e-5647-4c0b-adf4-da0e75f5a750` |
| **Postmark App** | | Source | airbyte/source-postmarkapp:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/postmarkapp) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-postmarkapp) | `cde75ca1-1e28-4a0f-85bb-90c546de9f1f` |
| **PrestaShop** | | Source | airbyte/source-prestashop:0.3.1 | beta | [link](https://docs.airbyte.com/integrations/sources/prestashop) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-prestashop) | `d60a46d4-709f-4092-a6b7-2457f7d455f5` |
| **Primetric** | | Source | airbyte/source-primetric:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/primetric) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-primetric) | `f636c3c6-4077-45ac-b109-19fc62a283c1` |
diff --git a/docs/integrations/sources/alloydb.md b/docs/integrations/sources/alloydb.md
index 4ecdeb6e841d..46fad5b4ad33 100644
--- a/docs/integrations/sources/alloydb.md
+++ b/docs/integrations/sources/alloydb.md
@@ -321,6 +321,7 @@ According to Postgres [documentation](https://www.postgresql.org/docs/14/datatyp
| Version | Date | Pull Request | Subject |
|:--------|:-----------|:-----------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------|
+| 2.0.21 | 2022-04-12 | [25131](https://github.com/airbytehq/airbyte/pull/25131) | Make Client Certificate and Client Key always show |
| 2.0.19 | 2022-04-11 | [24656](https://github.com/airbytehq/airbyte/pull/24656) | CDC minor refactor |
| 2.0.17 | 2022-04-05 | [24622](https://github.com/airbytehq/airbyte/pull/24622) | Allow streams not in CDC publication to be synced in Full-refresh mode |
| 2.0.15 | 2022-04-04 | [24833](https://github.com/airbytehq/airbyte/pull/24833) | Disallow the "disable" SSL Modes; fix Debezium retry policy configuration |
diff --git a/docs/integrations/sources/mysql.md b/docs/integrations/sources/mysql.md
index c5e4d7c9d9f1..a4a4e29027b0 100644
--- a/docs/integrations/sources/mysql.md
+++ b/docs/integrations/sources/mysql.md
@@ -261,6 +261,7 @@ WHERE actor_definition_id ='435bb9a5-7887-4809-aa58-28c27df0d7ad' AND (configura
| Version | Date | Pull Request | Subject |
|:--------|:-----------|:-----------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| 2.0.15 | 2022-04-12 | [25131](https://github.com/airbytehq/airbyte/pull/25131) | Make Client Certificate and Client Key always show |
| 2.0.14 | 2022-04-11 | [24656](https://github.com/airbytehq/airbyte/pull/24656) | CDC minor refactor |
| 2.0.13 | 2022-04-06 | [24820](https://github.com/airbytehq/airbyte/pull/24820) | Fix data loss bug during an initial failed non-CDC incremental sync |
| 2.0.12 | 2022-04-04 | [24833](https://github.com/airbytehq/airbyte/pull/24833) | Fix Debezium retry policy configuration |
diff --git a/docs/integrations/sources/postgres.md b/docs/integrations/sources/postgres.md
index 47c206ba3fae..3be583679390 100644
--- a/docs/integrations/sources/postgres.md
+++ b/docs/integrations/sources/postgres.md
@@ -394,6 +394,7 @@ The root causes is that the WALs needed for the incremental sync has been remove
| Version | Date | Pull Request | Subject |
|:--------|:-----------|:---------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| 2.0.21 | 2022-04-12 | [25131](https://github.com/airbytehq/airbyte/pull/25131) | Make Client Certificate and Client Key always show |
| 2.0.20 | 2022-04-11 | [24859](https://github.com/airbytehq/airbyte/pull/24859) | Removed SSL toggle and rely on SSL mode dropdown to enable/disable SSL |
| 2.0.19 | 2022-04-11 | [24656](https://github.com/airbytehq/airbyte/pull/24656) | CDC minor refactor |
| 2.0.18 | 2022-04-06 | [24820](https://github.com/airbytehq/airbyte/pull/24820) | Fix data loss bug during an initial failed non-CDC incremental sync |
From c1dccdcfa43dbf5382e52905cd1e27c1bd7b7670 Mon Sep 17 00:00:00 2001
From: Ali Hassan <62539376+Alihassanc5@users.noreply.github.com>
Date: Fri, 14 Apr 2023 02:37:39 +0500
Subject: [PATCH 059/187] :bug: Source File: fix column data types for
numerical values (#23759)
* Fix column data types for numerical values
* Update unit tests
* Update Dockerfile version
* update dockerfile version for source-file-secure
* Update source-file in seed file
* Update doc
* Update source_specs.yaml
---------
Co-authored-by: Marcos Marx
---
.../init-oss/src/main/resources/seed/source_definitions.yaml | 2 +-
.../init-oss/src/main/resources/seed/source_specs.yaml | 2 +-
airbyte-integrations/connectors/source-file-secure/Dockerfile | 4 ++--
airbyte-integrations/connectors/source-file/Dockerfile | 2 +-
.../connectors/source-file/source_file/client.py | 2 +-
.../connectors/source-file/unit_tests/test_client.py | 4 +++-
docs/integrations/sources/file.md | 3 ++-
7 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
index 9dab9915e409..95461bdadb9e 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
@@ -621,7 +621,7 @@
- name: File (CSV, JSON, Excel, Feather, Parquet)
sourceDefinitionId: 778daa7c-feaf-4db6-96f3-70fd645acc77
dockerRepository: airbyte/source-file
- dockerImageTag: 0.2.37
+ dockerImageTag: 0.2.38
documentationUrl: https://docs.airbyte.com/integrations/sources/file
icon: file.svg
sourceType: file
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
index e0a0efe8e261..3b704feb87fe 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
@@ -4471,7 +4471,7 @@
supportsNormalization: false
supportsDBT: false
supported_destination_sync_modes: []
-- dockerImage: "airbyte/source-file:0.2.37"
+- dockerImage: "airbyte/source-file:0.2.38"
spec:
documentationUrl: "https://docs.airbyte.com/integrations/sources/file"
connectionSpecification:
diff --git a/airbyte-integrations/connectors/source-file-secure/Dockerfile b/airbyte-integrations/connectors/source-file-secure/Dockerfile
index f4885bf74965..94f23e7b4204 100644
--- a/airbyte-integrations/connectors/source-file-secure/Dockerfile
+++ b/airbyte-integrations/connectors/source-file-secure/Dockerfile
@@ -1,4 +1,4 @@
-FROM airbyte/source-file:0.2.37
+FROM airbyte/source-file:0.2.38
WORKDIR /airbyte/integration_code
COPY source_file_secure ./source_file_secure
@@ -9,5 +9,5 @@ RUN pip install .
ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
-LABEL io.airbyte.version=0.2.37
+LABEL io.airbyte.version=0.2.38
LABEL io.airbyte.name=airbyte/source-file-secure
diff --git a/airbyte-integrations/connectors/source-file/Dockerfile b/airbyte-integrations/connectors/source-file/Dockerfile
index 003ed907490f..108dcabda7b3 100644
--- a/airbyte-integrations/connectors/source-file/Dockerfile
+++ b/airbyte-integrations/connectors/source-file/Dockerfile
@@ -17,5 +17,5 @@ COPY source_file ./source_file
ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
-LABEL io.airbyte.version=0.2.37
+LABEL io.airbyte.version=0.2.38
LABEL io.airbyte.name=airbyte/source-file
diff --git a/airbyte-integrations/connectors/source-file/source_file/client.py b/airbyte-integrations/connectors/source-file/source_file/client.py
index 0aa186207f84..ee78740ebed2 100644
--- a/airbyte-integrations/connectors/source-file/source_file/client.py
+++ b/airbyte-integrations/connectors/source-file/source_file/client.py
@@ -360,7 +360,7 @@ def dtype_to_json_type(current_type: str, dtype) -> str:
return current_type
if dtype == object:
return "string"
- if dtype in number_types and (not current_type or current_type in number_types):
+ if dtype in number_types and (not current_type or current_type == "number"):
return "number"
if dtype == "bool" and (not current_type or current_type == "boolean"):
return "boolean"
diff --git a/airbyte-integrations/connectors/source-file/unit_tests/test_client.py b/airbyte-integrations/connectors/source-file/unit_tests/test_client.py
index 6425417c488b..ac6a0fb16ddf 100644
--- a/airbyte-integrations/connectors/source-file/unit_tests/test_client.py
+++ b/airbyte-integrations/connectors/source-file/unit_tests/test_client.py
@@ -89,8 +89,10 @@ def test_load_nested_json(client, absolute_path, test_files):
("string", "string", "string"),
("", object, "string"),
("", "int64", "number"),
+ ("", "float64", "number"),
("boolean", "bool", "boolean"),
- ("integer", "int64", "string"),
+ ("number", "int64", "number"),
+ ("number", "float64", "number"),
],
)
def test_dtype_to_json_type(client, current_type, dtype, expected):
diff --git a/docs/integrations/sources/file.md b/docs/integrations/sources/file.md
index 780075b1b29b..1d9d7c1668bf 100644
--- a/docs/integrations/sources/file.md
+++ b/docs/integrations/sources/file.md
@@ -190,10 +190,11 @@ In order to read large files from a remote location, this connector uses the [sm
| Version | Date | Pull Request | Subject |
|:--------|:-----------|:---------------------------------------------------------|:--------------------------------------------------------------------------------------------------------|
+| 0.2.38 | 2023-04-12 | [23759](https://github.com/airbytehq/airbyte/pull/23759) | Fix column data types for numerical values |
| 0.2.37 | 2023-04-06 | [24525](https://github.com/airbytehq/airbyte/pull/24525) | Fix examples in spec |
| 0.2.36 | 2023-03-27 | [24588](https://github.com/airbytehq/airbyte/pull/24588) | Remove traceback from user messages. |
| 0.2.35 | 2023-03-03 | [24278](https://github.com/airbytehq/airbyte/pull/24278) | Read only file header when checking connectivity; read only a single chunk when discovering the schema. |
-| 0.2.34 | 2023-03-03 | [23723](https://github.com/airbytehq/airbyte/pull/23723) | Update description in spec, make user-friendly error messages and docs. |
+| 0.2.34 | 2023-03-03 | [23723](https://github.com/airbytehq/airbyte/pull/23723) | Update description in spec, make user-friendly error messages and docs. |
| 0.2.33 | 2023-01-04 | [21012](https://github.com/airbytehq/airbyte/pull/21012) | Fix special characters bug |
| 0.2.32 | 2022-12-21 | [20740](https://github.com/airbytehq/airbyte/pull/20740) | Source File: increase SSH timeout to 60s |
| 0.2.31 | 2022-11-17 | [19567](https://github.com/airbytehq/airbyte/pull/19567) | Source File: bump 0.2.31 |
From acb99aa78df0d76e09df97323e44c6179094ddef Mon Sep 17 00:00:00 2001
From: Evan Tahler
Date: Thu, 13 Apr 2023 15:14:44 -0700
Subject: [PATCH 060/187] `connectors.md` gains Github labels for connector
issues (#25182)
* `connectors.md` gains github label
* Automated Commit - Formatting Changes
* comment
* Automated Commit - Formatting Changes
* Automated Change
---------
Co-authored-by: evantahler
---
.../src/main/resources/seed/oss_catalog.json | 2 +-
.../specs/ConnectorMarkdownGenerator.java | 20 +-
connectors.md | 676 +++++++++---------
3 files changed, 354 insertions(+), 344 deletions(-)
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index e093b07a038b..dfaef0496bce 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -12548,7 +12548,7 @@
"sourceDefinitionId": "778daa7c-feaf-4db6-96f3-70fd645acc77",
"name": "File (CSV, JSON, Excel, Feather, Parquet)",
"dockerRepository": "airbyte/source-file",
- "dockerImageTag": "0.2.37",
+ "dockerImageTag": "0.2.38",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/file",
"icon": "file.svg",
"sourceType": "file",
diff --git a/airbyte-config-oss/specs-oss/src/main/java/io/airbyte/configoss/specs/ConnectorMarkdownGenerator.java b/airbyte-config-oss/specs-oss/src/main/java/io/airbyte/configoss/specs/ConnectorMarkdownGenerator.java
index 78c359e21250..23cd849fd8c4 100644
--- a/airbyte-config-oss/specs-oss/src/main/java/io/airbyte/configoss/specs/ConnectorMarkdownGenerator.java
+++ b/airbyte-config-oss/specs-oss/src/main/java/io/airbyte/configoss/specs/ConnectorMarkdownGenerator.java
@@ -28,9 +28,10 @@ public class ConnectorMarkdownGenerator {
.desc("name for the generated catalog json file").build();
private static final Options OPTIONS = new Options().addOption(PROJECT_ROOT_OPTION).addOption(SEED_ROOT_OPTION).addOption(OUTPUT_FILENAME_OPTION);
- private static final String githubCodeBase = "https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors";
+ private static final String githubOrgProject = "airbytehq/airbyte";
+ private static final String githubCodeBase = "https://github.com/" + githubOrgProject + "/tree/master/airbyte-integrations/connectors";
private static final String githubIconBase =
- "https://raw.githubusercontent.com/airbytehq/airbyte/master/airbyte-config-oss/init-oss/src/main/resources/icons";
+ "https://raw.githubusercontent.com/" + githubOrgProject + " /master/airbyte-config-oss/init-oss/src/main/resources/icons";
private static final String iconSize = "30";
public static void main(final String[] args) throws Exception {
@@ -87,11 +88,12 @@ private String buildMarkdownTable(final List definitions, final String
headers.add("Image");
headers.add("Release Stage");
headers.add("Docs");
+ headers.add("Issues");
headers.add("Code");
headers.add("ID");
bodyParts.add("| " + String.join(" | ", headers) + " |");
- bodyParts.add("|----|----|----|----|----|----|----|----|");
+ bodyParts.add("|----|----|----|----|----|----|----|----|----|");
for (final JsonNode definition : definitions) {
final String name = definition.get("name").asText();
final String codeName = definition.get("dockerRepository").asText().split("/")[1];
@@ -102,11 +104,19 @@ private String buildMarkdownTable(final List definitions, final String
final String dockerImage = definition.get("dockerRepository").asText() + ":" + definition.get("dockerImageTag").asText();
final String releaseStage = definition.get("releaseStage") != null ? definition.get("releaseStage").asText() : "unknown";
final String documentationUrl = definition.get("documentationUrl") != null ? definition.get("documentationUrl").asText() : "";
- final String docLink = !documentationUrl.equals("") ? "[link](" + documentationUrl + ")" : "missing";
- final String codeLink = "[code](" + githubCodeBase + "/" + codeName + ")";
+ final String docLink = !documentationUrl.equals("") ? "[docs](" + documentationUrl + ")" : "missing";
+ // we are trying to build a string like connectors/destination/mysql. we need to determine if this
+ // is a source or destination, lower-case, and then append back some stuff
+ final String issuesLabel = "connectors/" + (codeName.contains("source-") ? "source" : "destination") + "/"
+ + codeName.replace("source-", "").replace("destination-", "");
+ final String issuesLink =
+ "[" + issuesLabel + "](https://github.com/" + githubOrgProject + "/issues?q=is:open+is:issue+label:" + issuesLabel + ")";
+ // https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/mysql
+ final String codeLink = "[" + codeName + "](" + githubCodeBase + "/" + codeName + ")";
final String id = "`" + definition.get(type.toLowerCase() + "DefinitionId").asText() + "`";
bodyParts.add("| **" + name + "** | " + iconLink + " | " + type + " | " + dockerImage + " | " + releaseStage + " | " + docLink + " | "
+ + issuesLink + " | "
+ codeLink + " | " + id + " |");
}
diff --git a/connectors.md b/connectors.md
index 2d6130a18b16..46bb1bb0dcdc 100644
--- a/connectors.md
+++ b/connectors.md
@@ -2,344 +2,344 @@
## Sources
-| Name | Icon | Type | Image | Release Stage | Docs | Code | ID |
-|----|----|----|----|----|----|----|----|
-| **AWS CloudTrail** | | Source | airbyte/source-aws-cloudtrail:0.1.5 | alpha | [link](https://docs.airbyte.com/integrations/sources/aws-cloudtrail) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-aws-cloudtrail) | `6ff047c0-f5d5-4ce5-8c81-204a830fa7e1` |
-| **ActiveCampaign** | | Source | airbyte/source-activecampaign:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/activecampaign) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-activecampaign) | `9f32dab3-77cb-45a1-9d33-347aa5fbe363` |
-| **Adjust** | | Source | airbyte/source-adjust:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/adjust) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-adjust) | `d3b7fa46-111b-419a-998a-d7f046f6d66d` |
-| **Aha** | | Source | airbyte/source-aha:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/aha) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-aha) | `81ca39dc-4534-4dd2-b848-b0cfd2c11fce` |
-| **Airtable** | | Source | airbyte/source-airtable:3.0.0 | generally_available | [link](https://docs.airbyte.com/integrations/sources/airtable) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-airtable) | `14c6e7ea-97ed-4f5e-a7b5-25e9a80b8212` |
-| **AlloyDB for PostgreSQL** | | Source | airbyte/source-alloydb:2.0.21 | generally_available | [link](https://docs.airbyte.com/integrations/sources/alloydb) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-alloydb) | `1fa90628-2b9e-11ed-a261-0242ac120002` |
-| **Alpha Vantage** | | Source | airbyte/source-alpha-vantage:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/alpha-vantage) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-alpha-vantage) | `db385323-9333-4fec-bec3-9e0ca9326c90` |
-| **Amazon Ads** | | Source | airbyte/source-amazon-ads:1.0.3 | generally_available | [link](https://docs.airbyte.com/integrations/sources/amazon-ads) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amazon-ads) | `c6b0a29e-1da9-4512-9002-7bfd0cba2246` |
-| **Amazon SQS** | | Source | airbyte/source-amazon-sqs:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/amazon-sqs) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amazon-sqs) | `983fd355-6bf3-4709-91b5-37afa391eeb6` |
-| **Amazon Seller Partner** | | Source | airbyte/source-amazon-seller-partner:1.0.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/amazon-seller-partner) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amazon-seller-partner) | `e55879a8-0ef8-4557-abcf-ab34c53ec460` |
-| **Amplitude** | | Source | airbyte/source-amplitude:0.2.0 | generally_available | [link](https://docs.airbyte.com/integrations/sources/amplitude) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amplitude) | `fa9f58c6-2d03-4237-aaa4-07d75e0c1396` |
-| **Apify Dataset** | | Source | airbyte/source-apify-dataset:0.1.11 | alpha | [link](https://docs.airbyte.com/integrations/sources/apify-dataset) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-apify-dataset) | `47f17145-fe20-4ef5-a548-e29b048adf84` |
-| **Appfollow** | | Source | airbyte/source-appfollow:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/appfollow) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-appfollow) | `b4375641-e270-41d3-9c20-4f9cecad87a8` |
-| **AppsFlyer** | | Source | airbyte/source-appsflyer:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/appsflyer) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-appsflyer) | `16447954-e6a8-4593-b140-43dea13bc457` |
-| **Appstore** | | Source | airbyte/source-appstore-singer:0.2.6 | alpha | [link](https://docs.airbyte.com/integrations/sources/appstore) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-appstore-singer) | `2af123bf-0aaf-4e0d-9784-cb497f23741a` |
-| **Asana** | | Source | airbyte/source-asana:0.1.5 | beta | [link](https://docs.airbyte.com/integrations/sources/asana) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-asana) | `d0243522-dccf-4978-8ba0-37ed47a0bdbf` |
-| **Ashby** | | Source | airbyte/source-ashby:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/ashby) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-ashby) | `4e8c9fa0-3634-499b-b948-11581b5c3efa` |
-| **Auth0** | | Source | airbyte/source-auth0:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/auth0) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-auth0) | `6c504e48-14aa-4221-9a72-19cf5ff1ae78` |
-| **Azure Blob Storage** | | Source | airbyte/source-azure-blob-storage:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/azure-blob-storage) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-azure-blob-storage) | `fdaaba68-4875-4ed9-8fcd-4ae1e0a25093` |
-| **Azure Table Storage** | | Source | airbyte/source-azure-table:0.1.3 | alpha | [link](https://docs.airbyte.com/integrations/sources/azure-table) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-azure-table) | `798ae795-5189-42b6-b64e-3cb91db93338` |
-| **Babelforce** | | Source | airbyte/source-babelforce:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/babelforce) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-babelforce) | `971c3e1e-78a5-411e-ad56-c4052b50876b` |
-| **BambooHR** | | Source | airbyte/source-bamboo-hr:0.2.2 | alpha | [link](https://docs.airbyte.com/integrations/sources/bamboo-hr) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-bamboo-hr) | `90916976-a132-4ce9-8bce-82a03dd58788` |
-| **BigCommerce** | | Source | airbyte/source-bigcommerce:0.1.10 | alpha | [link](https://docs.airbyte.com/integrations/sources/bigcommerce) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-bigcommerce) | `59c5501b-9f95-411e-9269-7143c939adbd` |
-| **BigQuery** | | Source | airbyte/source-bigquery:0.2.3 | alpha | [link](https://docs.airbyte.com/integrations/sources/bigquery) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-bigquery) | `bfd1ddf8-ae8a-4620-b1d7-55597d2ba08c` |
-| **Bing Ads** | | Source | airbyte/source-bing-ads:0.1.18 | generally_available | [link](https://docs.airbyte.com/integrations/sources/bing-ads) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-bing-ads) | `47f25999-dd5e-4636-8c39-e7cea2453331` |
-| **Braintree** | | Source | airbyte/source-braintree:0.1.4 | alpha | [link](https://docs.airbyte.com/integrations/sources/braintree) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-braintree) | `63cea06f-1c75-458d-88fe-ad48c7cb27fd` |
-| **Braze** | x | Source | airbyte/source-braze:0.1.3 | alpha | [link](https://docs.airbyte.io/integrations/sources/braze) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-braze) | `68b9c98e-0747-4c84-b05b-d30b47686725` |
-| **Breezometer** | | Source | airbyte/source-breezometer:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/breezometer) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-breezometer) | `7c37685e-8512-4901-addf-9afbef6c0de9` |
-| **CallRail** | | Source | airbyte/source-callrail:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/callrail) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-callrail) | `dc98a6ad-2dd1-47b6-9529-2ec35820f9c6` |
-| **Cart.com** | | Source | airbyte/source-cart:0.2.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/cart) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-cart) | `bb1a6d31-6879-4819-a2bd-3eed299ea8e2` |
-| **Chargebee** | | Source | airbyte/source-chargebee:0.2.3 | generally_available | [link](https://docs.airbyte.com/integrations/sources/chargebee) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-chargebee) | `686473f1-76d9-4994-9cc7-9b13da46147c` |
-| **Chargify** | | Source | airbyte/source-chargify:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/chargify) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-chargify) | `9b2d3607-7222-4709-9fa2-c2abdebbdd88` |
-| **Chartmogul** | | Source | airbyte/source-chartmogul:0.2.1 | beta | [link](https://docs.airbyte.com/integrations/sources/chartmogul) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-chartmogul) | `b6604cbd-1b12-4c08-8767-e140d0fb0877` |
-| **ClickHouse** | | Source | airbyte/source-clickhouse:0.1.17 | alpha | [link](https://docs.airbyte.com/integrations/sources/clickhouse) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-clickhouse) | `bad83517-5e54-4a3d-9b53-63e85fbd4d7c` |
-| **ClickUp** | | Source | airbyte/source-clickup-api:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/click-up) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-clickup-api) | `311a7a27-3fb5-4f7e-8265-5e4afe258b66` |
-| **Clockify** | | Source | airbyte/source-clockify:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/clockify) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-clockify) | `e71aae8a-5143-11ed-bdc3-0242ac120002` |
-| **Close.com** | | Source | airbyte/source-close-com:0.2.1 | beta | [link](https://docs.airbyte.com/integrations/sources/close-com) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-close-com) | `dfffecb7-9a13-43e9-acdc-b92af7997ca9` |
-| **Cockroachdb** | | Source | airbyte/source-cockroachdb:0.1.22 | alpha | [link](https://docs.airbyte.com/integrations/sources/cockroachdb) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-cockroachdb) | `9fa5862c-da7c-11eb-8d19-0242ac130003` |
-| **Coda** | | Source | airbyte/source-coda:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/coda) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-coda) | `27f910fd-f832-4b2e-bcfd-6ab342e434d8` |
-| **Coin API** | | Source | airbyte/source-coin-api:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/coin-api) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-coin-api) | `919984ef-53a2-479b-8ffe-9c1ddb9fc3f3` |
-| **CoinGecko Coins** | | Source | airbyte/source-coingecko-coins:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/coingecko-coins) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-coingecko-coins) | `9cdd4183-d0ba-40c3-aad3-6f46d4103974` |
-| **CoinMarketCap** | | Source | airbyte/source-coinmarketcap:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/coinmarketcap) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-coinmarketcap) | `239463f5-64bb-4d88-b4bd-18ce673fd572` |
-| **Commcare** | x | Source | airbyte/source-commcare:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/commcare) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-commcare) | `f39208dc-7e1c-48b8-919b-5006360cc27f` |
-| **Commercetools** | | Source | airbyte/source-commercetools:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/commercetools) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-commercetools) | `008b2e26-11a3-11ec-82a8-0242ac130003` |
-| **ConfigCat** | | Source | airbyte/source-configcat:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/configcat) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-configcat) | `4fd7565c-8b99-439b-80d0-2d965e1d958c` |
-| **Confluence** | | Source | airbyte/source-confluence:0.1.3 | beta | [link](https://docs.airbyte.com/integrations/sources/confluence) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-confluence) | `cf40a7f8-71f8-45ce-a7fa-fca053e4028c` |
-| **ConvertKit** | | Source | airbyte/source-convertkit:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/convertkit) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-convertkit) | `be9ee02f-6efe-4970-979b-95f797a37188` |
-| **Convex** | | Source | airbyte/source-convex:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/convex) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-convex) | `c332628c-f55c-4017-8222-378cfafda9b2` |
-| **Copper** | | Source | airbyte/source-copper:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/copper) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-copper) | `44f3002f-2df9-4f6d-b21c-02cd3b47d0dc` |
-| **Courier** | | Source | airbyte/source-courier:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/courier) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-courier) | `0541b2cd-2367-4986-b5f1-b79ff55439e4` |
-| **Customer.io** | | Source | farosai/airbyte-customer-io-source:0.1.23 | alpha | [link](https://docs.airbyte.com/integrations/sources/customer-io) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/airbyte-customer-io-source) | `c47d6804-8b98-449f-970a-5ddb5cb5d7aa` |
-| **DV 360** | | Source | airbyte/source-dv-360:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/dv-360) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-dv-360) | `1356e1d9-977f-4057-ad4b-65f25329cf61` |
-| **Datadog** | | Source | airbyte/source-datadog:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/datadog) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-datadog) | `1cfc30c7-82db-43f4-9fd7-ac1b42312cda` |
-| **Datascope** | | Source | airbyte/source-datascope:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/datascope) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-datascope) | `8e1ae2d2-4790-44d3-9d83-75b3fc3940ff` |
-| **Delighted** | | Source | airbyte/source-delighted:0.2.2 | beta | [link](https://docs.airbyte.com/integrations/sources/delighted) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-delighted) | `cc88c43f-6f53-4e8a-8c4d-b284baaf9635` |
-| **Dixa** | | Source | airbyte/source-dixa:0.1.3 | alpha | [link](https://docs.airbyte.com/integrations/sources/dixa) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-dixa) | `0b5c867e-1b12-4d02-ab74-97b2184ff6d7` |
-| **Dockerhub** | | Source | airbyte/source-dockerhub:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/dockerhub) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-dockerhub) | `72d405a3-56d8-499f-a571-667c03406e43` |
-| **Dremio** | | Source | airbyte/source-dremio:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/dremio) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-dremio) | `d99e9ace-8621-46c2-9144-76ae4751d64b` |
-| **Drift** | | Source | airbyte/source-drift:0.2.6 | alpha | [link](https://docs.airbyte.com/integrations/sources/drift) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-drift) | `445831eb-78db-4b1f-8f1f-0d96ad8739e2` |
-| **DynamoDB** | | Source | airbyte/source-dynamodb:0.1.2 | alpha | [link](https://docs.airbyte.com/integrations/sources/dynamodb) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-dynamodb) | `50401137-8871-4c5a-abb7-1f5fda35545a` |
-| **E2E Testing** | | Source | airbyte/source-e2e-test:2.1.4 | alpha | [link](https://docs.airbyte.com/integrations/sources/e2e-test) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-e2e-test) | `d53f9084-fa6b-4a5a-976c-5b8392f4ad8a` |
-| **Elasticsearch** | | Source | airbyte/source-elasticsearch:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/elasticsearch) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-elasticsearch) | `7cf88806-25f5-4e1a-b422-b2fa9e1b0090` |
-| **EmailOctopus** | | Source | airbyte/source-emailoctopus:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/emailoctopus) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-emailoctopus) | `46b25e70-c980-4590-a811-8deaf50ee09f` |
-| **Everhour** | | Source | airbyte/source-everhour:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/everhour) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-everhour) | `6babfc42-c734-4ef6-a817-6eca15f0f9b7` |
-| **Exchange Rates Api** | | Source | airbyte/source-exchange-rates:1.2.8 | alpha | [link](https://docs.airbyte.com/integrations/sources/exchangeratesapi) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-exchange-rates) | `e2b40e36-aa0e-4bed-b41b-bcea6fa348b1` |
-| **Facebook Marketing** | | Source | airbyte/source-facebook-marketing:0.3.2 | generally_available | [link](https://docs.airbyte.com/integrations/sources/facebook-marketing) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-facebook-marketing) | `e7778cfc-e97c-4458-9ecb-b4f2bba8946c` |
-| **Facebook Pages** | | Source | airbyte/source-facebook-pages:0.2.4 | beta | [link](https://docs.airbyte.com/integrations/sources/facebook-pages) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-facebook-pages) | `010eb12f-837b-4685-892d-0a39f76a98f5` |
-| **Fastbill** | | Source | airbyte/source-fastbill:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/fastbill) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-fastbill) | `eb3e9c1c-0467-4eb7-a172-5265e04ccd0a` |
-| **Fauna** | | Source | airbyte/source-fauna:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/fauna) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-fauna) | `3825db3e-c94b-42ac-bd53-b5a9507ace2b` |
-| **File (CSV, JSON, Excel, Feather, Parquet)** | | Source | airbyte/source-file:0.2.37 | generally_available | [link](https://docs.airbyte.com/integrations/sources/file) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-file) | `778daa7c-feaf-4db6-96f3-70fd645acc77` |
-| **Firebase Realtime Database** | x | Source | airbyte/source-firebase-realtime-database:0.1.0 | alpha | [link](https://docs.airbyte.io/integrations/sources/firebase-realtime-database) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-firebase-realtime-database) | `acb5f973-a565-441e-992f-4946f3e65662` |
-| **Firebolt** | | Source | airbyte/source-firebolt:0.2.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/firebolt) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-firebolt) | `6f2ac653-8623-43c4-8950-19218c7caf3d` |
-| **Flexport** | x | Source | airbyte/source-flexport:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/flexport) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-flexport) | `f95337f1-2ad1-4baf-922f-2ca9152de630` |
-| **Freshcaller** | | Source | airbyte/source-freshcaller:0.1.0 | unknown | [link](https://docs.airbyte.com/integrations/sources/freshcaller) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-freshcaller) | `8a5d48f6-03bb-4038-a942-a8d3f175cca3` |
-| **Freshdesk** | | Source | airbyte/source-freshdesk:3.0.2 | generally_available | [link](https://docs.airbyte.com/integrations/sources/freshdesk) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-freshdesk) | `ec4b9503-13cb-48ab-a4ab-6ade4be46567` |
-| **Freshsales** | | Source | airbyte/source-freshsales:0.1.4 | beta | [link](https://docs.airbyte.com/integrations/sources/freshsales) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-freshsales) | `eca08d79-7b92-4065-b7f3-79c14836ebe7` |
-| **Freshservice** | | Source | airbyte/source-freshservice:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/freshservice) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-freshservice) | `9bb85338-ea95-4c93-b267-6be89125b267` |
-| **GCS** | | Source | airbyte/source-gcs:0.1.0 | unknown | [link](https://docs.airbyte.com/integrations/sources/gcs) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-gcs) | `2a8c41ae-8c23-4be0-a73f-2ab10ca1a820` |
-| **GNews** | | Source | airbyte/source-gnews:0.1.3 | alpha | [link](https://docs.airbyte.com/integrations/sources/gnews) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-gnews) | `ce38aec4-5a77-439a-be29-9ca44fd4e811` |
-| **Genesys** | | Source | airbyte/source-genesys:0.1.0 | unknown | [link](https://docs.airbyte.com/integrations/sources/genesys) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-genesys) | `5ea4459a-8f1a-452a-830f-a65c38cc438d` |
-| **GetLago** | | Source | airbyte/source-getlago:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/getlago) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-getlago) | `e1a3866b-d3b2-43b6-b6d7-8c1ee4d7f53f` |
-| **GitHub** | | Source | airbyte/source-github:0.4.7 | generally_available | [link](https://docs.airbyte.com/integrations/sources/github) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-github) | `ef69ef6e-aa7f-4af1-a01d-ef775033524e` |
-| **Gitlab** | | Source | airbyte/source-gitlab:1.0.3 | beta | [link](https://docs.airbyte.com/integrations/sources/gitlab) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-gitlab) | `5e6175e5-68e1-4c17-bff9-56103bbb0d80` |
-| **Glassfrog** | | Source | airbyte/source-glassfrog:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/glassfrog) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-glassfrog) | `cf8ff320-6272-4faa-89e6-4402dc17e5d5` |
-| **GoCardless** | | Source | airbyte/source-gocardless:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/gocardless) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-gocardless) | `ba15ac82-5c6a-4fb2-bf24-925c23a1180c` |
-| **Gong** | | Source | airbyte/source-gong:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/gong) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-gong) | `32382e40-3b49-4b99-9c5c-4076501914e7` |
-| **Google Ads** | | Source | airbyte/source-google-ads:0.2.13 | generally_available | [link](https://docs.airbyte.com/integrations/sources/google-ads) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-ads) | `253487c0-2246-43ba-a21f-5116b20a2c50` |
-| **Google Analytics (Universal Analytics)** | | Source | airbyte/source-google-analytics-v4:0.1.34 | generally_available | [link](https://docs.airbyte.com/integrations/sources/google-analytics-v4) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-analytics-v4) | `eff3616a-f9c3-11eb-9a03-0242ac130003` |
-| **Google Analytics 4 (GA4)** | | Source | airbyte/source-google-analytics-data-api:0.1.3 | generally_available | [link](https://docs.airbyte.com/integrations/sources/google-analytics-data-api) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-analytics-data-api) | `3cc2eafd-84aa-4dca-93af-322d9dfeec1a` |
-| **Google Directory** | | Source | airbyte/source-google-directory:0.1.9 | alpha | [link](https://docs.airbyte.com/integrations/sources/google-directory) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-directory) | `d19ae824-e289-4b14-995a-0632eb46d246` |
-| **Google PageSpeed Insights** | | Source | airbyte/source-google-pagespeed-insights:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/google-pagespeed-insights) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-pagespeed-insights) | `1e9086ab-ddac-4c1d-aafd-ba43ff575fe4` |
-| **Google Search Console** | | Source | airbyte/source-google-search-console:0.1.22 | generally_available | [link](https://docs.airbyte.com/integrations/sources/google-search-console) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-search-console) | `eb4c9e00-db83-4d63-a386-39cfa91012a8` |
-| **Google Sheets** | | Source | airbyte/source-google-sheets:0.2.37 | generally_available | [link](https://docs.airbyte.com/integrations/sources/google-sheets) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-sheets) | `71607ba1-c0ac-4799-8049-7f4b90dd50f7` |
-| **Google Webfonts** | | Source | airbyte/source-google-webfonts:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/google-webfonts) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-webfonts) | `a68fbcde-b465-4ab3-b2a6-b0590a875835` |
-| **Google Workspace Admin Reports** | | Source | airbyte/source-google-workspace-admin-reports:0.1.8 | alpha | [link](https://docs.airbyte.com/integrations/sources/google-workspace-admin-reports) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-workspace-admin-reports) | `ed9dfefa-1bbc-419d-8c5e-4d78f0ef6734` |
-| **Greenhouse** | | Source | airbyte/source-greenhouse:0.3.1 | generally_available | [link](https://docs.airbyte.com/integrations/sources/greenhouse) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-greenhouse) | `59f1e50a-331f-4f09-b3e8-2e8d4d355f44` |
-| **Gridly** | | Source | airbyte/source-gridly:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/gridly) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-gridly) | `6cbea164-3237-433b-9abb-36d384ee4cbf` |
-| **Gutendex** | x | Source | airbyte/source-gutendex:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/gutendex) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-gutendex) | `bff9a277-e01d-420d-81ee-80f28a307318` |
-| **Harness** | | Source | farosai/airbyte-harness-source:0.1.23 | alpha | [link](https://docs.airbyte.com/integrations/sources/harness) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/airbyte-harness-source) | `6fe89830-d04d-401b-aad6-6552ffa5c4af` |
-| **Harvest** | | Source | airbyte/source-harvest:0.1.17 | generally_available | [link](https://docs.airbyte.com/integrations/sources/harvest) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-harvest) | `fe2b4084-3386-4d3b-9ad6-308f61a6f1e6` |
-| **Hellobaton** | | Source | airbyte/source-hellobaton:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/hellobaton) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-hellobaton) | `492b56d1-937c-462e-8076-21ad2031e784` |
-| **HubSpot** | | Source | airbyte/source-hubspot:0.6.0 | generally_available | [link](https://docs.airbyte.com/integrations/sources/hubspot) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-hubspot) | `36c891d9-4bd9-43ac-bad2-10e12756272c` |
-| **Hubplanner** | | Source | airbyte/source-hubplanner:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/hubplanner) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-hubplanner) | `8097ceb9-383f-42f6-9f92-d3fd4bcc7689` |
-| **IBM Db2** | | Source | airbyte/source-db2:0.1.19 | alpha | [link](https://docs.airbyte.com/integrations/sources/db2) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-db2) | `447e0381-3780-4b46-bb62-00a4e3c8b8e2` |
-| **IP2Whois** | | Source | airbyte/source-ip2whois:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/ip2whois) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-ip2whois) | `f23b7b7c-d705-49a3-9042-09add3b104a5` |
-| **Insightly** | | Source | airbyte/source-insightly:0.1.2 | alpha | [link](https://docs.airbyte.com/integrations/sources/insightly) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-insightly) | `38f84314-fe6a-4257-97be-a8dcd942d693` |
-| **Instagram** | | Source | airbyte/source-instagram:1.0.5 | generally_available | [link](https://docs.airbyte.com/integrations/sources/instagram) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-instagram) | `6acf6b55-4f1e-4fca-944e-1a3caef8aba8` |
-| **Instatus** | | Source | airbyte/source-instatus:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/instatus) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-instatus) | `1901024c-0249-45d0-bcac-31a954652927` |
-| **Intercom** | | Source | airbyte/source-intercom:0.2.0 | generally_available | [link](https://docs.airbyte.com/integrations/sources/intercom) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-intercom) | `d8313939-3782-41b0-be29-b3ca20d8dd3a` |
-| **Intruder** | | Source | airbyte/source-intruder:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/intruder) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-intruder) | `3d15163b-11d8-412f-b808-795c9b2c3a3a` |
-| **Iterable** | | Source | airbyte/source-iterable:0.1.27 | generally_available | [link](https://docs.airbyte.com/integrations/sources/iterable) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-iterable) | `2e875208-0c0b-4ee4-9e92-1cb3156ea799` |
-| **Jenkins** | | Source | farosai/airbyte-jenkins-source:0.1.23 | alpha | [link](https://docs.airbyte.com/integrations/sources/jenkins) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/airbyte-jenkins-source) | `d6f73702-d7a0-4e95-9758-b0fb1af0bfba` |
-| **Jira** | | Source | airbyte/source-jira:0.3.6 | beta | [link](https://docs.airbyte.com/integrations/sources/jira) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-jira) | `68e63de2-bb83-4c7e-93fa-a8a9051e3993` |
-| **K6 Cloud** | | Source | airbyte/source-k6-cloud:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/k6-cloud) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-k6-cloud) | `e300ece7-b073-43a3-852e-8aff36a57f13` |
-| **Kafka** | | Source | airbyte/source-kafka:0.2.3 | alpha | [link](https://docs.airbyte.com/integrations/sources/kafka) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-kafka) | `d917a47b-8537-4d0d-8c10-36a9928d4265` |
-| **Klarna** | | Source | airbyte/source-klarna:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/klarna) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-klarna) | `60c24725-00ae-490c-991d-55b78c3197e0` |
-| **Klaviyo** | | Source | airbyte/source-klaviyo:0.3.0 | generally_available | [link](https://docs.airbyte.com/integrations/sources/klaviyo) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-klaviyo) | `95e8cffd-b8c4-4039-968e-d32fb4a69bde` |
-| **Kustomer** | | Source | airbyte/source-kustomer-singer:0.1.2 | alpha | [link](https://docs.airbyte.com/integrations/sources/kustomer) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-kustomer-singer) | `cd06e646-31bf-4dc8-af48-cbc6530fcad3` |
-| **Kyriba** | | Source | airbyte/source-kyriba:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/kyriba) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-kyriba) | `547dc08e-ab51-421d-953b-8f3745201a8c` |
-| **LaunchDarkly** | | Source | airbyte/source-launchdarkly:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/launchdarkly) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-launchdarkly) | `f96bb511-5e3c-48fc-b408-547953cd81a4` |
-| **Lemlist** | x | Source | airbyte/source-lemlist:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/lemlist) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-lemlist) | `789f8e7a-2d28-11ec-8d3d-0242ac130003` |
-| **Lever Hiring** | | Source | airbyte/source-lever-hiring:0.1.3 | alpha | [link](https://docs.airbyte.com/integrations/sources/lever-hiring) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-lever-hiring) | `3981c999-bd7d-4afc-849b-e53dea90c948` |
-| **LinkedIn Ads** | | Source | airbyte/source-linkedin-ads:0.1.15 | generally_available | [link](https://docs.airbyte.com/integrations/sources/linkedin-ads) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-linkedin-ads) | `137ece28-5434-455c-8f34-69dc3782f451` |
-| **LinkedIn Pages** | | Source | airbyte/source-linkedin-pages:1.0.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/linkedin-pages) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-linkedin-pages) | `af54297c-e8f8-4d63-a00d-a94695acc9d3` |
-| **Linnworks** | | Source | airbyte/source-linnworks:0.1.5 | alpha | [link](https://docs.airbyte.com/integrations/sources/linnworks) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-linnworks) | `7b86879e-26c5-4ef6-a5ce-2be5c7b46d1e` |
-| **Lokalise** | | Source | airbyte/source-lokalise:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/lokalise) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-lokalise) | `45e0b135-615c-40ac-b38e-e65b0944197f` |
-| **Looker** | | Source | airbyte/source-looker:0.2.8 | alpha | [link](https://docs.airbyte.com/integrations/sources/looker) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-looker) | `00405b19-9768-4e0c-b1ae-9fc2ee2b2a8c` |
-| **Mailchimp** | | Source | airbyte/source-mailchimp:0.3.5 | generally_available | [link](https://docs.airbyte.com/integrations/sources/mailchimp) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mailchimp) | `b03a9f3e-22a5-11eb-adc1-0242ac120002` |
-| **MailerLite** | | Source | airbyte/source-mailerlite:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/mailerlite) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mailerlite) | `dc3b9003-2432-4e93-a7f4-4620b0f14674` |
-| **MailerSend** | | Source | airbyte/source-mailersend:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/mailersend) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mailersend) | `2707d529-3c04-46eb-9c7e-40d4038df6f7` |
-| **Mailgun** | | Source | airbyte/source-mailgun:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/mailgun) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mailgun) | `5b9cb09e-1003-4f9c-983d-5779d1b2cd51` |
-| **Mailjet Mail** | | Source | airbyte/source-mailjet-mail:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/mailjet-mail) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mailjet-mail) | `56582331-5de2-476b-b913-5798de77bbdf` |
-| **Mailjet SMS** | | Source | airbyte/source-mailjet-sms:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/mailjet-sms) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mailjet-sms) | `6ec2acea-7fd1-4378-b403-41a666e0c028` |
-| **Marketo** | | Source | airbyte/source-marketo:1.0.3 | generally_available | [link](https://docs.airbyte.com/integrations/sources/marketo) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-marketo) | `9e0556f4-69df-4522-a3fb-03264d36b348` |
-| **Metabase** | | Source | airbyte/source-metabase:0.3.1 | beta | [link](https://docs.airbyte.com/integrations/sources/metabase) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-metabase) | `c7cb421b-942e-4468-99ee-e369bcabaec5` |
-| **Microsoft Dataverse** | | Source | airbyte/source-microsoft-dataverse:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/microsoft-dataverse) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-microsoft-dataverse) | `9220e3de-3b60-4bb2-a46f-046d59ea235a` |
-| **Microsoft SQL Server (MSSQL)** | | Source | airbyte/source-mssql:1.0.11 | alpha | [link](https://docs.airbyte.com/integrations/sources/mssql) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mssql) | `b5ea17b1-f170-46dc-bc31-cc744ca984c1` |
-| **Microsoft teams** | | Source | airbyte/source-microsoft-teams:0.2.5 | alpha | [link](https://docs.airbyte.com/integrations/sources/microsoft-teams) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-microsoft-teams) | `eaf50f04-21dd-4620-913b-2a83f5635227` |
-| **Mixpanel** | | Source | airbyte/source-mixpanel:0.1.31 | generally_available | [link](https://docs.airbyte.com/integrations/sources/mixpanel) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mixpanel) | `12928b32-bf0a-4f1e-964f-07e12e37153a` |
-| **Monday** | | Source | airbyte/source-monday:0.2.3 | beta | [link](https://docs.airbyte.com/integrations/sources/monday) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-monday) | `80a54ea2-9959-4040-aac1-eee42423ec9b` |
-| **MongoDb** | | Source | airbyte/source-mongodb-v2:0.1.19 | alpha | [link](https://docs.airbyte.com/integrations/sources/mongodb-v2) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mongodb-v2) | `b2e713cd-cc36-4c0a-b5bd-b47cb8a0561e` |
-| **My Hours** | | Source | airbyte/source-my-hours:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/my-hours) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-my-hours) | `722ba4bf-06ec-45a4-8dd5-72e4a5cf3903` |
-| **MySQL** | | Source | airbyte/source-mysql:2.0.15 | beta | [link](https://docs.airbyte.com/integrations/sources/mysql) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mysql) | `435bb9a5-7887-4809-aa58-28c27df0d7ad` |
-| **NASA** | | Source | airbyte/source-nasa:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/nasa) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-nasa) | `1a8667d7-7978-43cd-ba4d-d32cbd478971` |
-| **Netsuite** | | Source | airbyte/source-netsuite:0.1.3 | alpha | [link](https://docs.airbyte.com/integrations/sources/netsuite) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-netsuite) | `4f2f093d-ce44-4121-8118-9d13b7bfccd0` |
-| **New York Times** | | Source | airbyte/source-nytimes:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/nytimes) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-nytimes) | `0fae6a9a-04eb-44d4-96e1-e02d3dbc1d83` |
-| **News API** | | Source | airbyte/source-news-api:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/news-api) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-news-api) | `df38991e-f35b-4af2-996d-36817f614587` |
-| **Newsdata** | x | Source | airbyte/source-newsdata:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/newsdata) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-newsdata) | `60bd11d8-2632-4daa-a688-b47336d32093` |
-| **Notion** | | Source | airbyte/source-notion:1.0.4 | generally_available | [link](https://docs.airbyte.com/integrations/sources/notion) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-notion) | `6e00b415-b02e-4160-bf02-58176a0ae687` |
-| **Okta** | | Source | airbyte/source-okta:0.1.14 | alpha | [link](https://docs.airbyte.com/integrations/sources/okta) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-okta) | `1d4fdb25-64fc-4569-92da-fcdca79a8372` |
-| **Omnisend** | | Source | airbyte/source-omnisend:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/omnisend) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-omnisend) | `e7f0c5e2-4815-48c4-90cf-f47124209835` |
-| **OneSignal** | | Source | airbyte/source-onesignal:1.0.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/onesignal) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-onesignal) | `bb6afd81-87d5-47e3-97c4-e2c2901b1cf8` |
-| **Open Exchange Rates** | | Source | airbyte/source-open-exchange-rates:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/open-exchange-rates) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-open-exchange-rates) | `77d5ca6b-d345-4dce-ba1e-1935a75778b8` |
-| **OpenWeather** | | Source | airbyte/source-openweather:0.1.6 | alpha | [link](https://docs.airbyte.com/integrations/sources/openweather) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-openweather) | `d8540a80-6120-485d-b7d6-272bca477d9b` |
-| **Opsgenie** | x | Source | airbyte/source-opsgenie:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/opsgenie) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-opsgenie) | `06bdb480-2598-40b8-8b0f-fc2e2d2abdda` |
-| **Oracle DB** | | Source | airbyte/source-oracle:0.3.24 | alpha | [link](https://docs.airbyte.com/integrations/sources/oracle) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-oracle) | `b39a7370-74c3-45a6-ac3a-380d48520a83` |
-| **Orb** | | Source | airbyte/source-orb:1.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/orb) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-orb) | `7f0455fb-4518-4ec0-b7a3-d808bf8081cc` |
-| **Orbit** | | Source | airbyte/source-orbit:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/orbit) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-orbit) | `95bcc041-1d1a-4c2e-8802-0ca5b1bfa36a` |
-| **Oura** | | Source | airbyte/source-oura:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/oura) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-oura) | `2bf6c581-bec5-4e32-891d-de33036bd631` |
-| **Outreach** | | Source | airbyte/source-outreach:0.2.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/outreach) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-outreach) | `3490c201-5d95-4783-b600-eaf07a4c7787` |
-| **PagerDuty** | | Source | farosai/airbyte-pagerduty-source:0.1.23 | alpha | [link](https://docs.airbyte.com/integrations/sources/pagerduty) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/airbyte-pagerduty-source) | `2817b3f0-04e4-4c7a-9f32-7a5e8a83db95` |
-| **Pardot** | | Source | airbyte/source-pardot:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/pardot) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-pardot) | `ad15c7ba-72a7-440b-af15-b9a963dc1a8a` |
-| **PartnerStack** | | Source | airbyte/source-partnerstack:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/partnerstack) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-partnerstack) | `d30fb809-6456-484d-8e2c-ee12e0f6888d` |
-| **Paypal Transaction** | | Source | airbyte/source-paypal-transaction:0.1.12 | generally_available | [link](https://docs.airbyte.com/integrations/sources/paypal-transaction) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-paypal-transaction) | `d913b0f2-cc51-4e55-a44c-8ba1697b9239` |
-| **Paystack** | | Source | airbyte/source-paystack:0.1.3 | beta | [link](https://docs.airbyte.com/integrations/sources/paystack) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-paystack) | `193bdcb8-1dd9-48d1-aade-91cadfd74f9b` |
-| **Pendo** | | Source | airbyte/source-pendo:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/pendo) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-pendo) | `b1ccb590-e84f-46c0-83a0-2048ccfffdae` |
-| **PersistIq** | | Source | airbyte/source-persistiq:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/persistiq) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-persistiq) | `3052c77e-8b91-47e2-97a0-a29a22794b4b` |
-| **Pexels API** | | Source | airbyte/source-pexels-api:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/pexels-api) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-pexels-api) | `69d9eb65-8026-47dc-baf1-e4bf67901fd6` |
-| **Pinterest** | | Source | airbyte/source-pinterest:0.2.4 | generally_available | [link](https://docs.airbyte.com/integrations/sources/pinterest) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-pinterest) | `5cb7e5fe-38c2-11ec-8d3d-0242ac130003` |
-| **Pipedrive** | | Source | airbyte/source-pipedrive:0.1.17 | beta | [link](https://docs.airbyte.com/integrations/sources/pipedrive) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-pipedrive) | `d8286229-c680-4063-8c59-23b9b391c700` |
-| **Pivotal Tracker** | | Source | airbyte/source-pivotal-tracker:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/pivotal-tracker) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-pivotal-tracker) | `d60f5393-f99e-4310-8d05-b1876820f40e` |
-| **Plaid** | | Source | airbyte/source-plaid:0.3.2 | alpha | [link](https://docs.airbyte.com/integrations/sources/plaid) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-plaid) | `ed799e2b-2158-4c66-8da4-b40fe63bc72a` |
-| **Plausible** | | Source | airbyte/source-plausible:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/plausible) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-plausible) | `603ba446-3d75-41d7-92f3-aba901f8b897` |
-| **Pocket** | | Source | airbyte/source-pocket:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/pocket) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-pocket) | `b0dd65f1-081f-4731-9c51-38e9e6aa0ebf` |
-| **PokeAPI** | | Source | airbyte/source-pokeapi:0.1.5 | alpha | [link](https://docs.airbyte.com/integrations/sources/pokeapi) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-pokeapi) | `6371b14b-bc68-4236-bfbd-468e8df8e968` |
-| **Polygon Stock API** | | Source | airbyte/source-polygon-stock-api:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/polygon-stock-api) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-polygon-stock-api) | `5807d72f-0abc-49f9-8fa5-ae820007032b` |
-| **PostHog** | | Source | airbyte/source-posthog:0.1.9 | beta | [link](https://docs.airbyte.com/integrations/sources/posthog) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-posthog) | `af6d50ee-dddf-4126-a8ee-7faee990774f` |
-| **Postgres** | | Source | airbyte/source-postgres:2.0.21 | generally_available | [link](https://docs.airbyte.com/integrations/sources/postgres) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-postgres) | `decd338e-5647-4c0b-adf4-da0e75f5a750` |
-| **Postmark App** | | Source | airbyte/source-postmarkapp:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/postmarkapp) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-postmarkapp) | `cde75ca1-1e28-4a0f-85bb-90c546de9f1f` |
-| **PrestaShop** | | Source | airbyte/source-prestashop:0.3.1 | beta | [link](https://docs.airbyte.com/integrations/sources/prestashop) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-prestashop) | `d60a46d4-709f-4092-a6b7-2457f7d455f5` |
-| **Primetric** | | Source | airbyte/source-primetric:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/primetric) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-primetric) | `f636c3c6-4077-45ac-b109-19fc62a283c1` |
-| **Public APIs** | | Source | airbyte/source-public-apis:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/public-apis) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-public-apis) | `a4617b39-3c14-44cd-a2eb-6e720f269235` |
-| **Punk API** | | Source | airbyte/source-punk-api:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/punk-api) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-punk-api) | `dbe9b7ae-7b46-4e44-a507-02a343cf7230` |
-| **PyPI** | | Source | airbyte/source-pypi:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/pypi) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-pypi) | `88ecd3a8-5f5b-11ed-9b6a-0242ac120002` |
-| **Qonto** | | Source | airbyte/source-qonto:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/public-qonto) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-qonto) | `f7c0b910-5f66-11ed-9b6a-0242ac120002` |
-| **Qualaroo** | | Source | airbyte/source-qualaroo:0.1.2 | alpha | [link](https://docs.airbyte.com/integrations/sources/qualaroo) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-qualaroo) | `b08e4776-d1de-4e80-ab5c-1e51dad934a2` |
-| **QuickBooks** | | Source | airbyte/source-quickbooks:2.0.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/quickbooks) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-quickbooks) | `cf9c4355-b171-4477-8f2d-6c5cc5fc8b7e` |
-| **RD Station Marketing** | | Source | airbyte/source-rd-station-marketing:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/rd-station-marketing) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-rd-station-marketing) | `fb141f29-be2a-450b-a4f2-2cd203a00f84` |
-| **RKI Covid** | | Source | airbyte/source-rki-covid:0.1.2 | alpha | [link](https://docs.airbyte.com/integrations/sources/rki-covid) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-rki-covid) | `d78e5de0-aa44-4744-aa4f-74c818ccfe19` |
-| **RSS** | | Source | airbyte/source-rss:0.1.0 | unknown | [link](https://docs.airbyte.com/integrations/sources/rss) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-rss) | `0efee448-6948-49e2-b786-17db50647908` |
-| **Railz** | | Source | airbyte/source-railz:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/railz) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-railz) | `9b6cc0c0-da81-4103-bbfd-5279e18a849a` |
-| **Recharge** | | Source | airbyte/source-recharge:0.2.9 | generally_available | [link](https://docs.airbyte.com/integrations/sources/recharge) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-recharge) | `45d2e135-2ede-49e1-939f-3e3ec357a65e` |
-| **Recreation** | | Source | airbyte/source-recreation:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/recreation) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-recreation) | `25d7535d-91e0-466a-aa7f-af81578be277` |
-| **Recruitee** | | Source | airbyte/source-recruitee:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/recruitee) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-recruitee) | `3b046ac7-d8d3-4eb3-b122-f96b2a16d8a8` |
-| **Recurly** | | Source | airbyte/source-recurly:0.4.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/recurly) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-recurly) | `cd42861b-01fc-4658-a8ab-5d11d0510f01` |
-| **Redshift** | | Source | airbyte/source-redshift:0.3.16 | alpha | [link](https://docs.airbyte.com/integrations/sources/redshift) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-redshift) | `e87ffa8e-a3b5-f69c-9076-6011339de1f6` |
-| **Reply.io** | | Source | airbyte/source-reply-io:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/reply-io) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-reply-io) | `8cc6537e-f8a6-423c-b960-e927af76116e` |
-| **Retently** | | Source | airbyte/source-retently:0.1.3 | alpha | [link](https://docs.airbyte.com/integrations/sources/retently) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-retently) | `db04ecd1-42e7-4115-9cec-95812905c626` |
-| **Rocket.chat** | | Source | airbyte/source-rocket-chat:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/rocket-chat) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-rocket-chat) | `921d9608-3915-450b-8078-0af18801ea1b` |
-| **S3** | | Source | airbyte/source-s3:2.0.4 | generally_available | [link](https://docs.airbyte.com/integrations/sources/s3) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-s3) | `69589781-7828-43c5-9f63-8925b1c1ccc2` |
-| **SAP Fieldglass** | | Source | airbyte/source-sap-fieldglass:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/sap-fieldglass) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-sap-fieldglass) | `ec5f3102-fb31-4916-99ae-864faf8e7e25` |
-| **SFTP** | | Source | airbyte/source-sftp:0.1.2 | alpha | [link](https://docs.airbyte.com/integrations/sources/sftp) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-sftp) | `a827c52e-791c-4135-a245-e233c5255199` |
-| **SFTP Bulk** | | Source | airbyte/source-sftp-bulk:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/sftp-bulk) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-sftp-bulk) | `31e3242f-dee7-4cdc-a4b8-8e06c5458517` |
-| **SalesLoft** | | Source | airbyte/source-salesloft:1.0.0 | beta | [link](https://docs.airbyte.com/integrations/sources/salesloft) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-salesloft) | `41991d12-d4b5-439e-afd0-260a31d4c53f` |
-| **Salesforce** | | Source | airbyte/source-salesforce:2.0.9 | generally_available | [link](https://docs.airbyte.com/integrations/sources/salesforce) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-salesforce) | `b117307c-14b6-41aa-9422-947e34922962` |
-| **Sample Data (Faker)** | | Source | airbyte/source-faker:2.0.3 | beta | [link](https://docs.airbyte.com/integrations/sources/faker) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-faker) | `dfd88b22-b603-4c3d-aad7-3701784586b1` |
-| **SearchMetrics** | | Source | airbyte/source-search-metrics:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/search-metrics) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-search-metrics) | `8d7ef552-2c0f-11ec-8d3d-0242ac130003` |
-| **Secoda** | | Source | airbyte/source-secoda:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/secoda) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-secoda) | `da9fc6b9-8059-4be0-b204-f56e22e4d52d` |
-| **Sendgrid** | | Source | airbyte/source-sendgrid:0.3.1 | generally_available | [link](https://docs.airbyte.com/integrations/sources/sendgrid) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-sendgrid) | `fbb5fbe2-16ad-4cf4-af7d-ff9d9c316c87` |
-| **Sendinblue** | | Source | airbyte/source-sendinblue:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/sendinblue) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-sendinblue) | `2e88fa20-a2f6-43cc-bba6-98a0a3f244fb` |
-| **Senseforce** | | Source | airbyte/source-senseforce:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/senseforce) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-senseforce) | `39de93cb-1511-473e-a673-5cbedb9436af` |
-| **Sentry** | | Source | airbyte/source-sentry:0.2.0 | generally_available | [link](https://docs.airbyte.com/integrations/sources/sentry) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-sentry) | `cdaf146a-9b75-49fd-9dd2-9d64a0bb4781` |
-| **Shopify** | | Source | airbyte/source-shopify:0.3.2 | alpha | [link](https://docs.airbyte.com/integrations/sources/shopify) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-shopify) | `9da77001-af33-4bcd-be46-6252bf9342b9` |
-| **Short.io** | | Source | airbyte/source-shortio:0.1.3 | alpha | [link](https://docs.airbyte.com/integrations/sources/shortio) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-shortio) | `2fed2292-5586-480c-af92-9944e39fe12d` |
-| **Slack** | | Source | airbyte/source-slack:0.1.25 | generally_available | [link](https://docs.airbyte.com/integrations/sources/slack) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-slack) | `c2281cee-86f9-4a86-bb48-d23286b4c7bd` |
-| **Smaily** | | Source | airbyte/source-smaily:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/smaily) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-smaily) | `781f8b1d-4e20-4842-a2c3-cd9b119d65fa` |
-| **SmartEngage** | | Source | airbyte/source-smartengage:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/smartengage) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-smartengage) | `21cc4a17-a011-4485-8a3e-e2341a91ab9f` |
-| **Smartsheets** | | Source | airbyte/source-smartsheets:1.0.0 | beta | [link](https://docs.airbyte.com/integrations/sources/smartsheets) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-smartsheets) | `374ebc65-6636-4ea0-925c-7d35999a8ffc` |
-| **Snapchat Marketing** | | Source | airbyte/source-snapchat-marketing:0.1.15 | generally_available | [link](https://docs.airbyte.com/integrations/sources/snapchat-marketing) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-snapchat-marketing) | `200330b2-ea62-4d11-ac6d-cfe3e3f8ab2b` |
-| **Snowflake** | | Source | airbyte/source-snowflake:0.1.34 | alpha | [link](https://docs.airbyte.com/integrations/sources/snowflake) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-snowflake) | `e2d65910-8c8b-40a1-ae7d-ee2416b2bfa2` |
-| **Sonar Cloud** | | Source | airbyte/source-sonar-cloud:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/sonar-cloud) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-sonar-cloud) | `3ab1d7d0-1577-4ab9-bcc4-1ff6a4c2c9f2` |
-| **SpaceX API** | | Source | airbyte/source-spacex-api:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/spacex-api) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-spacex-api) | `62235e65-af7a-4138-9130-0bda954eb6a8` |
-| **Square** | | Source | airbyte/source-square:0.2.2 | beta | [link](https://docs.airbyte.com/integrations/sources/square) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-square) | `77225a51-cd15-4a13-af02-65816bd0ecf4` |
-| **Statuspage** | | Source | airbyte/source-statuspage:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/statuspage) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-statuspage) | `74cbd708-46c3-4512-9c93-abd5c3e9a94d` |
-| **Strava** | | Source | airbyte/source-strava:0.1.4 | beta | [link](https://docs.airbyte.com/integrations/sources/strava) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-strava) | `7a4327c4-315a-11ec-8d3d-0242ac130003` |
-| **Stripe** | | Source | airbyte/source-stripe:3.1.0 | generally_available | [link](https://docs.airbyte.com/integrations/sources/stripe) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-stripe) | `e094cb9a-26de-4645-8761-65c0c425d1de` |
-| **SurveyCTO** | | Source | airbyte/source-surveycto:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/surveycto) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-surveycto) | `dd4632f4-15e0-4649-9b71-41719fb1fdee` |
-| **SurveyMonkey** | | Source | airbyte/source-surveymonkey:0.1.16 | generally_available | [link](https://docs.airbyte.com/integrations/sources/surveymonkey) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-surveymonkey) | `badc5925-0485-42be-8caa-b34096cb71b5` |
-| **SurveySparrow** | | Source | airbyte/source-survey-sparrow:0.2.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/survey-sparrow) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-survey-sparrow) | `4a4d887b-0f2d-4b33-ab7f-9b01b9072804` |
-| **TMDb** | | Source | airbyte/source-tmdb:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/tmdb) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-tmdb) | `6240848f-f795-45eb-8f5e-c7542822fc03` |
-| **TPLcentral** | x | Source | airbyte/source-tplcentral:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/tplcentral) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-tplcentral) | `f9b6c538-ee12-42fe-8d4b-0c10f5955417` |
-| **TVMaze Schedule** | | Source | airbyte/source-tvmaze-schedule:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/tvmaze-schedule) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-tvmaze-schedule) | `bd14b08f-9f43-400f-b2b6-7248b5c72561` |
-| **TalkDesk Explore** | | Source | airbyte/source-talkdesk-explore:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/talkdesk-explore) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-talkdesk-explore) | `f00d2cf4-3c28-499a-ba93-b50b6f26359e` |
-| **Tempo** | | Source | airbyte/source-tempo:0.3.1 | beta | [link](https://docs.airbyte.com/integrations/sources/tempo) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-tempo) | `d1aa448b-7c54-498e-ad95-263cbebcd2db` |
-| **The Guardian API** | | Source | airbyte/source-the-guardian-api:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/the-guardian-api) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-the-guardian-api) | `d42bd69f-6bf0-4d0b-9209-16231af07a92` |
-| **TiDB** | | Source | airbyte/source-tidb:0.2.4 | alpha | [link](https://docs.airbyte.com/integrations/sources/tidb) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-tidb) | `0dad1a35-ccf8-4d03-b73e-6788c00b13ae` |
-| **TikTok Marketing** | | Source | airbyte/source-tiktok-marketing:3.0.1 | generally_available | [link](https://docs.airbyte.com/integrations/sources/tiktok-marketing) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-tiktok-marketing) | `4bfac00d-ce15-44ff-95b9-9e3c3e8fbd35` |
-| **Timely** | | Source | airbyte/source-timely:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/timely) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-timely) | `bc617b5f-1b9e-4a2d-bebe-782fd454a771` |
-| **Todoist** | | Source | airbyte/source-todoist:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/todoist) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-todoist) | `7d272065-c316-4c04-a433-cd4ee143f83e` |
-| **Toggl** | | Source | airbyte/source-toggl:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/toggl) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-toggl) | `7e7c844f-2300-4342-b7d3-6dd7992593cd` |
-| **Trello** | | Source | airbyte/source-trello:0.3.1 | beta | [link](https://docs.airbyte.com/integrations/sources/trello) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-trello) | `8da67652-004c-11ec-9a03-0242ac130003` |
-| **TrustPilot** | | Source | airbyte/source-trustpilot:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/trustpilot) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-trustpilot) | `d7e23ea6-d741-4314-9209-a33c91a2e945` |
-| **Twilio** | | Source | airbyte/source-twilio:0.5.0 | generally_available | [link](https://docs.airbyte.com/integrations/sources/twilio) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-twilio) | `b9dc6155-672e-42ea-b10d-9f1f1fb95ab1` |
-| **Twilio Taskrouter** | | Source | airbyte/source-twilio-taskrouter:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/twilio-taskrouter) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-twilio-taskrouter) | `2446953b-b794-429b-a9b3-c821ba992a48` |
-| **Twitter** | | Source | airbyte/source-twitter:0.1.2 | beta | [link](https://docs.airbyte.com/integrations/sources/twitter) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-twitter) | `d7fd4f40-5e5a-4b8b-918f-a73077f8c131` |
-| **Tyntec SMS** | | Source | airbyte/source-tyntec-sms:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/tyntec-sms) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-tyntec-sms) | `3c0c3cd1-b3e0-464a-9090-d3ceb5f92346` |
-| **Typeform** | | Source | airbyte/source-typeform:0.1.12 | beta | [link](https://docs.airbyte.com/integrations/sources/typeform) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-typeform) | `e7eff203-90bf-43e5-a240-19ea3056c474` |
-| **US Census** | | Source | airbyte/source-us-census:0.1.2 | alpha | [link](https://docs.airbyte.com/integrations/sources/us-census) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-us-census) | `c4cfaeda-c757-489a-8aba-859fb08b6970` |
-| **Unleash** | | Source | airbyte/source-unleash:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/unleash) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-unleash) | `f77914a1-442b-4195-9355-8810a1f4ed3f` |
-| **Vantage** | | Source | airbyte/source-vantage:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/vantage) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-vantage) | `28ce1fbd-1e15-453f-aa9f-da6c4d928e92` |
-| **VictorOps** | | Source | farosai/airbyte-victorops-source:0.1.23 | alpha | [link](https://docs.airbyte.com/integrations/sources/victorops) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/airbyte-victorops-source) | `7e20ce3e-d820-4327-ad7a-88f3927fd97a` |
-| **Visma E-conomic** | | Source | airbyte/source-visma-economic:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/visma-economic) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-visma-economic) | `42495935-95de-4f5c-ae08-8fac00f6b308` |
-| **Vitally** | | Source | airbyte/source-vitally:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/vitally) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-vitally) | `6c6d8b0c-db35-4cd1-a7de-0ca8b080f5ac` |
-| **Waiteraid** | | Source | airbyte/source-waiteraid:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/waiteraid) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-waiteraid) | `03a53b13-794a-4d6b-8544-3b36ed8f3ce4` |
-| **Weatherstack** | | Source | airbyte/source-weatherstack:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/weatherstack) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-weatherstack) | `5db8292c-5f5a-11ed-9b6a-0242ac120002` |
-| **Webflow** | | Source | airbyte/source-webflow:0.1.2 | alpha | [link](https://docs.airbyte.com/integrations/sources/webflow) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-webflow) | `ef580275-d9a9-48bb-af5e-db0f5855be04` |
-| **Whisky Hunter** | | Source | airbyte/source-whisky-hunter:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/whisky-hunter) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-whisky-hunter) | `e65f84c0-7598-458a-bfac-f770c381ff5d` |
-| **Wikipedia Pageviews** | | Source | airbyte/source-wikipedia-pageviews:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/wikipedia-pageviews) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-wikipedia-pageviews) | `87c58f70-6f7a-4f70-aba5-bab1a458f5ba` |
-| **WooCommerce** | | Source | airbyte/source-woocommerce:0.2.2 | beta | [link](https://docs.airbyte.com/integrations/sources/woocommerce) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-woocommerce) | `2a2552ca-9f78-4c1c-9eb7-4d0dc66d72df` |
-| **WorkRamp** | | Source | airbyte/source-workramp:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/workramp) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-workramp) | `05b0bce2-4ec4-4534-bb1a-5d0127bd91b7` |
-| **Workable** | | Source | airbyte/source-workable:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/workable) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-workable) | `ef3c99c6-9e90-43c8-9517-926cfd978517` |
-| **Wrike** | | Source | airbyte/source-wrike:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/wrike) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-wrike) | `9c13f986-a13b-4988-b808-4705badf71c2` |
-| **Xero** | | Source | airbyte/source-xero:0.2.1 | beta | [link](https://docs.airbyte.com/integrations/sources/xero) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-xero) | `6fd1e833-dd6e-45ec-a727-ab917c5be892` |
-| **Yandex Metrica** | | Source | airbyte/source-yandex-metrica:1.0.0 | beta | [link](https://docs.airbyte.com/integrations/sources/yandex-metrica) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-yandex-metrica) | `7865dce4-2211-4f6a-88e5-9d0fe161afe7` |
-| **YouTube Analytics** | | Source | airbyte/source-youtube-analytics:0.1.3 | beta | [link](https://docs.airbyte.com/integrations/sources/youtube-analytics) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-youtube-analytics) | `afa734e4-3571-11ec-991a-1e0031268139` |
-| **Younium** | | Source | airbyte/source-younium:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/younium) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-younium) | `9c74c2d7-531a-4ebf-b6d8-6181f805ecdc` |
-| **Zapier Supported Storage** | | Source | airbyte/source-zapier-supported-storage:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/zendesk-supported-storage) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zapier-supported-storage) | `b8c917bc-7d1b-4828-995f-6726820266d0` |
-| **Zendesk Chat** | | Source | airbyte/source-zendesk-chat:0.1.14 | generally_available | [link](https://docs.airbyte.com/integrations/sources/zendesk-chat) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zendesk-chat) | `40d24d0f-b8f9-4fe0-9e6c-b06c0f3f45e4` |
-| **Zendesk Sell** | | Source | airbyte/source-zendesk-sell:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/zendesk-sell) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zendesk-sell) | `982eaa4c-bba1-4cce-a971-06a41f700b8c` |
-| **Zendesk Sunshine** | | Source | airbyte/source-zendesk-sunshine:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/zendesk-sunshine) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zendesk-sunshine) | `325e0640-e7b3-4e24-b823-3361008f603f` |
-| **Zendesk Support** | | Source | airbyte/source-zendesk-support:0.2.27 | generally_available | [link](https://docs.airbyte.com/integrations/sources/zendesk-support) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zendesk-support) | `79c1aa37-dae3-42ae-b333-d1c105477715` |
-| **Zendesk Talk** | | Source | airbyte/source-zendesk-talk:0.1.7 | generally_available | [link](https://docs.airbyte.com/integrations/sources/zendesk-talk) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zendesk-talk) | `c8630570-086d-4a40-99ae-ea5b18673071` |
-| **Zenefits** | | Source | airbyte/source-zenefits:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/zenefits) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zenefits) | `8baba53d-2fe3-4e33-bc85-210d0eb62884` |
-| **Zenloop** | | Source | airbyte/source-zenloop:0.1.6 | beta | [link](https://docs.airbyte.com/integrations/sources/zenloop) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zenloop) | `f1e4c7f6-db5c-4035-981f-d35ab4998794` |
-| **ZohoCRM** | | Source | airbyte/source-zoho-crm:0.1.2 | alpha | [link](https://docs.airbyte.com/integrations/sources/zoho-crm) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zoho-crm) | `4942d392-c7b5-4271-91f9-3b4f4e51eb3e` |
-| **Zoom** | | Source | airbyte/source-zoom:0.1.1 | alpha | [link](https://docs.airbyte.io/integrations/sources/zoom) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zoom) | `cbfd9856-1322-44fb-bcf1-0b39b7a8e92e` |
-| **Zuora** | | Source | airbyte/source-zuora:0.1.3 | alpha | [link](https://docs.airbyte.com/integrations/sources/zuora) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zuora) | `3dc3037c-5ce8-4661-adc2-f7a9e3c5ece5` |
-| **n8n** | | Source | airbyte/source-n8n:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/n8n) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-n8n) | `4a961f66-5e99-4430-8320-a73afe52f7a2` |
-| **xkcd** | | Source | airbyte/source-xkcd:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/xkcd) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-xkcd) | `80fddd16-17bd-4c0c-bf4a-80df7863fc9d` |
+| Name | Icon | Type | Image | Release Stage | Docs | Issues | Code | ID |
+|----|----|----|----|----|----|----|----|----|
+| **AWS CloudTrail** | | Source | airbyte/source-aws-cloudtrail:0.1.5 | alpha | [docs](https://docs.airbyte.com/integrations/sources/aws-cloudtrail) | [connectors/source/aws-cloudtrail](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/aws-cloudtrail) | [source-aws-cloudtrail](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-aws-cloudtrail) | `6ff047c0-f5d5-4ce5-8c81-204a830fa7e1` |
+| **ActiveCampaign** | | Source | airbyte/source-activecampaign:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/activecampaign) | [connectors/source/activecampaign](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/activecampaign) | [source-activecampaign](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-activecampaign) | `9f32dab3-77cb-45a1-9d33-347aa5fbe363` |
+| **Adjust** | | Source | airbyte/source-adjust:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/adjust) | [connectors/source/adjust](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/adjust) | [source-adjust](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-adjust) | `d3b7fa46-111b-419a-998a-d7f046f6d66d` |
+| **Aha** | | Source | airbyte/source-aha:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/aha) | [connectors/source/aha](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/aha) | [source-aha](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-aha) | `81ca39dc-4534-4dd2-b848-b0cfd2c11fce` |
+| **Airtable** | | Source | airbyte/source-airtable:3.0.0 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/airtable) | [connectors/source/airtable](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/airtable) | [source-airtable](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-airtable) | `14c6e7ea-97ed-4f5e-a7b5-25e9a80b8212` |
+| **AlloyDB for PostgreSQL** | | Source | airbyte/source-alloydb:2.0.21 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/alloydb) | [connectors/source/alloydb](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/alloydb) | [source-alloydb](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-alloydb) | `1fa90628-2b9e-11ed-a261-0242ac120002` |
+| **Alpha Vantage** | | Source | airbyte/source-alpha-vantage:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/alpha-vantage) | [connectors/source/alpha-vantage](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/alpha-vantage) | [source-alpha-vantage](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-alpha-vantage) | `db385323-9333-4fec-bec3-9e0ca9326c90` |
+| **Amazon Ads** | | Source | airbyte/source-amazon-ads:1.0.3 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/amazon-ads) | [connectors/source/amazon-ads](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/amazon-ads) | [source-amazon-ads](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amazon-ads) | `c6b0a29e-1da9-4512-9002-7bfd0cba2246` |
+| **Amazon SQS** | | Source | airbyte/source-amazon-sqs:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/amazon-sqs) | [connectors/source/amazon-sqs](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/amazon-sqs) | [source-amazon-sqs](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amazon-sqs) | `983fd355-6bf3-4709-91b5-37afa391eeb6` |
+| **Amazon Seller Partner** | | Source | airbyte/source-amazon-seller-partner:1.0.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/amazon-seller-partner) | [connectors/source/amazon-seller-partner](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/amazon-seller-partner) | [source-amazon-seller-partner](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amazon-seller-partner) | `e55879a8-0ef8-4557-abcf-ab34c53ec460` |
+| **Amplitude** | | Source | airbyte/source-amplitude:0.2.0 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/amplitude) | [connectors/source/amplitude](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/amplitude) | [source-amplitude](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-amplitude) | `fa9f58c6-2d03-4237-aaa4-07d75e0c1396` |
+| **Apify Dataset** | | Source | airbyte/source-apify-dataset:0.1.11 | alpha | [docs](https://docs.airbyte.com/integrations/sources/apify-dataset) | [connectors/source/apify-dataset](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/apify-dataset) | [source-apify-dataset](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-apify-dataset) | `47f17145-fe20-4ef5-a548-e29b048adf84` |
+| **Appfollow** | | Source | airbyte/source-appfollow:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/appfollow) | [connectors/source/appfollow](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/appfollow) | [source-appfollow](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-appfollow) | `b4375641-e270-41d3-9c20-4f9cecad87a8` |
+| **AppsFlyer** | | Source | airbyte/source-appsflyer:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/appsflyer) | [connectors/source/appsflyer](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/appsflyer) | [source-appsflyer](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-appsflyer) | `16447954-e6a8-4593-b140-43dea13bc457` |
+| **Appstore** | | Source | airbyte/source-appstore-singer:0.2.6 | alpha | [docs](https://docs.airbyte.com/integrations/sources/appstore) | [connectors/source/appstore-singer](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/appstore-singer) | [source-appstore-singer](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-appstore-singer) | `2af123bf-0aaf-4e0d-9784-cb497f23741a` |
+| **Asana** | | Source | airbyte/source-asana:0.1.5 | beta | [docs](https://docs.airbyte.com/integrations/sources/asana) | [connectors/source/asana](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/asana) | [source-asana](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-asana) | `d0243522-dccf-4978-8ba0-37ed47a0bdbf` |
+| **Ashby** | | Source | airbyte/source-ashby:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/ashby) | [connectors/source/ashby](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/ashby) | [source-ashby](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-ashby) | `4e8c9fa0-3634-499b-b948-11581b5c3efa` |
+| **Auth0** | | Source | airbyte/source-auth0:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/auth0) | [connectors/source/auth0](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/auth0) | [source-auth0](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-auth0) | `6c504e48-14aa-4221-9a72-19cf5ff1ae78` |
+| **Azure Blob Storage** | | Source | airbyte/source-azure-blob-storage:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/azure-blob-storage) | [connectors/source/azure-blob-storage](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/azure-blob-storage) | [source-azure-blob-storage](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-azure-blob-storage) | `fdaaba68-4875-4ed9-8fcd-4ae1e0a25093` |
+| **Azure Table Storage** | | Source | airbyte/source-azure-table:0.1.3 | alpha | [docs](https://docs.airbyte.com/integrations/sources/azure-table) | [connectors/source/azure-table](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/azure-table) | [source-azure-table](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-azure-table) | `798ae795-5189-42b6-b64e-3cb91db93338` |
+| **Babelforce** | | Source | airbyte/source-babelforce:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/babelforce) | [connectors/source/babelforce](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/babelforce) | [source-babelforce](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-babelforce) | `971c3e1e-78a5-411e-ad56-c4052b50876b` |
+| **BambooHR** | | Source | airbyte/source-bamboo-hr:0.2.2 | alpha | [docs](https://docs.airbyte.com/integrations/sources/bamboo-hr) | [connectors/source/bamboo-hr](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/bamboo-hr) | [source-bamboo-hr](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-bamboo-hr) | `90916976-a132-4ce9-8bce-82a03dd58788` |
+| **BigCommerce** | | Source | airbyte/source-bigcommerce:0.1.10 | alpha | [docs](https://docs.airbyte.com/integrations/sources/bigcommerce) | [connectors/source/bigcommerce](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/bigcommerce) | [source-bigcommerce](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-bigcommerce) | `59c5501b-9f95-411e-9269-7143c939adbd` |
+| **BigQuery** | | Source | airbyte/source-bigquery:0.2.3 | alpha | [docs](https://docs.airbyte.com/integrations/sources/bigquery) | [connectors/source/bigquery](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/bigquery) | [source-bigquery](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-bigquery) | `bfd1ddf8-ae8a-4620-b1d7-55597d2ba08c` |
+| **Bing Ads** | | Source | airbyte/source-bing-ads:0.1.18 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/bing-ads) | [connectors/source/bing-ads](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/bing-ads) | [source-bing-ads](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-bing-ads) | `47f25999-dd5e-4636-8c39-e7cea2453331` |
+| **Braintree** | | Source | airbyte/source-braintree:0.1.4 | alpha | [docs](https://docs.airbyte.com/integrations/sources/braintree) | [connectors/source/braintree](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/braintree) | [source-braintree](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-braintree) | `63cea06f-1c75-458d-88fe-ad48c7cb27fd` |
+| **Braze** | x | Source | airbyte/source-braze:0.1.3 | alpha | [docs](https://docs.airbyte.io/integrations/sources/braze) | [connectors/source/braze](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/braze) | [source-braze](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-braze) | `68b9c98e-0747-4c84-b05b-d30b47686725` |
+| **Breezometer** | | Source | airbyte/source-breezometer:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/breezometer) | [connectors/source/breezometer](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/breezometer) | [source-breezometer](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-breezometer) | `7c37685e-8512-4901-addf-9afbef6c0de9` |
+| **CallRail** | | Source | airbyte/source-callrail:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/callrail) | [connectors/source/callrail](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/callrail) | [source-callrail](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-callrail) | `dc98a6ad-2dd1-47b6-9529-2ec35820f9c6` |
+| **Cart.com** | | Source | airbyte/source-cart:0.2.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/cart) | [connectors/source/cart](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/cart) | [source-cart](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-cart) | `bb1a6d31-6879-4819-a2bd-3eed299ea8e2` |
+| **Chargebee** | | Source | airbyte/source-chargebee:0.2.3 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/chargebee) | [connectors/source/chargebee](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/chargebee) | [source-chargebee](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-chargebee) | `686473f1-76d9-4994-9cc7-9b13da46147c` |
+| **Chargify** | | Source | airbyte/source-chargify:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/chargify) | [connectors/source/chargify](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/chargify) | [source-chargify](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-chargify) | `9b2d3607-7222-4709-9fa2-c2abdebbdd88` |
+| **Chartmogul** | | Source | airbyte/source-chartmogul:0.2.1 | beta | [docs](https://docs.airbyte.com/integrations/sources/chartmogul) | [connectors/source/chartmogul](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/chartmogul) | [source-chartmogul](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-chartmogul) | `b6604cbd-1b12-4c08-8767-e140d0fb0877` |
+| **ClickHouse** | | Source | airbyte/source-clickhouse:0.1.17 | alpha | [docs](https://docs.airbyte.com/integrations/sources/clickhouse) | [connectors/source/clickhouse](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/clickhouse) | [source-clickhouse](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-clickhouse) | `bad83517-5e54-4a3d-9b53-63e85fbd4d7c` |
+| **ClickUp** | | Source | airbyte/source-clickup-api:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/click-up) | [connectors/source/clickup-api](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/clickup-api) | [source-clickup-api](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-clickup-api) | `311a7a27-3fb5-4f7e-8265-5e4afe258b66` |
+| **Clockify** | | Source | airbyte/source-clockify:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/clockify) | [connectors/source/clockify](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/clockify) | [source-clockify](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-clockify) | `e71aae8a-5143-11ed-bdc3-0242ac120002` |
+| **Close.com** | | Source | airbyte/source-close-com:0.2.1 | beta | [docs](https://docs.airbyte.com/integrations/sources/close-com) | [connectors/source/close-com](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/close-com) | [source-close-com](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-close-com) | `dfffecb7-9a13-43e9-acdc-b92af7997ca9` |
+| **Cockroachdb** | | Source | airbyte/source-cockroachdb:0.1.22 | alpha | [docs](https://docs.airbyte.com/integrations/sources/cockroachdb) | [connectors/source/cockroachdb](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/cockroachdb) | [source-cockroachdb](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-cockroachdb) | `9fa5862c-da7c-11eb-8d19-0242ac130003` |
+| **Coda** | | Source | airbyte/source-coda:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/coda) | [connectors/source/coda](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/coda) | [source-coda](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-coda) | `27f910fd-f832-4b2e-bcfd-6ab342e434d8` |
+| **Coin API** | | Source | airbyte/source-coin-api:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/coin-api) | [connectors/source/coin-api](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/coin-api) | [source-coin-api](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-coin-api) | `919984ef-53a2-479b-8ffe-9c1ddb9fc3f3` |
+| **CoinGecko Coins** | | Source | airbyte/source-coingecko-coins:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/coingecko-coins) | [connectors/source/coingecko-coins](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/coingecko-coins) | [source-coingecko-coins](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-coingecko-coins) | `9cdd4183-d0ba-40c3-aad3-6f46d4103974` |
+| **CoinMarketCap** | | Source | airbyte/source-coinmarketcap:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/coinmarketcap) | [connectors/source/coinmarketcap](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/coinmarketcap) | [source-coinmarketcap](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-coinmarketcap) | `239463f5-64bb-4d88-b4bd-18ce673fd572` |
+| **Commcare** | x | Source | airbyte/source-commcare:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/commcare) | [connectors/source/commcare](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/commcare) | [source-commcare](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-commcare) | `f39208dc-7e1c-48b8-919b-5006360cc27f` |
+| **Commercetools** | | Source | airbyte/source-commercetools:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/commercetools) | [connectors/source/commercetools](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/commercetools) | [source-commercetools](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-commercetools) | `008b2e26-11a3-11ec-82a8-0242ac130003` |
+| **ConfigCat** | | Source | airbyte/source-configcat:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/configcat) | [connectors/source/configcat](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/configcat) | [source-configcat](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-configcat) | `4fd7565c-8b99-439b-80d0-2d965e1d958c` |
+| **Confluence** | | Source | airbyte/source-confluence:0.1.3 | beta | [docs](https://docs.airbyte.com/integrations/sources/confluence) | [connectors/source/confluence](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/confluence) | [source-confluence](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-confluence) | `cf40a7f8-71f8-45ce-a7fa-fca053e4028c` |
+| **ConvertKit** | | Source | airbyte/source-convertkit:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/convertkit) | [connectors/source/convertkit](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/convertkit) | [source-convertkit](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-convertkit) | `be9ee02f-6efe-4970-979b-95f797a37188` |
+| **Convex** | | Source | airbyte/source-convex:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/convex) | [connectors/source/convex](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/convex) | [source-convex](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-convex) | `c332628c-f55c-4017-8222-378cfafda9b2` |
+| **Copper** | | Source | airbyte/source-copper:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/copper) | [connectors/source/copper](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/copper) | [source-copper](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-copper) | `44f3002f-2df9-4f6d-b21c-02cd3b47d0dc` |
+| **Courier** | | Source | airbyte/source-courier:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/courier) | [connectors/source/courier](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/courier) | [source-courier](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-courier) | `0541b2cd-2367-4986-b5f1-b79ff55439e4` |
+| **Customer.io** | | Source | farosai/airbyte-customer-io-source:0.1.23 | alpha | [docs](https://docs.airbyte.com/integrations/sources/customer-io) | [connectors/destination/airbyte-customer-io-source](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/airbyte-customer-io-source) | [airbyte-customer-io-source](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/airbyte-customer-io-source) | `c47d6804-8b98-449f-970a-5ddb5cb5d7aa` |
+| **DV 360** | | Source | airbyte/source-dv-360:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/dv-360) | [connectors/source/dv-360](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/dv-360) | [source-dv-360](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-dv-360) | `1356e1d9-977f-4057-ad4b-65f25329cf61` |
+| **Datadog** | | Source | airbyte/source-datadog:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/datadog) | [connectors/source/datadog](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/datadog) | [source-datadog](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-datadog) | `1cfc30c7-82db-43f4-9fd7-ac1b42312cda` |
+| **Datascope** | | Source | airbyte/source-datascope:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/datascope) | [connectors/source/datascope](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/datascope) | [source-datascope](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-datascope) | `8e1ae2d2-4790-44d3-9d83-75b3fc3940ff` |
+| **Delighted** | | Source | airbyte/source-delighted:0.2.2 | beta | [docs](https://docs.airbyte.com/integrations/sources/delighted) | [connectors/source/delighted](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/delighted) | [source-delighted](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-delighted) | `cc88c43f-6f53-4e8a-8c4d-b284baaf9635` |
+| **Dixa** | | Source | airbyte/source-dixa:0.1.3 | alpha | [docs](https://docs.airbyte.com/integrations/sources/dixa) | [connectors/source/dixa](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/dixa) | [source-dixa](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-dixa) | `0b5c867e-1b12-4d02-ab74-97b2184ff6d7` |
+| **Dockerhub** | | Source | airbyte/source-dockerhub:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/dockerhub) | [connectors/source/dockerhub](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/dockerhub) | [source-dockerhub](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-dockerhub) | `72d405a3-56d8-499f-a571-667c03406e43` |
+| **Dremio** | | Source | airbyte/source-dremio:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/dremio) | [connectors/source/dremio](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/dremio) | [source-dremio](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-dremio) | `d99e9ace-8621-46c2-9144-76ae4751d64b` |
+| **Drift** | | Source | airbyte/source-drift:0.2.6 | alpha | [docs](https://docs.airbyte.com/integrations/sources/drift) | [connectors/source/drift](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/drift) | [source-drift](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-drift) | `445831eb-78db-4b1f-8f1f-0d96ad8739e2` |
+| **DynamoDB** | | Source | airbyte/source-dynamodb:0.1.2 | alpha | [docs](https://docs.airbyte.com/integrations/sources/dynamodb) | [connectors/source/dynamodb](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/dynamodb) | [source-dynamodb](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-dynamodb) | `50401137-8871-4c5a-abb7-1f5fda35545a` |
+| **E2E Testing** | | Source | airbyte/source-e2e-test:2.1.4 | alpha | [docs](https://docs.airbyte.com/integrations/sources/e2e-test) | [connectors/source/e2e-test](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/e2e-test) | [source-e2e-test](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-e2e-test) | `d53f9084-fa6b-4a5a-976c-5b8392f4ad8a` |
+| **Elasticsearch** | | Source | airbyte/source-elasticsearch:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/elasticsearch) | [connectors/source/elasticsearch](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/elasticsearch) | [source-elasticsearch](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-elasticsearch) | `7cf88806-25f5-4e1a-b422-b2fa9e1b0090` |
+| **EmailOctopus** | | Source | airbyte/source-emailoctopus:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/emailoctopus) | [connectors/source/emailoctopus](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/emailoctopus) | [source-emailoctopus](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-emailoctopus) | `46b25e70-c980-4590-a811-8deaf50ee09f` |
+| **Everhour** | | Source | airbyte/source-everhour:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/everhour) | [connectors/source/everhour](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/everhour) | [source-everhour](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-everhour) | `6babfc42-c734-4ef6-a817-6eca15f0f9b7` |
+| **Exchange Rates Api** | | Source | airbyte/source-exchange-rates:1.2.8 | alpha | [docs](https://docs.airbyte.com/integrations/sources/exchangeratesapi) | [connectors/source/exchange-rates](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/exchange-rates) | [source-exchange-rates](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-exchange-rates) | `e2b40e36-aa0e-4bed-b41b-bcea6fa348b1` |
+| **Facebook Marketing** | | Source | airbyte/source-facebook-marketing:0.3.2 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/facebook-marketing) | [connectors/source/facebook-marketing](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/facebook-marketing) | [source-facebook-marketing](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-facebook-marketing) | `e7778cfc-e97c-4458-9ecb-b4f2bba8946c` |
+| **Facebook Pages** | | Source | airbyte/source-facebook-pages:0.2.4 | beta | [docs](https://docs.airbyte.com/integrations/sources/facebook-pages) | [connectors/source/facebook-pages](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/facebook-pages) | [source-facebook-pages](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-facebook-pages) | `010eb12f-837b-4685-892d-0a39f76a98f5` |
+| **Fastbill** | | Source | airbyte/source-fastbill:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/fastbill) | [connectors/source/fastbill](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/fastbill) | [source-fastbill](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-fastbill) | `eb3e9c1c-0467-4eb7-a172-5265e04ccd0a` |
+| **Fauna** | | Source | airbyte/source-fauna:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/fauna) | [connectors/source/fauna](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/fauna) | [source-fauna](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-fauna) | `3825db3e-c94b-42ac-bd53-b5a9507ace2b` |
+| **File (CSV, JSON, Excel, Feather, Parquet)** | | Source | airbyte/source-file:0.2.38 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/file) | [connectors/source/file](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/file) | [source-file](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-file) | `778daa7c-feaf-4db6-96f3-70fd645acc77` |
+| **Firebase Realtime Database** | x | Source | airbyte/source-firebase-realtime-database:0.1.0 | alpha | [docs](https://docs.airbyte.io/integrations/sources/firebase-realtime-database) | [connectors/source/firebase-realtime-database](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/firebase-realtime-database) | [source-firebase-realtime-database](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-firebase-realtime-database) | `acb5f973-a565-441e-992f-4946f3e65662` |
+| **Firebolt** | | Source | airbyte/source-firebolt:0.2.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/firebolt) | [connectors/source/firebolt](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/firebolt) | [source-firebolt](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-firebolt) | `6f2ac653-8623-43c4-8950-19218c7caf3d` |
+| **Flexport** | x | Source | airbyte/source-flexport:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/flexport) | [connectors/source/flexport](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/flexport) | [source-flexport](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-flexport) | `f95337f1-2ad1-4baf-922f-2ca9152de630` |
+| **Freshcaller** | | Source | airbyte/source-freshcaller:0.1.0 | unknown | [docs](https://docs.airbyte.com/integrations/sources/freshcaller) | [connectors/source/freshcaller](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/freshcaller) | [source-freshcaller](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-freshcaller) | `8a5d48f6-03bb-4038-a942-a8d3f175cca3` |
+| **Freshdesk** | | Source | airbyte/source-freshdesk:3.0.2 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/freshdesk) | [connectors/source/freshdesk](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/freshdesk) | [source-freshdesk](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-freshdesk) | `ec4b9503-13cb-48ab-a4ab-6ade4be46567` |
+| **Freshsales** | | Source | airbyte/source-freshsales:0.1.4 | beta | [docs](https://docs.airbyte.com/integrations/sources/freshsales) | [connectors/source/freshsales](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/freshsales) | [source-freshsales](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-freshsales) | `eca08d79-7b92-4065-b7f3-79c14836ebe7` |
+| **Freshservice** | | Source | airbyte/source-freshservice:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/freshservice) | [connectors/source/freshservice](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/freshservice) | [source-freshservice](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-freshservice) | `9bb85338-ea95-4c93-b267-6be89125b267` |
+| **GCS** | | Source | airbyte/source-gcs:0.1.0 | unknown | [docs](https://docs.airbyte.com/integrations/sources/gcs) | [connectors/source/gcs](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/gcs) | [source-gcs](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-gcs) | `2a8c41ae-8c23-4be0-a73f-2ab10ca1a820` |
+| **GNews** | | Source | airbyte/source-gnews:0.1.3 | alpha | [docs](https://docs.airbyte.com/integrations/sources/gnews) | [connectors/source/gnews](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/gnews) | [source-gnews](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-gnews) | `ce38aec4-5a77-439a-be29-9ca44fd4e811` |
+| **Genesys** | | Source | airbyte/source-genesys:0.1.0 | unknown | [docs](https://docs.airbyte.com/integrations/sources/genesys) | [connectors/source/genesys](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/genesys) | [source-genesys](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-genesys) | `5ea4459a-8f1a-452a-830f-a65c38cc438d` |
+| **GetLago** | | Source | airbyte/source-getlago:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/getlago) | [connectors/source/getlago](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/getlago) | [source-getlago](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-getlago) | `e1a3866b-d3b2-43b6-b6d7-8c1ee4d7f53f` |
+| **GitHub** | | Source | airbyte/source-github:0.4.7 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/github) | [connectors/source/github](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/github) | [source-github](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-github) | `ef69ef6e-aa7f-4af1-a01d-ef775033524e` |
+| **Gitlab** | | Source | airbyte/source-gitlab:1.0.3 | beta | [docs](https://docs.airbyte.com/integrations/sources/gitlab) | [connectors/source/gitlab](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/gitlab) | [source-gitlab](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-gitlab) | `5e6175e5-68e1-4c17-bff9-56103bbb0d80` |
+| **Glassfrog** | | Source | airbyte/source-glassfrog:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/glassfrog) | [connectors/source/glassfrog](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/glassfrog) | [source-glassfrog](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-glassfrog) | `cf8ff320-6272-4faa-89e6-4402dc17e5d5` |
+| **GoCardless** | | Source | airbyte/source-gocardless:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/gocardless) | [connectors/source/gocardless](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/gocardless) | [source-gocardless](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-gocardless) | `ba15ac82-5c6a-4fb2-bf24-925c23a1180c` |
+| **Gong** | | Source | airbyte/source-gong:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/gong) | [connectors/source/gong](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/gong) | [source-gong](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-gong) | `32382e40-3b49-4b99-9c5c-4076501914e7` |
+| **Google Ads** | | Source | airbyte/source-google-ads:0.2.13 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/google-ads) | [connectors/source/google-ads](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/google-ads) | [source-google-ads](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-ads) | `253487c0-2246-43ba-a21f-5116b20a2c50` |
+| **Google Analytics (Universal Analytics)** | | Source | airbyte/source-google-analytics-v4:0.1.34 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/google-analytics-v4) | [connectors/source/google-analytics-v4](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/google-analytics-v4) | [source-google-analytics-v4](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-analytics-v4) | `eff3616a-f9c3-11eb-9a03-0242ac130003` |
+| **Google Analytics 4 (GA4)** | | Source | airbyte/source-google-analytics-data-api:0.1.3 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/google-analytics-data-api) | [connectors/source/google-analytics-data-api](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/google-analytics-data-api) | [source-google-analytics-data-api](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-analytics-data-api) | `3cc2eafd-84aa-4dca-93af-322d9dfeec1a` |
+| **Google Directory** | | Source | airbyte/source-google-directory:0.1.9 | alpha | [docs](https://docs.airbyte.com/integrations/sources/google-directory) | [connectors/source/google-directory](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/google-directory) | [source-google-directory](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-directory) | `d19ae824-e289-4b14-995a-0632eb46d246` |
+| **Google PageSpeed Insights** | | Source | airbyte/source-google-pagespeed-insights:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/google-pagespeed-insights) | [connectors/source/google-pagespeed-insights](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/google-pagespeed-insights) | [source-google-pagespeed-insights](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-pagespeed-insights) | `1e9086ab-ddac-4c1d-aafd-ba43ff575fe4` |
+| **Google Search Console** | | Source | airbyte/source-google-search-console:0.1.22 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/google-search-console) | [connectors/source/google-search-console](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/google-search-console) | [source-google-search-console](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-search-console) | `eb4c9e00-db83-4d63-a386-39cfa91012a8` |
+| **Google Sheets** | | Source | airbyte/source-google-sheets:0.2.37 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/google-sheets) | [connectors/source/google-sheets](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/google-sheets) | [source-google-sheets](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-sheets) | `71607ba1-c0ac-4799-8049-7f4b90dd50f7` |
+| **Google Webfonts** | | Source | airbyte/source-google-webfonts:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/google-webfonts) | [connectors/source/google-webfonts](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/google-webfonts) | [source-google-webfonts](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-webfonts) | `a68fbcde-b465-4ab3-b2a6-b0590a875835` |
+| **Google Workspace Admin Reports** | | Source | airbyte/source-google-workspace-admin-reports:0.1.8 | alpha | [docs](https://docs.airbyte.com/integrations/sources/google-workspace-admin-reports) | [connectors/source/google-workspace-admin-reports](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/google-workspace-admin-reports) | [source-google-workspace-admin-reports](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-workspace-admin-reports) | `ed9dfefa-1bbc-419d-8c5e-4d78f0ef6734` |
+| **Greenhouse** | | Source | airbyte/source-greenhouse:0.3.1 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/greenhouse) | [connectors/source/greenhouse](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/greenhouse) | [source-greenhouse](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-greenhouse) | `59f1e50a-331f-4f09-b3e8-2e8d4d355f44` |
+| **Gridly** | | Source | airbyte/source-gridly:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/gridly) | [connectors/source/gridly](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/gridly) | [source-gridly](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-gridly) | `6cbea164-3237-433b-9abb-36d384ee4cbf` |
+| **Gutendex** | x | Source | airbyte/source-gutendex:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/gutendex) | [connectors/source/gutendex](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/gutendex) | [source-gutendex](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-gutendex) | `bff9a277-e01d-420d-81ee-80f28a307318` |
+| **Harness** | | Source | farosai/airbyte-harness-source:0.1.23 | alpha | [docs](https://docs.airbyte.com/integrations/sources/harness) | [connectors/destination/airbyte-harness-source](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/airbyte-harness-source) | [airbyte-harness-source](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/airbyte-harness-source) | `6fe89830-d04d-401b-aad6-6552ffa5c4af` |
+| **Harvest** | | Source | airbyte/source-harvest:0.1.17 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/harvest) | [connectors/source/harvest](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/harvest) | [source-harvest](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-harvest) | `fe2b4084-3386-4d3b-9ad6-308f61a6f1e6` |
+| **Hellobaton** | | Source | airbyte/source-hellobaton:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/hellobaton) | [connectors/source/hellobaton](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/hellobaton) | [source-hellobaton](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-hellobaton) | `492b56d1-937c-462e-8076-21ad2031e784` |
+| **HubSpot** | | Source | airbyte/source-hubspot:0.6.0 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/hubspot) | [connectors/source/hubspot](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/hubspot) | [source-hubspot](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-hubspot) | `36c891d9-4bd9-43ac-bad2-10e12756272c` |
+| **Hubplanner** | | Source | airbyte/source-hubplanner:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/hubplanner) | [connectors/source/hubplanner](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/hubplanner) | [source-hubplanner](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-hubplanner) | `8097ceb9-383f-42f6-9f92-d3fd4bcc7689` |
+| **IBM Db2** | | Source | airbyte/source-db2:0.1.19 | alpha | [docs](https://docs.airbyte.com/integrations/sources/db2) | [connectors/source/db2](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/db2) | [source-db2](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-db2) | `447e0381-3780-4b46-bb62-00a4e3c8b8e2` |
+| **IP2Whois** | | Source | airbyte/source-ip2whois:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/ip2whois) | [connectors/source/ip2whois](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/ip2whois) | [source-ip2whois](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-ip2whois) | `f23b7b7c-d705-49a3-9042-09add3b104a5` |
+| **Insightly** | | Source | airbyte/source-insightly:0.1.2 | alpha | [docs](https://docs.airbyte.com/integrations/sources/insightly) | [connectors/source/insightly](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/insightly) | [source-insightly](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-insightly) | `38f84314-fe6a-4257-97be-a8dcd942d693` |
+| **Instagram** | | Source | airbyte/source-instagram:1.0.5 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/instagram) | [connectors/source/instagram](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/instagram) | [source-instagram](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-instagram) | `6acf6b55-4f1e-4fca-944e-1a3caef8aba8` |
+| **Instatus** | | Source | airbyte/source-instatus:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/instatus) | [connectors/source/instatus](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/instatus) | [source-instatus](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-instatus) | `1901024c-0249-45d0-bcac-31a954652927` |
+| **Intercom** | | Source | airbyte/source-intercom:0.2.0 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/intercom) | [connectors/source/intercom](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/intercom) | [source-intercom](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-intercom) | `d8313939-3782-41b0-be29-b3ca20d8dd3a` |
+| **Intruder** | | Source | airbyte/source-intruder:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/intruder) | [connectors/source/intruder](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/intruder) | [source-intruder](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-intruder) | `3d15163b-11d8-412f-b808-795c9b2c3a3a` |
+| **Iterable** | | Source | airbyte/source-iterable:0.1.27 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/iterable) | [connectors/source/iterable](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/iterable) | [source-iterable](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-iterable) | `2e875208-0c0b-4ee4-9e92-1cb3156ea799` |
+| **Jenkins** | | Source | farosai/airbyte-jenkins-source:0.1.23 | alpha | [docs](https://docs.airbyte.com/integrations/sources/jenkins) | [connectors/destination/airbyte-jenkins-source](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/airbyte-jenkins-source) | [airbyte-jenkins-source](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/airbyte-jenkins-source) | `d6f73702-d7a0-4e95-9758-b0fb1af0bfba` |
+| **Jira** | | Source | airbyte/source-jira:0.3.6 | beta | [docs](https://docs.airbyte.com/integrations/sources/jira) | [connectors/source/jira](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/jira) | [source-jira](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-jira) | `68e63de2-bb83-4c7e-93fa-a8a9051e3993` |
+| **K6 Cloud** | | Source | airbyte/source-k6-cloud:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/k6-cloud) | [connectors/source/k6-cloud](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/k6-cloud) | [source-k6-cloud](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-k6-cloud) | `e300ece7-b073-43a3-852e-8aff36a57f13` |
+| **Kafka** | | Source | airbyte/source-kafka:0.2.3 | alpha | [docs](https://docs.airbyte.com/integrations/sources/kafka) | [connectors/source/kafka](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/kafka) | [source-kafka](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-kafka) | `d917a47b-8537-4d0d-8c10-36a9928d4265` |
+| **Klarna** | | Source | airbyte/source-klarna:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/klarna) | [connectors/source/klarna](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/klarna) | [source-klarna](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-klarna) | `60c24725-00ae-490c-991d-55b78c3197e0` |
+| **Klaviyo** | | Source | airbyte/source-klaviyo:0.3.0 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/klaviyo) | [connectors/source/klaviyo](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/klaviyo) | [source-klaviyo](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-klaviyo) | `95e8cffd-b8c4-4039-968e-d32fb4a69bde` |
+| **Kustomer** | | Source | airbyte/source-kustomer-singer:0.1.2 | alpha | [docs](https://docs.airbyte.com/integrations/sources/kustomer) | [connectors/source/kustomer-singer](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/kustomer-singer) | [source-kustomer-singer](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-kustomer-singer) | `cd06e646-31bf-4dc8-af48-cbc6530fcad3` |
+| **Kyriba** | | Source | airbyte/source-kyriba:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/kyriba) | [connectors/source/kyriba](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/kyriba) | [source-kyriba](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-kyriba) | `547dc08e-ab51-421d-953b-8f3745201a8c` |
+| **LaunchDarkly** | | Source | airbyte/source-launchdarkly:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/launchdarkly) | [connectors/source/launchdarkly](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/launchdarkly) | [source-launchdarkly](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-launchdarkly) | `f96bb511-5e3c-48fc-b408-547953cd81a4` |
+| **Lemlist** | x | Source | airbyte/source-lemlist:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/lemlist) | [connectors/source/lemlist](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/lemlist) | [source-lemlist](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-lemlist) | `789f8e7a-2d28-11ec-8d3d-0242ac130003` |
+| **Lever Hiring** | | Source | airbyte/source-lever-hiring:0.1.3 | alpha | [docs](https://docs.airbyte.com/integrations/sources/lever-hiring) | [connectors/source/lever-hiring](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/lever-hiring) | [source-lever-hiring](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-lever-hiring) | `3981c999-bd7d-4afc-849b-e53dea90c948` |
+| **LinkedIn Ads** | | Source | airbyte/source-linkedin-ads:0.1.15 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/linkedin-ads) | [connectors/source/linkedin-ads](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/linkedin-ads) | [source-linkedin-ads](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-linkedin-ads) | `137ece28-5434-455c-8f34-69dc3782f451` |
+| **LinkedIn Pages** | | Source | airbyte/source-linkedin-pages:1.0.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/linkedin-pages) | [connectors/source/linkedin-pages](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/linkedin-pages) | [source-linkedin-pages](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-linkedin-pages) | `af54297c-e8f8-4d63-a00d-a94695acc9d3` |
+| **Linnworks** | | Source | airbyte/source-linnworks:0.1.5 | alpha | [docs](https://docs.airbyte.com/integrations/sources/linnworks) | [connectors/source/linnworks](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/linnworks) | [source-linnworks](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-linnworks) | `7b86879e-26c5-4ef6-a5ce-2be5c7b46d1e` |
+| **Lokalise** | | Source | airbyte/source-lokalise:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/lokalise) | [connectors/source/lokalise](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/lokalise) | [source-lokalise](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-lokalise) | `45e0b135-615c-40ac-b38e-e65b0944197f` |
+| **Looker** | | Source | airbyte/source-looker:0.2.8 | alpha | [docs](https://docs.airbyte.com/integrations/sources/looker) | [connectors/source/looker](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/looker) | [source-looker](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-looker) | `00405b19-9768-4e0c-b1ae-9fc2ee2b2a8c` |
+| **Mailchimp** | | Source | airbyte/source-mailchimp:0.3.5 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/mailchimp) | [connectors/source/mailchimp](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/mailchimp) | [source-mailchimp](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mailchimp) | `b03a9f3e-22a5-11eb-adc1-0242ac120002` |
+| **MailerLite** | | Source | airbyte/source-mailerlite:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/mailerlite) | [connectors/source/mailerlite](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/mailerlite) | [source-mailerlite](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mailerlite) | `dc3b9003-2432-4e93-a7f4-4620b0f14674` |
+| **MailerSend** | | Source | airbyte/source-mailersend:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/mailersend) | [connectors/source/mailersend](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/mailersend) | [source-mailersend](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mailersend) | `2707d529-3c04-46eb-9c7e-40d4038df6f7` |
+| **Mailgun** | | Source | airbyte/source-mailgun:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/mailgun) | [connectors/source/mailgun](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/mailgun) | [source-mailgun](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mailgun) | `5b9cb09e-1003-4f9c-983d-5779d1b2cd51` |
+| **Mailjet Mail** | | Source | airbyte/source-mailjet-mail:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/mailjet-mail) | [connectors/source/mailjet-mail](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/mailjet-mail) | [source-mailjet-mail](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mailjet-mail) | `56582331-5de2-476b-b913-5798de77bbdf` |
+| **Mailjet SMS** | | Source | airbyte/source-mailjet-sms:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/mailjet-sms) | [connectors/source/mailjet-sms](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/mailjet-sms) | [source-mailjet-sms](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mailjet-sms) | `6ec2acea-7fd1-4378-b403-41a666e0c028` |
+| **Marketo** | | Source | airbyte/source-marketo:1.0.3 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/marketo) | [connectors/source/marketo](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/marketo) | [source-marketo](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-marketo) | `9e0556f4-69df-4522-a3fb-03264d36b348` |
+| **Metabase** | | Source | airbyte/source-metabase:0.3.1 | beta | [docs](https://docs.airbyte.com/integrations/sources/metabase) | [connectors/source/metabase](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/metabase) | [source-metabase](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-metabase) | `c7cb421b-942e-4468-99ee-e369bcabaec5` |
+| **Microsoft Dataverse** | | Source | airbyte/source-microsoft-dataverse:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/microsoft-dataverse) | [connectors/source/microsoft-dataverse](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/microsoft-dataverse) | [source-microsoft-dataverse](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-microsoft-dataverse) | `9220e3de-3b60-4bb2-a46f-046d59ea235a` |
+| **Microsoft SQL Server (MSSQL)** | | Source | airbyte/source-mssql:1.0.11 | alpha | [docs](https://docs.airbyte.com/integrations/sources/mssql) | [connectors/source/mssql](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/mssql) | [source-mssql](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mssql) | `b5ea17b1-f170-46dc-bc31-cc744ca984c1` |
+| **Microsoft teams** | | Source | airbyte/source-microsoft-teams:0.2.5 | alpha | [docs](https://docs.airbyte.com/integrations/sources/microsoft-teams) | [connectors/source/microsoft-teams](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/microsoft-teams) | [source-microsoft-teams](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-microsoft-teams) | `eaf50f04-21dd-4620-913b-2a83f5635227` |
+| **Mixpanel** | | Source | airbyte/source-mixpanel:0.1.31 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/mixpanel) | [connectors/source/mixpanel](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/mixpanel) | [source-mixpanel](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mixpanel) | `12928b32-bf0a-4f1e-964f-07e12e37153a` |
+| **Monday** | | Source | airbyte/source-monday:0.2.3 | beta | [docs](https://docs.airbyte.com/integrations/sources/monday) | [connectors/source/monday](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/monday) | [source-monday](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-monday) | `80a54ea2-9959-4040-aac1-eee42423ec9b` |
+| **MongoDb** | | Source | airbyte/source-mongodb-v2:0.1.19 | alpha | [docs](https://docs.airbyte.com/integrations/sources/mongodb-v2) | [connectors/source/mongodb-v2](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/mongodb-v2) | [source-mongodb-v2](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mongodb-v2) | `b2e713cd-cc36-4c0a-b5bd-b47cb8a0561e` |
+| **My Hours** | | Source | airbyte/source-my-hours:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/my-hours) | [connectors/source/my-hours](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/my-hours) | [source-my-hours](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-my-hours) | `722ba4bf-06ec-45a4-8dd5-72e4a5cf3903` |
+| **MySQL** | | Source | airbyte/source-mysql:2.0.15 | beta | [docs](https://docs.airbyte.com/integrations/sources/mysql) | [connectors/source/mysql](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/mysql) | [source-mysql](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-mysql) | `435bb9a5-7887-4809-aa58-28c27df0d7ad` |
+| **NASA** | | Source | airbyte/source-nasa:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/nasa) | [connectors/source/nasa](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/nasa) | [source-nasa](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-nasa) | `1a8667d7-7978-43cd-ba4d-d32cbd478971` |
+| **Netsuite** | | Source | airbyte/source-netsuite:0.1.3 | alpha | [docs](https://docs.airbyte.com/integrations/sources/netsuite) | [connectors/source/netsuite](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/netsuite) | [source-netsuite](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-netsuite) | `4f2f093d-ce44-4121-8118-9d13b7bfccd0` |
+| **New York Times** | | Source | airbyte/source-nytimes:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/nytimes) | [connectors/source/nytimes](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/nytimes) | [source-nytimes](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-nytimes) | `0fae6a9a-04eb-44d4-96e1-e02d3dbc1d83` |
+| **News API** | | Source | airbyte/source-news-api:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/news-api) | [connectors/source/news-api](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/news-api) | [source-news-api](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-news-api) | `df38991e-f35b-4af2-996d-36817f614587` |
+| **Newsdata** | x | Source | airbyte/source-newsdata:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/newsdata) | [connectors/source/newsdata](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/newsdata) | [source-newsdata](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-newsdata) | `60bd11d8-2632-4daa-a688-b47336d32093` |
+| **Notion** | | Source | airbyte/source-notion:1.0.4 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/notion) | [connectors/source/notion](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/notion) | [source-notion](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-notion) | `6e00b415-b02e-4160-bf02-58176a0ae687` |
+| **Okta** | | Source | airbyte/source-okta:0.1.14 | alpha | [docs](https://docs.airbyte.com/integrations/sources/okta) | [connectors/source/okta](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/okta) | [source-okta](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-okta) | `1d4fdb25-64fc-4569-92da-fcdca79a8372` |
+| **Omnisend** | | Source | airbyte/source-omnisend:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/omnisend) | [connectors/source/omnisend](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/omnisend) | [source-omnisend](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-omnisend) | `e7f0c5e2-4815-48c4-90cf-f47124209835` |
+| **OneSignal** | | Source | airbyte/source-onesignal:1.0.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/onesignal) | [connectors/source/onesignal](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/onesignal) | [source-onesignal](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-onesignal) | `bb6afd81-87d5-47e3-97c4-e2c2901b1cf8` |
+| **Open Exchange Rates** | | Source | airbyte/source-open-exchange-rates:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/open-exchange-rates) | [connectors/source/open-exchange-rates](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/open-exchange-rates) | [source-open-exchange-rates](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-open-exchange-rates) | `77d5ca6b-d345-4dce-ba1e-1935a75778b8` |
+| **OpenWeather** | | Source | airbyte/source-openweather:0.1.6 | alpha | [docs](https://docs.airbyte.com/integrations/sources/openweather) | [connectors/source/openweather](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/openweather) | [source-openweather](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-openweather) | `d8540a80-6120-485d-b7d6-272bca477d9b` |
+| **Opsgenie** | x | Source | airbyte/source-opsgenie:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/opsgenie) | [connectors/source/opsgenie](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/opsgenie) | [source-opsgenie](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-opsgenie) | `06bdb480-2598-40b8-8b0f-fc2e2d2abdda` |
+| **Oracle DB** | | Source | airbyte/source-oracle:0.3.24 | alpha | [docs](https://docs.airbyte.com/integrations/sources/oracle) | [connectors/source/oracle](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/oracle) | [source-oracle](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-oracle) | `b39a7370-74c3-45a6-ac3a-380d48520a83` |
+| **Orb** | | Source | airbyte/source-orb:1.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/orb) | [connectors/source/orb](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/orb) | [source-orb](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-orb) | `7f0455fb-4518-4ec0-b7a3-d808bf8081cc` |
+| **Orbit** | | Source | airbyte/source-orbit:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/orbit) | [connectors/source/orbit](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/orbit) | [source-orbit](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-orbit) | `95bcc041-1d1a-4c2e-8802-0ca5b1bfa36a` |
+| **Oura** | | Source | airbyte/source-oura:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/oura) | [connectors/source/oura](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/oura) | [source-oura](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-oura) | `2bf6c581-bec5-4e32-891d-de33036bd631` |
+| **Outreach** | | Source | airbyte/source-outreach:0.2.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/outreach) | [connectors/source/outreach](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/outreach) | [source-outreach](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-outreach) | `3490c201-5d95-4783-b600-eaf07a4c7787` |
+| **PagerDuty** | | Source | farosai/airbyte-pagerduty-source:0.1.23 | alpha | [docs](https://docs.airbyte.com/integrations/sources/pagerduty) | [connectors/destination/airbyte-pagerduty-source](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/airbyte-pagerduty-source) | [airbyte-pagerduty-source](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/airbyte-pagerduty-source) | `2817b3f0-04e4-4c7a-9f32-7a5e8a83db95` |
+| **Pardot** | | Source | airbyte/source-pardot:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/pardot) | [connectors/source/pardot](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/pardot) | [source-pardot](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-pardot) | `ad15c7ba-72a7-440b-af15-b9a963dc1a8a` |
+| **PartnerStack** | | Source | airbyte/source-partnerstack:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/partnerstack) | [connectors/source/partnerstack](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/partnerstack) | [source-partnerstack](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-partnerstack) | `d30fb809-6456-484d-8e2c-ee12e0f6888d` |
+| **Paypal Transaction** | | Source | airbyte/source-paypal-transaction:0.1.12 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/paypal-transaction) | [connectors/source/paypal-transaction](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/paypal-transaction) | [source-paypal-transaction](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-paypal-transaction) | `d913b0f2-cc51-4e55-a44c-8ba1697b9239` |
+| **Paystack** | | Source | airbyte/source-paystack:0.1.3 | beta | [docs](https://docs.airbyte.com/integrations/sources/paystack) | [connectors/source/paystack](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/paystack) | [source-paystack](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-paystack) | `193bdcb8-1dd9-48d1-aade-91cadfd74f9b` |
+| **Pendo** | | Source | airbyte/source-pendo:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/pendo) | [connectors/source/pendo](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/pendo) | [source-pendo](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-pendo) | `b1ccb590-e84f-46c0-83a0-2048ccfffdae` |
+| **PersistIq** | | Source | airbyte/source-persistiq:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/persistiq) | [connectors/source/persistiq](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/persistiq) | [source-persistiq](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-persistiq) | `3052c77e-8b91-47e2-97a0-a29a22794b4b` |
+| **Pexels API** | | Source | airbyte/source-pexels-api:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/pexels-api) | [connectors/source/pexels-api](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/pexels-api) | [source-pexels-api](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-pexels-api) | `69d9eb65-8026-47dc-baf1-e4bf67901fd6` |
+| **Pinterest** | | Source | airbyte/source-pinterest:0.2.4 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/pinterest) | [connectors/source/pinterest](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/pinterest) | [source-pinterest](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-pinterest) | `5cb7e5fe-38c2-11ec-8d3d-0242ac130003` |
+| **Pipedrive** | | Source | airbyte/source-pipedrive:0.1.17 | beta | [docs](https://docs.airbyte.com/integrations/sources/pipedrive) | [connectors/source/pipedrive](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/pipedrive) | [source-pipedrive](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-pipedrive) | `d8286229-c680-4063-8c59-23b9b391c700` |
+| **Pivotal Tracker** | | Source | airbyte/source-pivotal-tracker:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/pivotal-tracker) | [connectors/source/pivotal-tracker](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/pivotal-tracker) | [source-pivotal-tracker](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-pivotal-tracker) | `d60f5393-f99e-4310-8d05-b1876820f40e` |
+| **Plaid** | | Source | airbyte/source-plaid:0.3.2 | alpha | [docs](https://docs.airbyte.com/integrations/sources/plaid) | [connectors/source/plaid](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/plaid) | [source-plaid](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-plaid) | `ed799e2b-2158-4c66-8da4-b40fe63bc72a` |
+| **Plausible** | | Source | airbyte/source-plausible:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/plausible) | [connectors/source/plausible](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/plausible) | [source-plausible](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-plausible) | `603ba446-3d75-41d7-92f3-aba901f8b897` |
+| **Pocket** | | Source | airbyte/source-pocket:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/pocket) | [connectors/source/pocket](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/pocket) | [source-pocket](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-pocket) | `b0dd65f1-081f-4731-9c51-38e9e6aa0ebf` |
+| **PokeAPI** | | Source | airbyte/source-pokeapi:0.1.5 | alpha | [docs](https://docs.airbyte.com/integrations/sources/pokeapi) | [connectors/source/pokeapi](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/pokeapi) | [source-pokeapi](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-pokeapi) | `6371b14b-bc68-4236-bfbd-468e8df8e968` |
+| **Polygon Stock API** | | Source | airbyte/source-polygon-stock-api:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/polygon-stock-api) | [connectors/source/polygon-stock-api](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/polygon-stock-api) | [source-polygon-stock-api](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-polygon-stock-api) | `5807d72f-0abc-49f9-8fa5-ae820007032b` |
+| **PostHog** | | Source | airbyte/source-posthog:0.1.9 | beta | [docs](https://docs.airbyte.com/integrations/sources/posthog) | [connectors/source/posthog](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/posthog) | [source-posthog](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-posthog) | `af6d50ee-dddf-4126-a8ee-7faee990774f` |
+| **Postgres** | | Source | airbyte/source-postgres:2.0.21 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/postgres) | [connectors/source/postgres](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/postgres) | [source-postgres](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-postgres) | `decd338e-5647-4c0b-adf4-da0e75f5a750` |
+| **Postmark App** | | Source | airbyte/source-postmarkapp:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/postmarkapp) | [connectors/source/postmarkapp](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/postmarkapp) | [source-postmarkapp](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-postmarkapp) | `cde75ca1-1e28-4a0f-85bb-90c546de9f1f` |
+| **PrestaShop** | | Source | airbyte/source-prestashop:0.3.1 | beta | [docs](https://docs.airbyte.com/integrations/sources/prestashop) | [connectors/source/prestashop](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/prestashop) | [source-prestashop](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-prestashop) | `d60a46d4-709f-4092-a6b7-2457f7d455f5` |
+| **Primetric** | | Source | airbyte/source-primetric:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/primetric) | [connectors/source/primetric](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/primetric) | [source-primetric](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-primetric) | `f636c3c6-4077-45ac-b109-19fc62a283c1` |
+| **Public APIs** | | Source | airbyte/source-public-apis:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/public-apis) | [connectors/source/public-apis](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/public-apis) | [source-public-apis](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-public-apis) | `a4617b39-3c14-44cd-a2eb-6e720f269235` |
+| **Punk API** | | Source | airbyte/source-punk-api:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/punk-api) | [connectors/source/punk-api](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/punk-api) | [source-punk-api](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-punk-api) | `dbe9b7ae-7b46-4e44-a507-02a343cf7230` |
+| **PyPI** | | Source | airbyte/source-pypi:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/pypi) | [connectors/source/pypi](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/pypi) | [source-pypi](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-pypi) | `88ecd3a8-5f5b-11ed-9b6a-0242ac120002` |
+| **Qonto** | | Source | airbyte/source-qonto:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/public-qonto) | [connectors/source/qonto](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/qonto) | [source-qonto](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-qonto) | `f7c0b910-5f66-11ed-9b6a-0242ac120002` |
+| **Qualaroo** | | Source | airbyte/source-qualaroo:0.1.2 | alpha | [docs](https://docs.airbyte.com/integrations/sources/qualaroo) | [connectors/source/qualaroo](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/qualaroo) | [source-qualaroo](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-qualaroo) | `b08e4776-d1de-4e80-ab5c-1e51dad934a2` |
+| **QuickBooks** | | Source | airbyte/source-quickbooks:2.0.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/quickbooks) | [connectors/source/quickbooks](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/quickbooks) | [source-quickbooks](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-quickbooks) | `cf9c4355-b171-4477-8f2d-6c5cc5fc8b7e` |
+| **RD Station Marketing** | | Source | airbyte/source-rd-station-marketing:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/rd-station-marketing) | [connectors/source/rd-station-marketing](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/rd-station-marketing) | [source-rd-station-marketing](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-rd-station-marketing) | `fb141f29-be2a-450b-a4f2-2cd203a00f84` |
+| **RKI Covid** | | Source | airbyte/source-rki-covid:0.1.2 | alpha | [docs](https://docs.airbyte.com/integrations/sources/rki-covid) | [connectors/source/rki-covid](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/rki-covid) | [source-rki-covid](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-rki-covid) | `d78e5de0-aa44-4744-aa4f-74c818ccfe19` |
+| **RSS** | | Source | airbyte/source-rss:0.1.0 | unknown | [docs](https://docs.airbyte.com/integrations/sources/rss) | [connectors/source/rss](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/rss) | [source-rss](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-rss) | `0efee448-6948-49e2-b786-17db50647908` |
+| **Railz** | | Source | airbyte/source-railz:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/railz) | [connectors/source/railz](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/railz) | [source-railz](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-railz) | `9b6cc0c0-da81-4103-bbfd-5279e18a849a` |
+| **Recharge** | | Source | airbyte/source-recharge:0.2.9 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/recharge) | [connectors/source/recharge](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/recharge) | [source-recharge](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-recharge) | `45d2e135-2ede-49e1-939f-3e3ec357a65e` |
+| **Recreation** | | Source | airbyte/source-recreation:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/recreation) | [connectors/source/recreation](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/recreation) | [source-recreation](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-recreation) | `25d7535d-91e0-466a-aa7f-af81578be277` |
+| **Recruitee** | | Source | airbyte/source-recruitee:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/recruitee) | [connectors/source/recruitee](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/recruitee) | [source-recruitee](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-recruitee) | `3b046ac7-d8d3-4eb3-b122-f96b2a16d8a8` |
+| **Recurly** | | Source | airbyte/source-recurly:0.4.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/recurly) | [connectors/source/recurly](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/recurly) | [source-recurly](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-recurly) | `cd42861b-01fc-4658-a8ab-5d11d0510f01` |
+| **Redshift** | | Source | airbyte/source-redshift:0.3.16 | alpha | [docs](https://docs.airbyte.com/integrations/sources/redshift) | [connectors/source/redshift](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/redshift) | [source-redshift](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-redshift) | `e87ffa8e-a3b5-f69c-9076-6011339de1f6` |
+| **Reply.io** | | Source | airbyte/source-reply-io:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/reply-io) | [connectors/source/reply-io](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/reply-io) | [source-reply-io](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-reply-io) | `8cc6537e-f8a6-423c-b960-e927af76116e` |
+| **Retently** | | Source | airbyte/source-retently:0.1.3 | alpha | [docs](https://docs.airbyte.com/integrations/sources/retently) | [connectors/source/retently](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/retently) | [source-retently](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-retently) | `db04ecd1-42e7-4115-9cec-95812905c626` |
+| **Rocket.chat** | | Source | airbyte/source-rocket-chat:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/rocket-chat) | [connectors/source/rocket-chat](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/rocket-chat) | [source-rocket-chat](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-rocket-chat) | `921d9608-3915-450b-8078-0af18801ea1b` |
+| **S3** | | Source | airbyte/source-s3:2.0.4 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/s3) | [connectors/source/s3](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/s3) | [source-s3](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-s3) | `69589781-7828-43c5-9f63-8925b1c1ccc2` |
+| **SAP Fieldglass** | | Source | airbyte/source-sap-fieldglass:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/sap-fieldglass) | [connectors/source/sap-fieldglass](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/sap-fieldglass) | [source-sap-fieldglass](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-sap-fieldglass) | `ec5f3102-fb31-4916-99ae-864faf8e7e25` |
+| **SFTP** | | Source | airbyte/source-sftp:0.1.2 | alpha | [docs](https://docs.airbyte.com/integrations/sources/sftp) | [connectors/source/sftp](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/sftp) | [source-sftp](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-sftp) | `a827c52e-791c-4135-a245-e233c5255199` |
+| **SFTP Bulk** | | Source | airbyte/source-sftp-bulk:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/sftp-bulk) | [connectors/source/sftp-bulk](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/sftp-bulk) | [source-sftp-bulk](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-sftp-bulk) | `31e3242f-dee7-4cdc-a4b8-8e06c5458517` |
+| **SalesLoft** | | Source | airbyte/source-salesloft:1.0.0 | beta | [docs](https://docs.airbyte.com/integrations/sources/salesloft) | [connectors/source/salesloft](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/salesloft) | [source-salesloft](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-salesloft) | `41991d12-d4b5-439e-afd0-260a31d4c53f` |
+| **Salesforce** | | Source | airbyte/source-salesforce:2.0.9 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/salesforce) | [connectors/source/salesforce](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/salesforce) | [source-salesforce](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-salesforce) | `b117307c-14b6-41aa-9422-947e34922962` |
+| **Sample Data (Faker)** | | Source | airbyte/source-faker:2.0.3 | beta | [docs](https://docs.airbyte.com/integrations/sources/faker) | [connectors/source/faker](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/faker) | [source-faker](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-faker) | `dfd88b22-b603-4c3d-aad7-3701784586b1` |
+| **SearchMetrics** | | Source | airbyte/source-search-metrics:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/search-metrics) | [connectors/source/search-metrics](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/search-metrics) | [source-search-metrics](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-search-metrics) | `8d7ef552-2c0f-11ec-8d3d-0242ac130003` |
+| **Secoda** | | Source | airbyte/source-secoda:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/secoda) | [connectors/source/secoda](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/secoda) | [source-secoda](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-secoda) | `da9fc6b9-8059-4be0-b204-f56e22e4d52d` |
+| **Sendgrid** | | Source | airbyte/source-sendgrid:0.3.1 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/sendgrid) | [connectors/source/sendgrid](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/sendgrid) | [source-sendgrid](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-sendgrid) | `fbb5fbe2-16ad-4cf4-af7d-ff9d9c316c87` |
+| **Sendinblue** | | Source | airbyte/source-sendinblue:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/sendinblue) | [connectors/source/sendinblue](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/sendinblue) | [source-sendinblue](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-sendinblue) | `2e88fa20-a2f6-43cc-bba6-98a0a3f244fb` |
+| **Senseforce** | | Source | airbyte/source-senseforce:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/senseforce) | [connectors/source/senseforce](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/senseforce) | [source-senseforce](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-senseforce) | `39de93cb-1511-473e-a673-5cbedb9436af` |
+| **Sentry** | | Source | airbyte/source-sentry:0.2.0 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/sentry) | [connectors/source/sentry](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/sentry) | [source-sentry](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-sentry) | `cdaf146a-9b75-49fd-9dd2-9d64a0bb4781` |
+| **Shopify** | | Source | airbyte/source-shopify:0.3.2 | alpha | [docs](https://docs.airbyte.com/integrations/sources/shopify) | [connectors/source/shopify](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/shopify) | [source-shopify](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-shopify) | `9da77001-af33-4bcd-be46-6252bf9342b9` |
+| **Short.io** | | Source | airbyte/source-shortio:0.1.3 | alpha | [docs](https://docs.airbyte.com/integrations/sources/shortio) | [connectors/source/shortio](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/shortio) | [source-shortio](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-shortio) | `2fed2292-5586-480c-af92-9944e39fe12d` |
+| **Slack** | | Source | airbyte/source-slack:0.1.25 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/slack) | [connectors/source/slack](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/slack) | [source-slack](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-slack) | `c2281cee-86f9-4a86-bb48-d23286b4c7bd` |
+| **Smaily** | | Source | airbyte/source-smaily:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/smaily) | [connectors/source/smaily](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/smaily) | [source-smaily](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-smaily) | `781f8b1d-4e20-4842-a2c3-cd9b119d65fa` |
+| **SmartEngage** | | Source | airbyte/source-smartengage:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/smartengage) | [connectors/source/smartengage](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/smartengage) | [source-smartengage](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-smartengage) | `21cc4a17-a011-4485-8a3e-e2341a91ab9f` |
+| **Smartsheets** | | Source | airbyte/source-smartsheets:1.0.0 | beta | [docs](https://docs.airbyte.com/integrations/sources/smartsheets) | [connectors/source/smartsheets](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/smartsheets) | [source-smartsheets](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-smartsheets) | `374ebc65-6636-4ea0-925c-7d35999a8ffc` |
+| **Snapchat Marketing** | | Source | airbyte/source-snapchat-marketing:0.1.15 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/snapchat-marketing) | [connectors/source/snapchat-marketing](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/snapchat-marketing) | [source-snapchat-marketing](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-snapchat-marketing) | `200330b2-ea62-4d11-ac6d-cfe3e3f8ab2b` |
+| **Snowflake** | | Source | airbyte/source-snowflake:0.1.34 | alpha | [docs](https://docs.airbyte.com/integrations/sources/snowflake) | [connectors/source/snowflake](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/snowflake) | [source-snowflake](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-snowflake) | `e2d65910-8c8b-40a1-ae7d-ee2416b2bfa2` |
+| **Sonar Cloud** | | Source | airbyte/source-sonar-cloud:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/sonar-cloud) | [connectors/source/sonar-cloud](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/sonar-cloud) | [source-sonar-cloud](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-sonar-cloud) | `3ab1d7d0-1577-4ab9-bcc4-1ff6a4c2c9f2` |
+| **SpaceX API** | | Source | airbyte/source-spacex-api:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/spacex-api) | [connectors/source/spacex-api](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/spacex-api) | [source-spacex-api](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-spacex-api) | `62235e65-af7a-4138-9130-0bda954eb6a8` |
+| **Square** | | Source | airbyte/source-square:0.2.2 | beta | [docs](https://docs.airbyte.com/integrations/sources/square) | [connectors/source/square](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/square) | [source-square](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-square) | `77225a51-cd15-4a13-af02-65816bd0ecf4` |
+| **Statuspage** | | Source | airbyte/source-statuspage:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/statuspage) | [connectors/source/statuspage](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/statuspage) | [source-statuspage](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-statuspage) | `74cbd708-46c3-4512-9c93-abd5c3e9a94d` |
+| **Strava** | | Source | airbyte/source-strava:0.1.4 | beta | [docs](https://docs.airbyte.com/integrations/sources/strava) | [connectors/source/strava](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/strava) | [source-strava](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-strava) | `7a4327c4-315a-11ec-8d3d-0242ac130003` |
+| **Stripe** | | Source | airbyte/source-stripe:3.1.0 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/stripe) | [connectors/source/stripe](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/stripe) | [source-stripe](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-stripe) | `e094cb9a-26de-4645-8761-65c0c425d1de` |
+| **SurveyCTO** | | Source | airbyte/source-surveycto:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/surveycto) | [connectors/source/surveycto](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/surveycto) | [source-surveycto](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-surveycto) | `dd4632f4-15e0-4649-9b71-41719fb1fdee` |
+| **SurveyMonkey** | | Source | airbyte/source-surveymonkey:0.1.16 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/surveymonkey) | [connectors/source/surveymonkey](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/surveymonkey) | [source-surveymonkey](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-surveymonkey) | `badc5925-0485-42be-8caa-b34096cb71b5` |
+| **SurveySparrow** | | Source | airbyte/source-survey-sparrow:0.2.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/survey-sparrow) | [connectors/source/survey-sparrow](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/survey-sparrow) | [source-survey-sparrow](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-survey-sparrow) | `4a4d887b-0f2d-4b33-ab7f-9b01b9072804` |
+| **TMDb** | | Source | airbyte/source-tmdb:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/tmdb) | [connectors/source/tmdb](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/tmdb) | [source-tmdb](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-tmdb) | `6240848f-f795-45eb-8f5e-c7542822fc03` |
+| **TPLcentral** | x | Source | airbyte/source-tplcentral:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/tplcentral) | [connectors/source/tplcentral](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/tplcentral) | [source-tplcentral](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-tplcentral) | `f9b6c538-ee12-42fe-8d4b-0c10f5955417` |
+| **TVMaze Schedule** | | Source | airbyte/source-tvmaze-schedule:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/tvmaze-schedule) | [connectors/source/tvmaze-schedule](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/tvmaze-schedule) | [source-tvmaze-schedule](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-tvmaze-schedule) | `bd14b08f-9f43-400f-b2b6-7248b5c72561` |
+| **TalkDesk Explore** | | Source | airbyte/source-talkdesk-explore:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/talkdesk-explore) | [connectors/source/talkdesk-explore](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/talkdesk-explore) | [source-talkdesk-explore](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-talkdesk-explore) | `f00d2cf4-3c28-499a-ba93-b50b6f26359e` |
+| **Tempo** | | Source | airbyte/source-tempo:0.3.1 | beta | [docs](https://docs.airbyte.com/integrations/sources/tempo) | [connectors/source/tempo](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/tempo) | [source-tempo](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-tempo) | `d1aa448b-7c54-498e-ad95-263cbebcd2db` |
+| **The Guardian API** | | Source | airbyte/source-the-guardian-api:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/the-guardian-api) | [connectors/source/the-guardian-api](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/the-guardian-api) | [source-the-guardian-api](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-the-guardian-api) | `d42bd69f-6bf0-4d0b-9209-16231af07a92` |
+| **TiDB** | | Source | airbyte/source-tidb:0.2.4 | alpha | [docs](https://docs.airbyte.com/integrations/sources/tidb) | [connectors/source/tidb](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/tidb) | [source-tidb](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-tidb) | `0dad1a35-ccf8-4d03-b73e-6788c00b13ae` |
+| **TikTok Marketing** | | Source | airbyte/source-tiktok-marketing:3.0.1 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/tiktok-marketing) | [connectors/source/tiktok-marketing](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/tiktok-marketing) | [source-tiktok-marketing](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-tiktok-marketing) | `4bfac00d-ce15-44ff-95b9-9e3c3e8fbd35` |
+| **Timely** | | Source | airbyte/source-timely:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/timely) | [connectors/source/timely](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/timely) | [source-timely](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-timely) | `bc617b5f-1b9e-4a2d-bebe-782fd454a771` |
+| **Todoist** | | Source | airbyte/source-todoist:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/todoist) | [connectors/source/todoist](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/todoist) | [source-todoist](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-todoist) | `7d272065-c316-4c04-a433-cd4ee143f83e` |
+| **Toggl** | | Source | airbyte/source-toggl:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/toggl) | [connectors/source/toggl](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/toggl) | [source-toggl](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-toggl) | `7e7c844f-2300-4342-b7d3-6dd7992593cd` |
+| **Trello** | | Source | airbyte/source-trello:0.3.1 | beta | [docs](https://docs.airbyte.com/integrations/sources/trello) | [connectors/source/trello](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/trello) | [source-trello](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-trello) | `8da67652-004c-11ec-9a03-0242ac130003` |
+| **TrustPilot** | | Source | airbyte/source-trustpilot:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/trustpilot) | [connectors/source/trustpilot](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/trustpilot) | [source-trustpilot](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-trustpilot) | `d7e23ea6-d741-4314-9209-a33c91a2e945` |
+| **Twilio** | | Source | airbyte/source-twilio:0.5.0 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/twilio) | [connectors/source/twilio](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/twilio) | [source-twilio](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-twilio) | `b9dc6155-672e-42ea-b10d-9f1f1fb95ab1` |
+| **Twilio Taskrouter** | | Source | airbyte/source-twilio-taskrouter:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/twilio-taskrouter) | [connectors/source/twilio-taskrouter](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/twilio-taskrouter) | [source-twilio-taskrouter](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-twilio-taskrouter) | `2446953b-b794-429b-a9b3-c821ba992a48` |
+| **Twitter** | | Source | airbyte/source-twitter:0.1.2 | beta | [docs](https://docs.airbyte.com/integrations/sources/twitter) | [connectors/source/twitter](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/twitter) | [source-twitter](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-twitter) | `d7fd4f40-5e5a-4b8b-918f-a73077f8c131` |
+| **Tyntec SMS** | | Source | airbyte/source-tyntec-sms:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/tyntec-sms) | [connectors/source/tyntec-sms](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/tyntec-sms) | [source-tyntec-sms](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-tyntec-sms) | `3c0c3cd1-b3e0-464a-9090-d3ceb5f92346` |
+| **Typeform** | | Source | airbyte/source-typeform:0.1.12 | beta | [docs](https://docs.airbyte.com/integrations/sources/typeform) | [connectors/source/typeform](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/typeform) | [source-typeform](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-typeform) | `e7eff203-90bf-43e5-a240-19ea3056c474` |
+| **US Census** | | Source | airbyte/source-us-census:0.1.2 | alpha | [docs](https://docs.airbyte.com/integrations/sources/us-census) | [connectors/source/us-census](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/us-census) | [source-us-census](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-us-census) | `c4cfaeda-c757-489a-8aba-859fb08b6970` |
+| **Unleash** | | Source | airbyte/source-unleash:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/unleash) | [connectors/source/unleash](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/unleash) | [source-unleash](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-unleash) | `f77914a1-442b-4195-9355-8810a1f4ed3f` |
+| **Vantage** | | Source | airbyte/source-vantage:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/vantage) | [connectors/source/vantage](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/vantage) | [source-vantage](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-vantage) | `28ce1fbd-1e15-453f-aa9f-da6c4d928e92` |
+| **VictorOps** | | Source | farosai/airbyte-victorops-source:0.1.23 | alpha | [docs](https://docs.airbyte.com/integrations/sources/victorops) | [connectors/destination/airbyte-victorops-source](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/airbyte-victorops-source) | [airbyte-victorops-source](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/airbyte-victorops-source) | `7e20ce3e-d820-4327-ad7a-88f3927fd97a` |
+| **Visma E-conomic** | | Source | airbyte/source-visma-economic:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/visma-economic) | [connectors/source/visma-economic](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/visma-economic) | [source-visma-economic](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-visma-economic) | `42495935-95de-4f5c-ae08-8fac00f6b308` |
+| **Vitally** | | Source | airbyte/source-vitally:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/vitally) | [connectors/source/vitally](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/vitally) | [source-vitally](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-vitally) | `6c6d8b0c-db35-4cd1-a7de-0ca8b080f5ac` |
+| **Waiteraid** | | Source | airbyte/source-waiteraid:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/waiteraid) | [connectors/source/waiteraid](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/waiteraid) | [source-waiteraid](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-waiteraid) | `03a53b13-794a-4d6b-8544-3b36ed8f3ce4` |
+| **Weatherstack** | | Source | airbyte/source-weatherstack:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/weatherstack) | [connectors/source/weatherstack](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/weatherstack) | [source-weatherstack](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-weatherstack) | `5db8292c-5f5a-11ed-9b6a-0242ac120002` |
+| **Webflow** | | Source | airbyte/source-webflow:0.1.2 | alpha | [docs](https://docs.airbyte.com/integrations/sources/webflow) | [connectors/source/webflow](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/webflow) | [source-webflow](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-webflow) | `ef580275-d9a9-48bb-af5e-db0f5855be04` |
+| **Whisky Hunter** | | Source | airbyte/source-whisky-hunter:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/whisky-hunter) | [connectors/source/whisky-hunter](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/whisky-hunter) | [source-whisky-hunter](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-whisky-hunter) | `e65f84c0-7598-458a-bfac-f770c381ff5d` |
+| **Wikipedia Pageviews** | | Source | airbyte/source-wikipedia-pageviews:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/wikipedia-pageviews) | [connectors/source/wikipedia-pageviews](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/wikipedia-pageviews) | [source-wikipedia-pageviews](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-wikipedia-pageviews) | `87c58f70-6f7a-4f70-aba5-bab1a458f5ba` |
+| **WooCommerce** | | Source | airbyte/source-woocommerce:0.2.2 | beta | [docs](https://docs.airbyte.com/integrations/sources/woocommerce) | [connectors/source/woocommerce](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/woocommerce) | [source-woocommerce](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-woocommerce) | `2a2552ca-9f78-4c1c-9eb7-4d0dc66d72df` |
+| **WorkRamp** | | Source | airbyte/source-workramp:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/workramp) | [connectors/source/workramp](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/workramp) | [source-workramp](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-workramp) | `05b0bce2-4ec4-4534-bb1a-5d0127bd91b7` |
+| **Workable** | | Source | airbyte/source-workable:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/workable) | [connectors/source/workable](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/workable) | [source-workable](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-workable) | `ef3c99c6-9e90-43c8-9517-926cfd978517` |
+| **Wrike** | | Source | airbyte/source-wrike:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/wrike) | [connectors/source/wrike](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/wrike) | [source-wrike](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-wrike) | `9c13f986-a13b-4988-b808-4705badf71c2` |
+| **Xero** | | Source | airbyte/source-xero:0.2.1 | beta | [docs](https://docs.airbyte.com/integrations/sources/xero) | [connectors/source/xero](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/xero) | [source-xero](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-xero) | `6fd1e833-dd6e-45ec-a727-ab917c5be892` |
+| **Yandex Metrica** | | Source | airbyte/source-yandex-metrica:1.0.0 | beta | [docs](https://docs.airbyte.com/integrations/sources/yandex-metrica) | [connectors/source/yandex-metrica](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/yandex-metrica) | [source-yandex-metrica](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-yandex-metrica) | `7865dce4-2211-4f6a-88e5-9d0fe161afe7` |
+| **YouTube Analytics** | | Source | airbyte/source-youtube-analytics:0.1.3 | beta | [docs](https://docs.airbyte.com/integrations/sources/youtube-analytics) | [connectors/source/youtube-analytics](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/youtube-analytics) | [source-youtube-analytics](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-youtube-analytics) | `afa734e4-3571-11ec-991a-1e0031268139` |
+| **Younium** | | Source | airbyte/source-younium:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/younium) | [connectors/source/younium](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/younium) | [source-younium](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-younium) | `9c74c2d7-531a-4ebf-b6d8-6181f805ecdc` |
+| **Zapier Supported Storage** | | Source | airbyte/source-zapier-supported-storage:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/zendesk-supported-storage) | [connectors/source/zapier-supported-storage](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/zapier-supported-storage) | [source-zapier-supported-storage](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zapier-supported-storage) | `b8c917bc-7d1b-4828-995f-6726820266d0` |
+| **Zendesk Chat** | | Source | airbyte/source-zendesk-chat:0.1.14 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/zendesk-chat) | [connectors/source/zendesk-chat](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/zendesk-chat) | [source-zendesk-chat](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zendesk-chat) | `40d24d0f-b8f9-4fe0-9e6c-b06c0f3f45e4` |
+| **Zendesk Sell** | | Source | airbyte/source-zendesk-sell:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/zendesk-sell) | [connectors/source/zendesk-sell](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/zendesk-sell) | [source-zendesk-sell](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zendesk-sell) | `982eaa4c-bba1-4cce-a971-06a41f700b8c` |
+| **Zendesk Sunshine** | | Source | airbyte/source-zendesk-sunshine:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/zendesk-sunshine) | [connectors/source/zendesk-sunshine](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/zendesk-sunshine) | [source-zendesk-sunshine](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zendesk-sunshine) | `325e0640-e7b3-4e24-b823-3361008f603f` |
+| **Zendesk Support** | | Source | airbyte/source-zendesk-support:0.2.27 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/zendesk-support) | [connectors/source/zendesk-support](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/zendesk-support) | [source-zendesk-support](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zendesk-support) | `79c1aa37-dae3-42ae-b333-d1c105477715` |
+| **Zendesk Talk** | | Source | airbyte/source-zendesk-talk:0.1.7 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/zendesk-talk) | [connectors/source/zendesk-talk](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/zendesk-talk) | [source-zendesk-talk](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zendesk-talk) | `c8630570-086d-4a40-99ae-ea5b18673071` |
+| **Zenefits** | | Source | airbyte/source-zenefits:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/zenefits) | [connectors/source/zenefits](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/zenefits) | [source-zenefits](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zenefits) | `8baba53d-2fe3-4e33-bc85-210d0eb62884` |
+| **Zenloop** | | Source | airbyte/source-zenloop:0.1.6 | beta | [docs](https://docs.airbyte.com/integrations/sources/zenloop) | [connectors/source/zenloop](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/zenloop) | [source-zenloop](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zenloop) | `f1e4c7f6-db5c-4035-981f-d35ab4998794` |
+| **ZohoCRM** | | Source | airbyte/source-zoho-crm:0.1.2 | alpha | [docs](https://docs.airbyte.com/integrations/sources/zoho-crm) | [connectors/source/zoho-crm](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/zoho-crm) | [source-zoho-crm](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zoho-crm) | `4942d392-c7b5-4271-91f9-3b4f4e51eb3e` |
+| **Zoom** | | Source | airbyte/source-zoom:0.1.1 | alpha | [docs](https://docs.airbyte.io/integrations/sources/zoom) | [connectors/source/zoom](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/zoom) | [source-zoom](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zoom) | `cbfd9856-1322-44fb-bcf1-0b39b7a8e92e` |
+| **Zuora** | | Source | airbyte/source-zuora:0.1.3 | alpha | [docs](https://docs.airbyte.com/integrations/sources/zuora) | [connectors/source/zuora](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/zuora) | [source-zuora](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zuora) | `3dc3037c-5ce8-4661-adc2-f7a9e3c5ece5` |
+| **n8n** | | Source | airbyte/source-n8n:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/n8n) | [connectors/source/n8n](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/n8n) | [source-n8n](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-n8n) | `4a961f66-5e99-4430-8320-a73afe52f7a2` |
+| **xkcd** | | Source | airbyte/source-xkcd:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/xkcd) | [connectors/source/xkcd](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/xkcd) | [source-xkcd](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-xkcd) | `80fddd16-17bd-4c0c-bf4a-80df7863fc9d` |
## Destinations
-| Name | Icon | Type | Image | Release Stage | Docs | Code | ID |
-|----|----|----|----|----|----|----|----|
-| **AWS Datalake** | | Destination | airbyte/destination-aws-datalake:0.1.2 | alpha | [link](https://docs.airbyte.com/integrations/destinations/aws-datalake) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-aws-datalake) | `99878c90-0fbd-46d3-9d98-ffde879d17fc` |
-| **Amazon SQS** | | Destination | airbyte/destination-amazon-sqs:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/destinations/amazon-sqs) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-amazon-sqs) | `0eeee7fb-518f-4045-bacc-9619e31c43ea` |
-| **Apache Doris** | | Destination | airbyte/destination-doris:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/destinations/doris) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-doris) | `05c161bf-ca73-4d48-b524-d392be417002` |
-| **Apache Iceberg** | x | Destination | airbyte/destination-iceberg:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/destinations/iceberg) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-iceberg) | `df65a8f3-9908-451b-aa9b-445462803560` |
-| **Azure Blob Storage** | | Destination | airbyte/destination-azure-blob-storage:0.2.0 | alpha | [link](https://docs.airbyte.com/integrations/destinations/azureblobstorage) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-azure-blob-storage) | `b4c5d105-31fd-4817-96b6-cb923bfc04cb` |
-| **BigQuery** | | Destination | airbyte/destination-bigquery:1.2.20 | generally_available | [link](https://docs.airbyte.com/integrations/destinations/bigquery) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-bigquery) | `22f6c74f-5699-40ff-833c-4a879ea40133` |
-| **BigQuery (denormalized typed struct)** | | Destination | airbyte/destination-bigquery-denormalized:1.2.20 | beta | [link](https://docs.airbyte.com/integrations/destinations/bigquery) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-bigquery-denormalized) | `079d5540-f236-4294-ba7c-ade8fd918496` |
-| **Cassandra** | | Destination | airbyte/destination-cassandra:0.1.4 | alpha | [link](https://docs.airbyte.com/integrations/destinations/cassandra) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-cassandra) | `707456df-6f4f-4ced-b5c6-03f73bcad1c5` |
-| **Chargify (Keen)** | | Destination | airbyte/destination-keen:0.2.4 | alpha | [link](https://docs.airbyte.com/integrations/destinations/keen) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-keen) | `81740ce8-d764-4ea7-94df-16bb41de36ae` |
-| **Clickhouse** | | Destination | airbyte/destination-clickhouse:0.2.3 | alpha | [link](https://docs.airbyte.com/integrations/destinations/clickhouse) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-clickhouse) | `ce0d828e-1dc4-496c-b122-2da42e637e48` |
-| **Cloudflare R2** | | Destination | airbyte/destination-r2:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/destinations/r2) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-r2) | `0fb07be9-7c3b-4336-850d-5efc006152ee` |
-| **Convex** | | Destination | airbyte/destination-convex:0.1.0 | alpha | [link](https://docs.airbyte.io/integrations/destinations/convex) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-convex) | `3eb4d99c-11fa-4561-a259-fc88e0c2f8f4` |
-| **Databend** | | Destination | airbyte/destination-databend:0.1.2 | alpha | [link](https://docs.airbyte.com/integrations/destinations/databend) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-databend) | `302e4d8e-08d3-4098-acd4-ac67ca365b88` |
-| **Databricks Lakehouse** | | Destination | airbyte/destination-databricks:1.0.0 | alpha | [link](https://docs.airbyte.com/integrations/destinations/databricks) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-databricks) | `072d5540-f236-4294-ba7c-ade8fd918496` |
-| **DuckDB** | | Destination | airbyte/destination-duckdb:0.1.0 | alpha | [link](https://docs.airbyte.io/integrations/destinations/duckdb) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-duckdb) | `94bd199c-2ff0-4aa2-b98e-17f0acb72610` |
-| **DynamoDB** | | Destination | airbyte/destination-dynamodb:0.1.7 | alpha | [link](https://docs.airbyte.com/integrations/destinations/dynamodb) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-dynamodb) | `8ccd8909-4e99-4141-b48d-4984b70b2d89` |
-| **E2E Testing** | | Destination | airbyte/destination-e2e-test:0.2.4 | unknown | [link](https://docs.airbyte.com/integrations/destinations/e2e-test) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-e2e-test) | `2eb65e87-983a-4fd7-b3e3-9d9dc6eb8537` |
-| **ElasticSearch** | | Destination | airbyte/destination-elasticsearch:0.1.6 | alpha | [link](https://docs.airbyte.com/integrations/destinations/elasticsearch) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-elasticsearch) | `68f351a7-2745-4bef-ad7f-996b8e51bb8c` |
-| **Exasol** | x | Destination | airbyte/destination-exasol:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/destinations/exasol) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-exasol) | `bb6071d9-6f34-4766-bec2-d1d4ed81a653` |
-| **Firebolt** | | Destination | airbyte/destination-firebolt:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/destinations/firebolt) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-firebolt) | `18081484-02a5-4662-8dba-b270b582f321` |
-| **Google Cloud Storage (GCS)** | | Destination | airbyte/destination-gcs:0.2.16 | beta | [link](https://docs.airbyte.com/integrations/destinations/gcs) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-gcs) | `ca8f6566-e555-4b40-943a-545bf123117a` |
-| **Google Firestore** | | Destination | airbyte/destination-firestore:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/destinations/firestore) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-firestore) | `27dc7500-6d1b-40b1-8b07-e2f2aea3c9f4` |
-| **Google PubSub** | | Destination | airbyte/destination-pubsub:0.2.0 | alpha | [link](https://docs.airbyte.com/integrations/destinations/pubsub) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-pubsub) | `356668e2-7e34-47f3-a3b0-67a8a481b692` |
-| **Google Sheets** | | Destination | airbyte/destination-google-sheets:0.1.2 | alpha | [link](https://docs.airbyte.com/integrations/destinations/google-sheets) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-google-sheets) | `a4cbd2d1-8dbe-4818-b8bc-b90ad782d12a` |
-| **Kafka** | | Destination | airbyte/destination-kafka:0.1.10 | alpha | [link](https://docs.airbyte.com/integrations/destinations/kafka) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-kafka) | `9f760101-60ae-462f-9ee6-b7a9dafd454d` |
-| **Kinesis** | | Destination | airbyte/destination-kinesis:0.1.5 | alpha | [link](https://docs.airbyte.com/integrations/destinations/kinesis) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-kinesis) | `6d1d66d4-26ab-4602-8d32-f85894b04955` |
-| **Local CSV** | | Destination | airbyte/destination-csv:1.0.0 | alpha | [link](https://docs.airbyte.com/integrations/destinations/local-csv) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-csv) | `8be1cf83-fde1-477f-a4ad-318d23c9f3c6` |
-| **Local JSON** | | Destination | airbyte/destination-local-json:0.2.11 | alpha | [link](https://docs.airbyte.com/integrations/destinations/local-json) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-local-json) | `a625d593-bba5-4a1c-a53d-2d246268a816` |
-| **Local SQLite** | | Destination | airbyte/destination-sqlite:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/destinations/local-sqlite) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-sqlite) | `b76be0a6-27dc-4560-95f6-2623da0bd7b6` |
-| **MQTT** | | Destination | airbyte/destination-mqtt:0.1.3 | alpha | [link](https://docs.airbyte.com/integrations/destinations/mqtt) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-mqtt) | `f3802bc4-5406-4752-9e8d-01e504ca8194` |
-| **MS SQL Server** | | Destination | airbyte/destination-mssql:0.1.23 | alpha | [link](https://docs.airbyte.com/integrations/destinations/mssql) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-mssql) | `d4353156-9217-4cad-8dd7-c108fd4f74cf` |
-| **MariaDB ColumnStore** | | Destination | airbyte/destination-mariadb-columnstore:0.1.7 | alpha | [link](https://docs.airbyte.com/integrations/destinations/mariadb-columnstore) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-mariadb-columnstore) | `294a4790-429b-40ae-9516-49826b9702e1` |
-| **MeiliSearch** | | Destination | airbyte/destination-meilisearch:1.0.0 | alpha | [link](https://docs.airbyte.com/integrations/destinations/meilisearch) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-meilisearch) | `af7c921e-5892-4ff2-b6c1-4a5ab258fb7e` |
-| **MongoDB** | | Destination | airbyte/destination-mongodb:0.1.9 | alpha | [link](https://docs.airbyte.com/integrations/destinations/mongodb) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-mongodb) | `8b746512-8c2e-6ac1-4adc-b59faafd473c` |
-| **MySQL** | | Destination | airbyte/destination-mysql:0.1.20 | alpha | [link](https://docs.airbyte.com/integrations/destinations/mysql) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-mysql) | `ca81ee7c-3163-4246-af40-094cc31e5e42` |
-| **Oracle** | | Destination | airbyte/destination-oracle:0.1.19 | alpha | [link](https://docs.airbyte.com/integrations/destinations/oracle) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-oracle) | `3986776d-2319-4de9-8af8-db14c0996e72` |
-| **Postgres** | | Destination | airbyte/destination-postgres:0.3.27 | alpha | [link](https://docs.airbyte.com/integrations/destinations/postgres) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-postgres) | `25c5221d-dce2-4163-ade9-739ef790f503` |
-| **Pulsar** | | Destination | airbyte/destination-pulsar:0.1.3 | alpha | [link](https://docs.airbyte.com/integrations/destinations/pulsar) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-pulsar) | `2340cbba-358e-11ec-8d3d-0242ac130203` |
-| **RabbitMQ** | | Destination | airbyte/destination-rabbitmq:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/destinations/rabbitmq) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-rabbitmq) | `e06ad785-ad6f-4647-b2e8-3027a5c59454` |
-| **Redis** | | Destination | airbyte/destination-redis:0.1.4 | alpha | [link](https://docs.airbyte.com/integrations/destinations/redis) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-redis) | `d4d3fef9-e319-45c2-881a-bd02ce44cc9f` |
-| **Redpanda** | | Destination | airbyte/destination-redpanda:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/destinations/redpanda) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-redpanda) | `825c5ee3-ed9a-4dd1-a2b6-79ed722f7b13` |
-| **Redshift** | | Destination | airbyte/destination-redshift:0.4.5 | beta | [link](https://docs.airbyte.com/integrations/destinations/redshift) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-redshift) | `f7a7d195-377f-cf5b-70a5-be6b819019dc` |
-| **Rockset** | x | Destination | airbyte/destination-rockset:0.1.4 | alpha | [link](https://docs.airbyte.com/integrations/destinations/rockset) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-rockset) | `2c9d93a7-9a17-4789-9de9-f46f0097eb70` |
-| **S3** | | Destination | airbyte/destination-s3:0.3.23 | generally_available | [link](https://docs.airbyte.com/integrations/destinations/s3) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-s3) | `4816b78f-1489-44c1-9060-4b19d5fa9362` |
-| **S3 Glue** | | Destination | airbyte/destination-s3-glue:0.1.5 | alpha | [link](https://docs.airbyte.com/integrations/destinations/s3-glue) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-s3-glue) | `471e5cab-8ed1-49f3-ba11-79c687784737` |
-| **SFTP-JSON** | | Destination | airbyte/destination-sftp-json:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/destinations/sftp-json) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-sftp-json) | `e9810f61-4bab-46d2-bb22-edfc902e0644` |
-| **Scylla** | | Destination | airbyte/destination-scylla:0.1.3 | alpha | [link](https://docs.airbyte.com/integrations/destinations/scylla) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-scylla) | `3dc6f384-cd6b-4be3-ad16-a41450899bf0` |
-| **SelectDB** | | Destination | airbyte/destination-selectdb:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/destinations/selectdb) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-selectdb) | `50a559a7-6323-4e33-8aa0-51dfd9dfadac` |
-| **Snowflake** | | Destination | airbyte/destination-snowflake:0.4.61 | generally_available | [link](https://docs.airbyte.com/integrations/destinations/snowflake) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-snowflake) | `424892c4-daac-4491-b35d-c6688ba547ba` |
-| **Streamr** | | Destination | ghcr.io/devmate-cloud/streamr-airbyte-connectors:0.0.1 | alpha | [link](https://docs.airbyte.com/integrations/destinations/streamr) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/devmate-cloud) | `eebd85cf-60b2-4af6-9ba0-edeca01437b0` |
-| **Teradata Vantage** | | Destination | airbyte/destination-teradata:0.1.1 | alpha | [link](https://docs.airbyte.io/integrations/destinations/teradata) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-teradata) | `58e6f9da-904e-11ed-a1eb-0242ac120002` |
-| **TiDB** | | Destination | airbyte/destination-tidb:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/destinations/tidb) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-tidb) | `06ec60c7-7468-45c0-91ac-174f6e1a788b` |
-| **Typesense** | | Destination | airbyte/destination-typesense:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/destinations/typesense) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-typesense) | `36be8dc6-9851-49af-b776-9d4c30e4ab6a` |
-| **Weaviate** | | Destination | airbyte/destination-weaviate:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/destinations/weaviate) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-weaviate) | `7b7d7a0d-954c-45a0-bcfc-39a634b97736` |
-| **YugabyteDB** | | Destination | airbyte/destination-yugabytedb:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/destinations/yugabytedb) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-yugabytedb) | `2300fdcf-a532-419f-9f24-a014336e7966` |
\ No newline at end of file
+| Name | Icon | Type | Image | Release Stage | Docs | Issues | Code | ID |
+|----|----|----|----|----|----|----|----|----|
+| **AWS Datalake** | | Destination | airbyte/destination-aws-datalake:0.1.2 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/aws-datalake) | [connectors/destination/aws-datalake](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/aws-datalake) | [destination-aws-datalake](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-aws-datalake) | `99878c90-0fbd-46d3-9d98-ffde879d17fc` |
+| **Amazon SQS** | | Destination | airbyte/destination-amazon-sqs:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/amazon-sqs) | [connectors/destination/amazon-sqs](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/amazon-sqs) | [destination-amazon-sqs](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-amazon-sqs) | `0eeee7fb-518f-4045-bacc-9619e31c43ea` |
+| **Apache Doris** | | Destination | airbyte/destination-doris:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/doris) | [connectors/destination/doris](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/doris) | [destination-doris](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-doris) | `05c161bf-ca73-4d48-b524-d392be417002` |
+| **Apache Iceberg** | x | Destination | airbyte/destination-iceberg:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/iceberg) | [connectors/destination/iceberg](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/iceberg) | [destination-iceberg](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-iceberg) | `df65a8f3-9908-451b-aa9b-445462803560` |
+| **Azure Blob Storage** | | Destination | airbyte/destination-azure-blob-storage:0.2.0 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/azureblobstorage) | [connectors/destination/azure-blob-storage](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/azure-blob-storage) | [destination-azure-blob-storage](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-azure-blob-storage) | `b4c5d105-31fd-4817-96b6-cb923bfc04cb` |
+| **BigQuery** | | Destination | airbyte/destination-bigquery:1.2.20 | generally_available | [docs](https://docs.airbyte.com/integrations/destinations/bigquery) | [connectors/destination/bigquery](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/bigquery) | [destination-bigquery](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-bigquery) | `22f6c74f-5699-40ff-833c-4a879ea40133` |
+| **BigQuery (denormalized typed struct)** | | Destination | airbyte/destination-bigquery-denormalized:1.2.20 | beta | [docs](https://docs.airbyte.com/integrations/destinations/bigquery) | [connectors/destination/bigquery-denormalized](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/bigquery-denormalized) | [destination-bigquery-denormalized](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-bigquery-denormalized) | `079d5540-f236-4294-ba7c-ade8fd918496` |
+| **Cassandra** | | Destination | airbyte/destination-cassandra:0.1.4 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/cassandra) | [connectors/destination/cassandra](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/cassandra) | [destination-cassandra](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-cassandra) | `707456df-6f4f-4ced-b5c6-03f73bcad1c5` |
+| **Chargify (Keen)** | | Destination | airbyte/destination-keen:0.2.4 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/keen) | [connectors/destination/keen](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/keen) | [destination-keen](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-keen) | `81740ce8-d764-4ea7-94df-16bb41de36ae` |
+| **Clickhouse** | | Destination | airbyte/destination-clickhouse:0.2.3 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/clickhouse) | [connectors/destination/clickhouse](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/clickhouse) | [destination-clickhouse](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-clickhouse) | `ce0d828e-1dc4-496c-b122-2da42e637e48` |
+| **Cloudflare R2** | | Destination | airbyte/destination-r2:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/r2) | [connectors/destination/r2](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/r2) | [destination-r2](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-r2) | `0fb07be9-7c3b-4336-850d-5efc006152ee` |
+| **Convex** | | Destination | airbyte/destination-convex:0.1.0 | alpha | [docs](https://docs.airbyte.io/integrations/destinations/convex) | [connectors/destination/convex](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/convex) | [destination-convex](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-convex) | `3eb4d99c-11fa-4561-a259-fc88e0c2f8f4` |
+| **Databend** | | Destination | airbyte/destination-databend:0.1.2 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/databend) | [connectors/destination/databend](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/databend) | [destination-databend](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-databend) | `302e4d8e-08d3-4098-acd4-ac67ca365b88` |
+| **Databricks Lakehouse** | | Destination | airbyte/destination-databricks:1.0.0 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/databricks) | [connectors/destination/databricks](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/databricks) | [destination-databricks](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-databricks) | `072d5540-f236-4294-ba7c-ade8fd918496` |
+| **DuckDB** | | Destination | airbyte/destination-duckdb:0.1.0 | alpha | [docs](https://docs.airbyte.io/integrations/destinations/duckdb) | [connectors/destination/duckdb](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/duckdb) | [destination-duckdb](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-duckdb) | `94bd199c-2ff0-4aa2-b98e-17f0acb72610` |
+| **DynamoDB** | | Destination | airbyte/destination-dynamodb:0.1.7 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/dynamodb) | [connectors/destination/dynamodb](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/dynamodb) | [destination-dynamodb](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-dynamodb) | `8ccd8909-4e99-4141-b48d-4984b70b2d89` |
+| **E2E Testing** | | Destination | airbyte/destination-e2e-test:0.2.4 | unknown | [docs](https://docs.airbyte.com/integrations/destinations/e2e-test) | [connectors/destination/e2e-test](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/e2e-test) | [destination-e2e-test](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-e2e-test) | `2eb65e87-983a-4fd7-b3e3-9d9dc6eb8537` |
+| **ElasticSearch** | | Destination | airbyte/destination-elasticsearch:0.1.6 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/elasticsearch) | [connectors/destination/elasticsearch](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/elasticsearch) | [destination-elasticsearch](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-elasticsearch) | `68f351a7-2745-4bef-ad7f-996b8e51bb8c` |
+| **Exasol** | x | Destination | airbyte/destination-exasol:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/exasol) | [connectors/destination/exasol](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/exasol) | [destination-exasol](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-exasol) | `bb6071d9-6f34-4766-bec2-d1d4ed81a653` |
+| **Firebolt** | | Destination | airbyte/destination-firebolt:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/firebolt) | [connectors/destination/firebolt](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/firebolt) | [destination-firebolt](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-firebolt) | `18081484-02a5-4662-8dba-b270b582f321` |
+| **Google Cloud Storage (GCS)** | | Destination | airbyte/destination-gcs:0.2.16 | beta | [docs](https://docs.airbyte.com/integrations/destinations/gcs) | [connectors/destination/gcs](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/gcs) | [destination-gcs](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-gcs) | `ca8f6566-e555-4b40-943a-545bf123117a` |
+| **Google Firestore** | | Destination | airbyte/destination-firestore:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/firestore) | [connectors/destination/firestore](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/firestore) | [destination-firestore](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-firestore) | `27dc7500-6d1b-40b1-8b07-e2f2aea3c9f4` |
+| **Google PubSub** | | Destination | airbyte/destination-pubsub:0.2.0 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/pubsub) | [connectors/destination/pubsub](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/pubsub) | [destination-pubsub](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-pubsub) | `356668e2-7e34-47f3-a3b0-67a8a481b692` |
+| **Google Sheets** | | Destination | airbyte/destination-google-sheets:0.1.2 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/google-sheets) | [connectors/destination/google-sheets](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/google-sheets) | [destination-google-sheets](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-google-sheets) | `a4cbd2d1-8dbe-4818-b8bc-b90ad782d12a` |
+| **Kafka** | | Destination | airbyte/destination-kafka:0.1.10 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/kafka) | [connectors/destination/kafka](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/kafka) | [destination-kafka](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-kafka) | `9f760101-60ae-462f-9ee6-b7a9dafd454d` |
+| **Kinesis** | | Destination | airbyte/destination-kinesis:0.1.5 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/kinesis) | [connectors/destination/kinesis](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/kinesis) | [destination-kinesis](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-kinesis) | `6d1d66d4-26ab-4602-8d32-f85894b04955` |
+| **Local CSV** | | Destination | airbyte/destination-csv:1.0.0 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/local-csv) | [connectors/destination/csv](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/csv) | [destination-csv](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-csv) | `8be1cf83-fde1-477f-a4ad-318d23c9f3c6` |
+| **Local JSON** | | Destination | airbyte/destination-local-json:0.2.11 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/local-json) | [connectors/destination/local-json](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/local-json) | [destination-local-json](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-local-json) | `a625d593-bba5-4a1c-a53d-2d246268a816` |
+| **Local SQLite** | | Destination | airbyte/destination-sqlite:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/local-sqlite) | [connectors/destination/sqlite](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/sqlite) | [destination-sqlite](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-sqlite) | `b76be0a6-27dc-4560-95f6-2623da0bd7b6` |
+| **MQTT** | | Destination | airbyte/destination-mqtt:0.1.3 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/mqtt) | [connectors/destination/mqtt](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/mqtt) | [destination-mqtt](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-mqtt) | `f3802bc4-5406-4752-9e8d-01e504ca8194` |
+| **MS SQL Server** | | Destination | airbyte/destination-mssql:0.1.23 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/mssql) | [connectors/destination/mssql](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/mssql) | [destination-mssql](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-mssql) | `d4353156-9217-4cad-8dd7-c108fd4f74cf` |
+| **MariaDB ColumnStore** | | Destination | airbyte/destination-mariadb-columnstore:0.1.7 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/mariadb-columnstore) | [connectors/destination/mariadb-columnstore](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/mariadb-columnstore) | [destination-mariadb-columnstore](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-mariadb-columnstore) | `294a4790-429b-40ae-9516-49826b9702e1` |
+| **MeiliSearch** | | Destination | airbyte/destination-meilisearch:1.0.0 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/meilisearch) | [connectors/destination/meilisearch](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/meilisearch) | [destination-meilisearch](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-meilisearch) | `af7c921e-5892-4ff2-b6c1-4a5ab258fb7e` |
+| **MongoDB** | | Destination | airbyte/destination-mongodb:0.1.9 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/mongodb) | [connectors/destination/mongodb](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/mongodb) | [destination-mongodb](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-mongodb) | `8b746512-8c2e-6ac1-4adc-b59faafd473c` |
+| **MySQL** | | Destination | airbyte/destination-mysql:0.1.20 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/mysql) | [connectors/destination/mysql](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/mysql) | [destination-mysql](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-mysql) | `ca81ee7c-3163-4246-af40-094cc31e5e42` |
+| **Oracle** | | Destination | airbyte/destination-oracle:0.1.19 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/oracle) | [connectors/destination/oracle](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/oracle) | [destination-oracle](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-oracle) | `3986776d-2319-4de9-8af8-db14c0996e72` |
+| **Postgres** | | Destination | airbyte/destination-postgres:0.3.27 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/postgres) | [connectors/destination/postgres](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/postgres) | [destination-postgres](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-postgres) | `25c5221d-dce2-4163-ade9-739ef790f503` |
+| **Pulsar** | | Destination | airbyte/destination-pulsar:0.1.3 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/pulsar) | [connectors/destination/pulsar](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/pulsar) | [destination-pulsar](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-pulsar) | `2340cbba-358e-11ec-8d3d-0242ac130203` |
+| **RabbitMQ** | | Destination | airbyte/destination-rabbitmq:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/rabbitmq) | [connectors/destination/rabbitmq](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/rabbitmq) | [destination-rabbitmq](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-rabbitmq) | `e06ad785-ad6f-4647-b2e8-3027a5c59454` |
+| **Redis** | | Destination | airbyte/destination-redis:0.1.4 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/redis) | [connectors/destination/redis](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/redis) | [destination-redis](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-redis) | `d4d3fef9-e319-45c2-881a-bd02ce44cc9f` |
+| **Redpanda** | | Destination | airbyte/destination-redpanda:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/redpanda) | [connectors/destination/redpanda](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/redpanda) | [destination-redpanda](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-redpanda) | `825c5ee3-ed9a-4dd1-a2b6-79ed722f7b13` |
+| **Redshift** | | Destination | airbyte/destination-redshift:0.4.5 | beta | [docs](https://docs.airbyte.com/integrations/destinations/redshift) | [connectors/destination/redshift](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/redshift) | [destination-redshift](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-redshift) | `f7a7d195-377f-cf5b-70a5-be6b819019dc` |
+| **Rockset** | x | Destination | airbyte/destination-rockset:0.1.4 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/rockset) | [connectors/destination/rockset](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/rockset) | [destination-rockset](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-rockset) | `2c9d93a7-9a17-4789-9de9-f46f0097eb70` |
+| **S3** | | Destination | airbyte/destination-s3:0.3.23 | generally_available | [docs](https://docs.airbyte.com/integrations/destinations/s3) | [connectors/destination/s3](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/s3) | [destination-s3](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-s3) | `4816b78f-1489-44c1-9060-4b19d5fa9362` |
+| **S3 Glue** | | Destination | airbyte/destination-s3-glue:0.1.5 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/s3-glue) | [connectors/destination/s3-glue](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/s3-glue) | [destination-s3-glue](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-s3-glue) | `471e5cab-8ed1-49f3-ba11-79c687784737` |
+| **SFTP-JSON** | | Destination | airbyte/destination-sftp-json:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/sftp-json) | [connectors/destination/sftp-json](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/sftp-json) | [destination-sftp-json](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-sftp-json) | `e9810f61-4bab-46d2-bb22-edfc902e0644` |
+| **Scylla** | | Destination | airbyte/destination-scylla:0.1.3 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/scylla) | [connectors/destination/scylla](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/scylla) | [destination-scylla](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-scylla) | `3dc6f384-cd6b-4be3-ad16-a41450899bf0` |
+| **SelectDB** | | Destination | airbyte/destination-selectdb:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/selectdb) | [connectors/destination/selectdb](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/selectdb) | [destination-selectdb](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-selectdb) | `50a559a7-6323-4e33-8aa0-51dfd9dfadac` |
+| **Snowflake** | | Destination | airbyte/destination-snowflake:0.4.61 | generally_available | [docs](https://docs.airbyte.com/integrations/destinations/snowflake) | [connectors/destination/snowflake](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/snowflake) | [destination-snowflake](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-snowflake) | `424892c4-daac-4491-b35d-c6688ba547ba` |
+| **Streamr** | | Destination | ghcr.io/devmate-cloud/streamr-airbyte-connectors:0.0.1 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/streamr) | [connectors/destination/devmate-cloud](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/devmate-cloud) | [devmate-cloud](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/devmate-cloud) | `eebd85cf-60b2-4af6-9ba0-edeca01437b0` |
+| **Teradata Vantage** | | Destination | airbyte/destination-teradata:0.1.1 | alpha | [docs](https://docs.airbyte.io/integrations/destinations/teradata) | [connectors/destination/teradata](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/teradata) | [destination-teradata](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-teradata) | `58e6f9da-904e-11ed-a1eb-0242ac120002` |
+| **TiDB** | | Destination | airbyte/destination-tidb:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/tidb) | [connectors/destination/tidb](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/tidb) | [destination-tidb](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-tidb) | `06ec60c7-7468-45c0-91ac-174f6e1a788b` |
+| **Typesense** | | Destination | airbyte/destination-typesense:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/typesense) | [connectors/destination/typesense](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/typesense) | [destination-typesense](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-typesense) | `36be8dc6-9851-49af-b776-9d4c30e4ab6a` |
+| **Weaviate** | | Destination | airbyte/destination-weaviate:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/weaviate) | [connectors/destination/weaviate](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/weaviate) | [destination-weaviate](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-weaviate) | `7b7d7a0d-954c-45a0-bcfc-39a634b97736` |
+| **YugabyteDB** | | Destination | airbyte/destination-yugabytedb:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/destinations/yugabytedb) | [connectors/destination/yugabytedb](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/destination/yugabytedb) | [destination-yugabytedb](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/destination-yugabytedb) | `2300fdcf-a532-419f-9f24-a014336e7966` |
\ No newline at end of file
From d1b72d5e80c17161c369a3bfa64df9caae049279 Mon Sep 17 00:00:00 2001
From: Davin Chia
Date: Thu, 13 Apr 2023 15:47:31 -0700
Subject: [PATCH 061/187] Housekeeping: Remove unused workflows. (#25191)
This is no longer used with Move's move to Zenhub.
---
.../workflows/platform-workflow-labels.yml | 41 -------------------
1 file changed, 41 deletions(-)
delete mode 100644 .github/workflows/platform-workflow-labels.yml
diff --git a/.github/workflows/platform-workflow-labels.yml b/.github/workflows/platform-workflow-labels.yml
deleted file mode 100644
index 1cfc84310a85..000000000000
--- a/.github/workflows/platform-workflow-labels.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-name: Platform Workflow Labels
-
-on:
- issues:
- types: [ labeled, unlabeled ]
-
-jobs:
- label_issues:
- if: ${{ github.event.action == 'labeled' && github.event.label.name == 'team/platform-move' }}
- runs-on: ubuntu-latest
- permissions:
- issues: write
- steps:
- - name: Label Issue
- uses: andymckay/labeler@1.0.4
- with:
- add-labels: "platform-move/requires-grooming"
- repo-token: ${{ secrets.GITHUB_TOKEN }}
- - name: Add Issue To Project
- uses: actions/add-to-project@v0.3.0
- with:
- project-url: https://github.com/orgs/airbytehq/projects/25
- github-token: ${{ secrets.PLATFORM_WORKFLOW_PROJECT_AUTOMATION }}
- unlabel_issues:
- if: ${{ github.event.action == 'unlabeled' && github.event.label.name == 'team/platform-move' }}
- runs-on: ubuntu-latest
- permissions:
- issues: write
- steps:
- - name: Unlabel Issue
- uses: andymckay/labeler@1.0.4
- with:
- remove-labels: "platform-move/requires-grooming"
- repo-token: ${{ secrets.GITHUB_TOKEN }}
- - name: Remove Issue From Project
- uses: monry/actions-delete-issue-from-project@v2.0.1
- with:
- github-token: ${{ secrets.PLATFORM_WORKFLOW_PROJECT_AUTOMATION }}
- project-owner: airbytehq
- project-number: 25
- issue-id: ${{ github.event.issue.node_id }}
From 77e60bef1c39e053cf26b8d320e788d09f6e699e Mon Sep 17 00:00:00 2001
From: Cole Snodgrass
Date: Thu, 13 Apr 2023 16:00:06 -0700
Subject: [PATCH 062/187] increase sentry heartbeat - 43200->64800 (#25185)
* increase sentry heartbeat - 43200->64800
* Automated Change
---------
Co-authored-by: colesnodgrass
---
.../init-oss/src/main/resources/seed/oss_catalog.json | 2 +-
.../init-oss/src/main/resources/seed/source_definitions.yaml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index dfaef0496bce..7fb37ecba2cc 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -27624,7 +27624,7 @@
"allowedHosts": {
"hosts": [ "*" ]
},
- "maxSecondsBetweenMessages": 43200
+ "maxSecondsBetweenMessages": 64800
}, {
"sourceDefinitionId": "3dc3037c-5ce8-4661-adc2-f7a9e3c5ece5",
"name": "Zuora",
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
index 95461bdadb9e..357a3b10b582 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
@@ -2428,7 +2428,7 @@
allowedHosts:
hosts:
- "*"
- maxSecondsBetweenMessages: 43200
+ maxSecondsBetweenMessages: 64800
- name: Zuora
sourceDefinitionId: 3dc3037c-5ce8-4661-adc2-f7a9e3c5ece5
dockerRepository: airbyte/source-zuora
From abf2c19f6da9e389b2e498e21a814eb2da0bd166 Mon Sep 17 00:00:00 2001
From: timroes
Date: Fri, 14 Apr 2023 08:03:22 +0000
Subject: [PATCH 063/187] Bump Airbyte version from 0.43.2 to 0.44.0
---
.bumpversion.cfg | 2 +-
.env | 2 +-
docs/operator-guides/upgrading-airbyte.md | 2 +-
flags.yml | 2 ++
gradle.properties | 2 +-
octavia-cli/Dockerfile | 2 +-
octavia-cli/README.md | 2 +-
octavia-cli/install.sh | 2 +-
octavia-cli/setup.py | 2 +-
9 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/.bumpversion.cfg b/.bumpversion.cfg
index b1c362312671..44430afc19b0 100644
--- a/.bumpversion.cfg
+++ b/.bumpversion.cfg
@@ -1,5 +1,5 @@
[bumpversion]
-current_version = 0.43.2
+current_version = 0.44.0
commit = False
tag = False
parse = (?P\d+)\.(?P\d+)\.(?P\d+)(\-[a-z]+)?
diff --git a/.env b/.env
index 6e0399555de1..c4f298318f38 100644
--- a/.env
+++ b/.env
@@ -10,7 +10,7 @@
### SHARED ###
-VERSION=0.43.2
+VERSION=0.44.0
# When using the airbyte-db via default docker image
CONFIG_ROOT=/data
diff --git a/docs/operator-guides/upgrading-airbyte.md b/docs/operator-guides/upgrading-airbyte.md
index 446e42a0f3c5..5eba6572d1f3 100644
--- a/docs/operator-guides/upgrading-airbyte.md
+++ b/docs/operator-guides/upgrading-airbyte.md
@@ -109,7 +109,7 @@ If you are upgrading from (i.e. your current version of Airbyte is) Airbyte vers
Here's an example of what it might look like with the values filled in. It assumes that the downloaded `airbyte_archive.tar.gz` is in `/tmp`.
```bash
- docker run --rm -v /tmp:/config airbyte/migration:0.43.2 --\
+ docker run --rm -v /tmp:/config airbyte/migration:0.44.0 --\
--input /config/airbyte_archive.tar.gz\
--output /config/airbyte_archive_migrated.tar.gz
```
diff --git a/flags.yml b/flags.yml
index 032f2836bf03..9b468b5ba11d 100644
--- a/flags.yml
+++ b/flags.yml
@@ -11,3 +11,5 @@ flags:
serve: false
- name: heartbeat-max-seconds-between-messages
serve: "10800"
+ - name: validation.removeValidationLimit
+ serve: false
diff --git a/gradle.properties b/gradle.properties
index fab9b9655592..12bf0a4cd9f8 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,4 +1,4 @@
-VERSION=0.43.2
+VERSION=0.44.0
# NOTE: some of these values are overwritten in CI!
# NOTE: if you want to override this for your local machine, set overrides in ~/.gradle/gradle.properties
diff --git a/octavia-cli/Dockerfile b/octavia-cli/Dockerfile
index 5639fab96511..285646c9c83a 100644
--- a/octavia-cli/Dockerfile
+++ b/octavia-cli/Dockerfile
@@ -14,5 +14,5 @@ USER octavia-cli
WORKDIR /home/octavia-project
ENTRYPOINT ["octavia"]
-LABEL io.airbyte.version=0.43.2
+LABEL io.airbyte.version=0.44.0
LABEL io.airbyte.name=airbyte/octavia-cli
diff --git a/octavia-cli/README.md b/octavia-cli/README.md
index 36160940be9f..d71556008f9b 100644
--- a/octavia-cli/README.md
+++ b/octavia-cli/README.md
@@ -104,7 +104,7 @@ This script:
```bash
touch ~/.octavia # Create a file to store env variables that will be mapped the octavia-cli container
mkdir my_octavia_project_directory # Create your octavia project directory where YAML configurations will be stored.
-docker run --name octavia-cli -i --rm -v my_octavia_project_directory:/home/octavia-project --network host --user $(id -u):$(id -g) --env-file ~/.octavia airbyte/octavia-cli:0.43.2
+docker run --name octavia-cli -i --rm -v my_octavia_project_directory:/home/octavia-project --network host --user $(id -u):$(id -g) --env-file ~/.octavia airbyte/octavia-cli:0.44.0
```
### Using `docker-compose`
diff --git a/octavia-cli/install.sh b/octavia-cli/install.sh
index 02d99e6d390d..8f07012a190b 100755
--- a/octavia-cli/install.sh
+++ b/octavia-cli/install.sh
@@ -3,7 +3,7 @@
# This install scripts currently only works for ZSH and Bash profiles.
# It creates an octavia alias in your profile bound to a docker run command and your current user.
-VERSION=0.43.2
+VERSION=0.44.0
OCTAVIA_ENV_FILE=${HOME}/.octavia
detect_profile() {
diff --git a/octavia-cli/setup.py b/octavia-cli/setup.py
index 960dcc259191..f0b5f74f1d7c 100644
--- a/octavia-cli/setup.py
+++ b/octavia-cli/setup.py
@@ -15,7 +15,7 @@
setup(
name="octavia-cli",
- version="0.43.2",
+ version="0.44.0",
description="A command line interface to manage Airbyte configurations",
long_description=README,
author="Airbyte",
From 961fe9983ae1bd714354a465102518300861339a Mon Sep 17 00:00:00 2001
From: Augustin
Date: Fri, 14 Apr 2023 10:41:03 +0200
Subject: [PATCH 064/187] dagger CI: auth to dockerhub (#25196)
* auth to dockerhub sometime
* map docker hub username and password to env var
* Revert "auth to dockerhub sometime"
This reverts commit d82bf8813a0ad276cd54ab2232e821379323f8b6.
* Revert "Revert "auth to dockerhub sometime""
This reverts commit bc9bc61d407e421d9ba9ce97d38092301448e6bf.
* login to dockerhub
* login to dockerhub
* revert changes
---
.github/actions/run-dagger-pipeline/action.yml | 5 +++++
.../workflows/connector_integration_test_single_dagger.yml | 5 +++++
.github/workflows/connector_nightly_builds_dagger.yml | 5 +++++
3 files changed, 15 insertions(+)
diff --git a/.github/actions/run-dagger-pipeline/action.yml b/.github/actions/run-dagger-pipeline/action.yml
index dca73bbb168e..58aed6f62d66 100644
--- a/.github/actions/run-dagger-pipeline/action.yml
+++ b/.github/actions/run-dagger-pipeline/action.yml
@@ -17,6 +17,11 @@ runs:
id: get-start-timestamp
run: echo "::set-output name=start-timestamp::$(date +%s)"
shell: bash
+ - name: Login to DockerHub
+ run: "docker login -u ${DOCKER_HUB_USERNAME} -p ${DOCKER_HUB_PASSWORD}"
+ env:
+ DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
+ DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
- name: Checkout Airbyte
uses: actions/checkout@v3
with:
diff --git a/.github/workflows/connector_integration_test_single_dagger.yml b/.github/workflows/connector_integration_test_single_dagger.yml
index 56a849133f49..44b9285a8d28 100644
--- a/.github/workflows/connector_integration_test_single_dagger.yml
+++ b/.github/workflows/connector_integration_test_single_dagger.yml
@@ -19,6 +19,11 @@ jobs:
- name: Get start timestamp
id: get-start-timestamp
run: echo "::set-output name=start-timestamp::$(date +%s)"
+ - name: Login to DockerHub
+ run: "docker login -u ${DOCKER_HUB_USERNAME} -p ${DOCKER_HUB_PASSWORD}"
+ env:
+ DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
+ DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
- name: Checkout Airbyte
uses: actions/checkout@v3
with:
diff --git a/.github/workflows/connector_nightly_builds_dagger.yml b/.github/workflows/connector_nightly_builds_dagger.yml
index 9723ec484d92..e43125995a1c 100644
--- a/.github/workflows/connector_nightly_builds_dagger.yml
+++ b/.github/workflows/connector_nightly_builds_dagger.yml
@@ -25,6 +25,11 @@ jobs:
- name: Get start timestamp
id: get-start-timestamp
run: echo "::set-output name=start-timestamp::$(date +%s)"
+ - name: Login to DockerHub
+ run: "docker login -u ${DOCKER_HUB_USERNAME} -p ${DOCKER_HUB_PASSWORD}"
+ env:
+ DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
+ DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
- name: Checkout Airbyte
uses: actions/checkout@v3
with:
From 3b911bcc04f60039e0e42c1d202ce06918474243 Mon Sep 17 00:00:00 2001
From: Augustin
Date: Fri, 14 Apr 2023 12:40:49 +0200
Subject: [PATCH 065/187] airbyte-ci: orchestrate the upload of modified
metadata.yaml files to GCS (#25044)
---
.../metadata_upload_manifest_dagger.yml | 22 +++++
.../lib/metadata_service/commands.py | 3 +-
.../lib/tests/test_commands.py | 4 +-
.../ci_connector_ops/pipelines/README.md | 7 +-
.../pipelines/actions/environments.py | 1 +
.../pipelines/commands/airbyte_ci.py | 11 ++-
.../pipelines/commands/groups/connectors.py | 2 +-
.../pipelines/commands/groups/metadata.py | 79 +++++++++++----
.../ci_connector_ops/pipelines/contexts.py | 1 +
.../pipelines/pipelines/metadata.py | 98 +++++++++++++++++--
.../ci_connector_ops/pipelines/utils.py | 75 +++++++++++---
tools/ci_connector_ops/setup.py | 1 +
12 files changed, 259 insertions(+), 45 deletions(-)
create mode 100644 .github/workflows/metadata_upload_manifest_dagger.yml
diff --git a/.github/workflows/metadata_upload_manifest_dagger.yml b/.github/workflows/metadata_upload_manifest_dagger.yml
new file mode 100644
index 000000000000..8f46252ffb77
--- /dev/null
+++ b/.github/workflows/metadata_upload_manifest_dagger.yml
@@ -0,0 +1,22 @@
+name: Upload modified metadata files to GCS
+
+on:
+ push:
+ branches:
+ - master
+jobs:
+ upload_modified_metadata_files_to_gcs:
+ name: Upload modified metadata files to GCS
+ runs-on: medium-runner
+ steps:
+ - name: Checkout Airbyte
+ uses: actions/checkout@v2
+ - name: Run metadata upload pipeline
+ id: metadata-upload-pipeline
+ uses: ./.github/actions/run-dagger-pipeline
+ with:
+ subcommand: "metadata upload dev-airbyte-cloud-connector-metadata-service"
+ context: "master"
+ env:
+ CI_GITHUB_ACCESS_TOKEN: ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }}
+ GCS_CREDENTIALS: ${{ secrets.METADATA_SERVICE_DEV_GCS_CREDENTIALS }}
diff --git a/airbyte-ci/connectors/metadata_service/lib/metadata_service/commands.py b/airbyte-ci/connectors/metadata_service/lib/metadata_service/commands.py
index 32668cfc58b5..a382b5979281 100644
--- a/airbyte-ci/connectors/metadata_service/lib/metadata_service/commands.py
+++ b/airbyte-ci/connectors/metadata_service/lib/metadata_service/commands.py
@@ -4,7 +4,6 @@
import pathlib
import click
-
from metadata_service.gcs_upload import upload_metadata_to_gcs
from metadata_service.validators.metadata_validator import validate_metadata_file
from pydantic import ValidationError
@@ -46,5 +45,7 @@ def upload(metadata_file_path: pathlib.Path, bucket_name: str, service_account_f
exit(1)
if uploaded:
click.secho(f"The metadata file {metadata_file_path} was uploaded to {blob_id}.", color="green")
+ exit(0)
else:
click.secho(f"The metadata file {metadata_file_path} was not uploaded.", color="yellow")
+ exit(5)
diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/test_commands.py b/airbyte-ci/connectors/metadata_service/lib/tests/test_commands.py
index ee6036ebafb9..35019919d940 100644
--- a/airbyte-ci/connectors/metadata_service/lib/tests/test_commands.py
+++ b/airbyte-ci/connectors/metadata_service/lib/tests/test_commands.py
@@ -45,11 +45,13 @@ def test_upload(mocker, valid_metadata_yaml_files, uploaded):
result = runner.invoke(
commands.upload, [metadata_file_path, "my-bucket", "-sa", metadata_file_path]
) # Using valid_metadata_yaml_files[0] as SA because it exists...
- assert result.exit_code == 0
if uploaded:
commands.click.secho.assert_called_with(f"The metadata file {metadata_file_path} was uploaded to blob_id.", color="green")
+ assert result.exit_code == 0
else:
commands.click.secho.assert_called_with(f"The metadata file {metadata_file_path} was not uploaded.", color="yellow")
+ # We exit with 5 status code to share with the CI pipeline that the upload was skipped.
+ assert result.exit_code == 5
@pytest.mark.parametrize(
diff --git a/tools/ci_connector_ops/ci_connector_ops/pipelines/README.md b/tools/ci_connector_ops/ci_connector_ops/pipelines/README.md
index 0d34b2dc1a0b..eca36d65d39f 100644
--- a/tools/ci_connector_ops/ci_connector_ops/pipelines/README.md
+++ b/tools/ci_connector_ops/ci_connector_ops/pipelines/README.md
@@ -125,7 +125,7 @@ The new metadata service also uses dagger for its reproducible CI pipeline.
To see all available commands run
```bash
-airbyte-ci metadata-service --help
+airbyte-ci metadata --help
```
For example to run the unit tests for the metadata service library you can run
@@ -133,6 +133,11 @@ For example to run the unit tests for the metadata service library you can run
airbyte-ci metadata test lib
```
+For example to upload all the connector metadata files to GCS:
+```bash
+# You should set a valid JSON service account in the GCS_CREDENTIALS env var before uploading the files.
+airbyte-ci metadata upload --all
+```
## Questions for the Dagger team
### Remaining questions:
diff --git a/tools/ci_connector_ops/ci_connector_ops/pipelines/actions/environments.py b/tools/ci_connector_ops/ci_connector_ops/pipelines/actions/environments.py
index e0d83d353b0f..20d97acb4f1c 100644
--- a/tools/ci_connector_ops/ci_connector_ops/pipelines/actions/environments.py
+++ b/tools/ci_connector_ops/ci_connector_ops/pipelines/actions/environments.py
@@ -15,6 +15,7 @@
if TYPE_CHECKING:
from ci_connector_ops.pipelines.contexts import ConnectorTestContext, PipelineContext
+
PYPROJECT_TOML_FILE_PATH = "pyproject.toml"
CONNECTOR_TESTING_REQUIREMENTS = [
diff --git a/tools/ci_connector_ops/ci_connector_ops/pipelines/commands/airbyte_ci.py b/tools/ci_connector_ops/ci_connector_ops/pipelines/commands/airbyte_ci.py
index 5359b9b1fc05..643f3a211848 100644
--- a/tools/ci_connector_ops/ci_connector_ops/pipelines/commands/airbyte_ci.py
+++ b/tools/ci_connector_ops/ci_connector_ops/pipelines/commands/airbyte_ci.py
@@ -6,7 +6,13 @@
import click
from ci_connector_ops.pipelines.contexts import CIContext
-from ci_connector_ops.pipelines.utils import get_current_epoch_time, get_current_git_branch, get_current_git_revision, get_modified_files
+from ci_connector_ops.pipelines.utils import (
+ get_current_epoch_time,
+ get_current_git_branch,
+ get_current_git_revision,
+ get_modified_files_in_branch,
+ get_modified_files_in_commit,
+)
from .groups.connectors import connectors
from .groups.metadata import metadata
@@ -46,7 +52,8 @@ def airbyte_ci(
)
ctx.obj["ci_context"] = ci_context
ctx.obj["pipeline_start_timestamp"] = pipeline_start_timestamp
- ctx.obj["modified_files"] = get_modified_files(git_branch, git_revision, diffed_branch, is_local)
+ ctx.obj["modified_files_in_branch"] = get_modified_files_in_branch(git_branch, git_revision, diffed_branch, is_local)
+ ctx.obj["modified_files_in_commit"] = get_modified_files_in_commit(git_branch, git_revision, is_local)
airbyte_ci.add_command(connectors)
diff --git a/tools/ci_connector_ops/ci_connector_ops/pipelines/commands/groups/connectors.py b/tools/ci_connector_ops/ci_connector_ops/pipelines/commands/groups/connectors.py
index ed1701abd8d6..a41216b837db 100644
--- a/tools/ci_connector_ops/ci_connector_ops/pipelines/commands/groups/connectors.py
+++ b/tools/ci_connector_ops/ci_connector_ops/pipelines/commands/groups/connectors.py
@@ -108,7 +108,7 @@ def test(
connector_name (str): The connector technical name. E.G. source-pokeapi
"""
connectors_under_test = get_all_released_connectors()
- modified_connectors = get_modified_connectors(ctx.obj["modified_files"])
+ modified_connectors = get_modified_connectors(ctx.obj["modified_files_in_branch"])
if modified:
connectors_under_test = modified_connectors
else:
diff --git a/tools/ci_connector_ops/ci_connector_ops/pipelines/commands/groups/metadata.py b/tools/ci_connector_ops/ci_connector_ops/pipelines/commands/groups/metadata.py
index c7746e8294e0..31d2ffe11a7a 100644
--- a/tools/ci_connector_ops/ci_connector_ops/pipelines/commands/groups/metadata.py
+++ b/tools/ci_connector_ops/ci_connector_ops/pipelines/commands/groups/metadata.py
@@ -1,18 +1,19 @@
-import click
-import anyio
+#
+# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
+#
import logging
-from rich.logging import RichHandler
-
+import anyio
+import click
+from ci_connector_ops.pipelines.contexts import CIContext
from ci_connector_ops.pipelines.pipelines.metadata import (
run_metadata_lib_test_pipeline,
run_metadata_orchestrator_test_pipeline,
+ run_metadata_upload_pipeline,
run_metadata_validation_pipeline,
)
-from ci_connector_ops.pipelines.utils import (
- DaggerPipelineCommand,
- get_modified_connectors,
-)
+from ci_connector_ops.pipelines.utils import DaggerPipelineCommand, get_all_metadata_files, get_modified_metadata_files
+from rich.logging import RichHandler
logging.basicConfig(level=logging.INFO, format="%(name)s: %(message)s", datefmt="[%X]", handlers=[RichHandler(rich_tracebacks=True)])
logger = logging.getLogger(__name__)
@@ -30,29 +31,69 @@ def metadata(ctx: click.Context):
@metadata.command(cls=DaggerPipelineCommand, help="Commands related to validating the metadata files.")
+@click.option("--modified-only/--all", default=True)
@click.pass_context
-def validate(ctx: click.Context):
- modified_files = ctx.obj["modified_files"]
- modified_connectors = get_modified_connectors(modified_files)
+def validate(ctx: click.Context, modified_only: bool):
+ if modified_only:
+ modified_files = ctx.obj["modified_files_in_branch"]
+ metadata_to_validate = get_modified_metadata_files(modified_files)
+ if not metadata_to_validate:
+ click.secho("No modified metadata found. Skipping metadata validation.")
+ return
+ else:
+ click.secho("Will run metadata validation on all the metadata files found in the repo.")
+ metadata_to_validate = get_all_metadata_files()
+
+ click.secho(f"Will validate {len(metadata_to_validate)} metadata files.")
+
+ return anyio.run(
+ run_metadata_validation_pipeline,
+ ctx.obj["is_local"],
+ ctx.obj["git_branch"],
+ ctx.obj["git_revision"],
+ ctx.obj.get("gha_workflow_run_url"),
+ ctx.obj.get("pipeline_start_timestamp"),
+ ctx.obj.get("ci_context"),
+ metadata_to_validate,
+ )
- if not modified_connectors:
- click.secho("No modified connectors found. Skipping metadata validation.")
- return
- metadata_connectors = [connector.technical_name for connector in modified_connectors]
- metadata_source_paths = [connector.code_directory for connector in modified_connectors]
+# UPLOAD COMMAND
- click.secho(f"Validating metadata for the following connectors: {', '.join(metadata_connectors)}")
+
+@metadata.command(cls=DaggerPipelineCommand, help="Commands related to uploading the metadata files to remote storage.")
+@click.argument("gcs-bucket-name", type=click.STRING)
+@click.option(
+ "--gcs-credentials", help="Credentials in JSON format with permission to get and upload on the GCS bucket", envvar="GCS_CREDENTIALS"
+)
+@click.option("--modified-only/--all", default=True)
+@click.pass_context
+def upload(ctx: click.Context, gcs_bucket_name: str, gcs_credentials: str, modified_only: bool):
+ if modified_only:
+ if ctx.obj["ci_context"] is not CIContext.MASTER and ctx.obj["git_branch"] != "master":
+ click.secho("Not on the master branch. Skipping metadata upload.")
+ return
+ modified_files = ctx.obj["modified_files_in_commit"]
+ metadata_to_upload = get_modified_metadata_files(modified_files)
+ if not metadata_to_upload:
+ click.secho("No modified metadata found. Skipping metadata upload.")
+ return
+ else:
+ metadata_to_upload = get_all_metadata_files()
+
+ click.secho(f"Will upload {len(metadata_to_upload)} metadata files.")
return anyio.run(
- run_metadata_validation_pipeline,
+ run_metadata_upload_pipeline,
ctx.obj["is_local"],
ctx.obj["git_branch"],
ctx.obj["git_revision"],
ctx.obj.get("gha_workflow_run_url"),
ctx.obj.get("pipeline_start_timestamp"),
ctx.obj.get("ci_context"),
- metadata_source_paths,
+ metadata_to_upload,
+ gcs_bucket_name,
+ gcs_credentials,
)
diff --git a/tools/ci_connector_ops/ci_connector_ops/pipelines/contexts.py b/tools/ci_connector_ops/ci_connector_ops/pipelines/contexts.py
index c970524adcf0..09dd70ac95b7 100644
--- a/tools/ci_connector_ops/ci_connector_ops/pipelines/contexts.py
+++ b/tools/ci_connector_ops/ci_connector_ops/pipelines/contexts.py
@@ -28,6 +28,7 @@ class CIContext(str, Enum):
MANUAL = "manual"
PULL_REQUEST = "pull_request"
NIGHTLY_BUILDS = "nightly_builds"
+ MASTER = "master"
class ContextState(Enum):
diff --git a/tools/ci_connector_ops/ci_connector_ops/pipelines/pipelines/metadata.py b/tools/ci_connector_ops/ci_connector_ops/pipelines/pipelines/metadata.py
index e1caa509d8c7..42a31c198849 100644
--- a/tools/ci_connector_ops/ci_connector_ops/pipelines/pipelines/metadata.py
+++ b/tools/ci_connector_ops/ci_connector_ops/pipelines/pipelines/metadata.py
@@ -1,6 +1,7 @@
#
# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
#
+import uuid
from pathlib import Path
from typing import Optional, Set
@@ -8,7 +9,7 @@
from ci_connector_ops.pipelines.actions.environments import with_poetry_module
from ci_connector_ops.pipelines.bases import Step, StepStatus, TestReport
from ci_connector_ops.pipelines.contexts import PipelineContext
-from ci_connector_ops.pipelines.utils import DAGGER_CONFIG, execute_concurrently
+from ci_connector_ops.pipelines.utils import DAGGER_CONFIG, METADATA_FILE_NAME, execute_concurrently
METADATA_DIR = "airbyte-ci/connectors/metadata_service"
METADATA_LIB_MODULE_PATH = "lib"
@@ -28,14 +29,56 @@ async def _run(self, poetry_run_args: list) -> StepStatus:
return await self.get_step_result(poetry_run_exec)
+def get_metadata_file_from_path(context: PipelineContext, metadata_path: Path) -> dagger.File:
+ if metadata_path.is_file() and metadata_path.name != METADATA_FILE_NAME:
+ breakpoint()
+ raise ValueError(f"The metadata file name is not {METADATA_FILE_NAME}, it is {metadata_path.name} .")
+ if metadata_path.is_dir():
+ metadata_path = metadata_path / METADATA_FILE_NAME
+ if not metadata_path.exists():
+ raise FileNotFoundError(f"{str(metadata_path)} does not exist.")
+ return context.get_repo_dir(str(metadata_path.parent), include=[METADATA_FILE_NAME]).file(METADATA_FILE_NAME)
+
+
class MetadataValidation(PoetryRun):
- def __init__(self, context: PipelineContext, metadata_file_path: Path):
- super().__init__(context, f"Validate {metadata_file_path}", METADATA_DIR, METADATA_LIB_MODULE_PATH)
- self.metadata_file = self.context.get_repo_dir(str(metadata_file_path), include=["metadata.yaml"]).file("metadata.yaml")
- self.poetry_run_container = self.poetry_run_container.with_mounted_file("metadata.yaml", self.metadata_file)
+ def __init__(self, context: PipelineContext, metadata_path: Path):
+ title = f"Validate {metadata_path}"
+ super().__init__(context, title, METADATA_DIR, METADATA_LIB_MODULE_PATH)
+ self.poetry_run_container = self.poetry_run_container.with_mounted_file(
+ METADATA_FILE_NAME, get_metadata_file_from_path(context, metadata_path)
+ )
+
+ async def _run(self) -> StepStatus:
+ return await super()._run(["metadata_service", "validate", METADATA_FILE_NAME])
+
+
+class MetadataUpload(PoetryRun):
+
+ GCS_CREDENTIALS_CONTAINER_PATH = "gcs_credentials.json"
+
+ def __init__(self, context: PipelineContext, metadata_path: Path, gcs_bucket_name: str, gcs_credentials: str):
+ title = f"Upload {metadata_path}"
+ self.gcs_bucket_name = gcs_bucket_name
+ super().__init__(context, title, METADATA_DIR, METADATA_LIB_MODULE_PATH)
+ self.poetry_run_container = (
+ self.poetry_run_container.with_file(METADATA_FILE_NAME, get_metadata_file_from_path(context, metadata_path)).with_new_file(
+ self.GCS_CREDENTIALS_CONTAINER_PATH, gcs_credentials
+ )
+ # The cache buster ensures we always run the upload command (in case of remote bucket change)
+ .with_env_variable("CACHEBUSTER", str(uuid.uuid4()))
+ )
async def _run(self) -> StepStatus:
- return await super()._run(["metadata_service", "validate", "metadata.yaml"])
+ return await super()._run(
+ [
+ "metadata_service",
+ "upload",
+ METADATA_FILE_NAME,
+ self.gcs_bucket_name,
+ "--service-account-file-path",
+ self.GCS_CREDENTIALS_CONTAINER_PATH,
+ ]
+ )
async def run_metadata_validation_pipeline(
@@ -45,7 +88,7 @@ async def run_metadata_validation_pipeline(
gha_workflow_run_url: Optional[str],
pipeline_start_timestamp: Optional[int],
ci_context: Optional[str],
- metadata_source_paths: Set[Path],
+ metadata_to_validate: Set[Path],
) -> bool:
metadata_pipeline_context = PipelineContext(
pipeline_name="Metadata Service Validation Pipeline",
@@ -60,9 +103,9 @@ async def run_metadata_validation_pipeline(
async with dagger.Connection(DAGGER_CONFIG) as dagger_client:
metadata_pipeline_context.dagger_client = dagger_client.pipeline(metadata_pipeline_context.pipeline_name)
async with metadata_pipeline_context:
- validation_steps = [MetadataValidation(metadata_pipeline_context, metadata_path).run for metadata_path in metadata_source_paths]
+ validation_steps = [MetadataValidation(metadata_pipeline_context, metadata_path).run for metadata_path in metadata_to_validate]
- results = await execute_concurrently(validation_steps, concurrency=len(validation_steps))
+ results = await execute_concurrently(validation_steps, concurrency=10)
metadata_pipeline_context.test_report = TestReport(pipeline_context=metadata_pipeline_context, steps_results=results)
return metadata_pipeline_context.test_report.success
@@ -132,3 +175,40 @@ async def run_metadata_orchestrator_test_pipeline(
metadata_pipeline_context.test_report = TestReport(pipeline_context=metadata_pipeline_context, steps_results=[result])
return metadata_pipeline_context.test_report.success
+
+
+async def run_metadata_upload_pipeline(
+ is_local: bool,
+ git_branch: str,
+ git_revision: str,
+ gha_workflow_run_url: Optional[str],
+ pipeline_start_timestamp: Optional[int],
+ ci_context: Optional[str],
+ metadata_to_upload: Set[Path],
+ gcs_bucket_name: str,
+ gcs_credentials: str,
+) -> bool:
+ pipeline_context = PipelineContext(
+ pipeline_name="Metadata Upload Pipeline",
+ is_local=is_local,
+ git_branch=git_branch,
+ git_revision=git_revision,
+ gha_workflow_run_url=gha_workflow_run_url,
+ pipeline_start_timestamp=pipeline_start_timestamp,
+ ci_context=ci_context,
+ )
+
+ async with dagger.Connection(DAGGER_CONFIG) as dagger_client:
+ pipeline_context.dagger_client = dagger_client.pipeline(pipeline_context.pipeline_name)
+
+ async with pipeline_context:
+
+ results = await execute_concurrently(
+ [
+ MetadataUpload(pipeline_context, metadata_path, gcs_bucket_name, gcs_credentials).run
+ for metadata_path in metadata_to_upload
+ ]
+ )
+ pipeline_context.test_report = TestReport(pipeline_context, results)
+
+ return pipeline_context.test_report.success
diff --git a/tools/ci_connector_ops/ci_connector_ops/pipelines/utils.py b/tools/ci_connector_ops/ci_connector_ops/pipelines/utils.py
index aed7e1508eae..9f94f80fc86d 100644
--- a/tools/ci_connector_ops/ci_connector_ops/pipelines/utils.py
+++ b/tools/ci_connector_ops/ci_connector_ops/pipelines/utils.py
@@ -8,6 +8,7 @@
import re
import sys
import unicodedata
+from glob import glob
from pathlib import Path
from typing import Any, Callable, List, Optional, Set
@@ -17,9 +18,11 @@
import git
from ci_connector_ops.utils import DESTINATION_CONNECTOR_PATH_PREFIX, SOURCE_CONNECTOR_PATH_PREFIX, Connector, get_connector_name_from_path
from dagger import Config, Connection, Container, DaggerError, File, QueryError
+from more_itertools import chunked
DAGGER_CONFIG = Config(log_output=sys.stderr)
AIRBYTE_REPO_URL = "https://github.com/airbytehq/airbyte.git"
+METADATA_FILE_NAME = "metadata.yaml"
# This utils will probably be redundant once https://github.com/dagger/dagger/issues/3764 is implemented
@@ -122,7 +125,9 @@ def get_current_epoch_time() -> int: # noqa D103
return round(datetime.datetime.utcnow().timestamp())
-async def get_modified_files_remote(current_git_branch: str, current_git_revision: str, diffed_branch: str = "origin/master") -> Set[str]:
+async def get_modified_files_in_branch_remote(
+ current_git_branch: str, current_git_revision: str, diffed_branch: str = "origin/master"
+) -> Set[str]:
"""Use git diff to spot the modified files on the remote branch."""
async with Connection(DAGGER_CONFIG) as dagger_client:
modified_files = await (
@@ -151,19 +156,58 @@ async def get_modified_files_remote(current_git_branch: str, current_git_revisio
return set(modified_files.split("\n"))
-def get_modified_files_local(current_git_revision: str, diffed_branch: str = "master") -> Set[str]:
+def get_modified_files_in_branch_local(current_git_revision: str, diffed_branch: str = "master") -> Set[str]:
"""Use git diff to spot the modified files on the local branch."""
airbyte_repo = git.Repo()
modified_files = airbyte_repo.git.diff("--diff-filter=MA", "--name-only", f"{diffed_branch}...{current_git_revision}").split("\n")
return set(modified_files)
-def get_modified_files(current_git_branch: str, current_git_revision: str, diffed_branch: str, is_local: bool = True) -> Set[str]:
+def get_modified_files_in_branch(current_git_branch: str, current_git_revision: str, diffed_branch: str, is_local: bool = True) -> Set[str]:
"""Retrieve the list of modified files on the branch."""
if is_local:
- return get_modified_files_local(current_git_revision, diffed_branch)
+ return get_modified_files_in_branch_local(current_git_revision, diffed_branch)
else:
- return anyio.run(get_modified_files_remote, current_git_branch, current_git_revision, diffed_branch)
+ return anyio.run(get_modified_files_in_branch_remote, current_git_branch, current_git_revision, diffed_branch)
+
+
+async def get_modified_files_in_commit_remote(current_git_branch: str, current_git_revision: str) -> Set[str]:
+ async with Connection(DAGGER_CONFIG) as dagger_client:
+ modified_files = await (
+ dagger_client.container()
+ .from_("alpine/git:latest")
+ .with_workdir("/repo")
+ .with_exec(["init"])
+ .with_env_variable("CACHEBUSTER", current_git_revision)
+ .with_exec(
+ [
+ "remote",
+ "add",
+ "--fetch",
+ "--track",
+ current_git_branch,
+ "origin",
+ AIRBYTE_REPO_URL,
+ ]
+ )
+ .with_exec(["checkout", "-t", f"origin/{current_git_branch}"])
+ .with_exec(["diff-tree", "--no-commit-id", "--name-only", current_git_revision, "-r"])
+ .stdout()
+ )
+ return set(modified_files.split("\n"))
+
+
+def get_modified_files_in_commit_local(current_git_revision: str) -> Set[str]:
+ airbyte_repo = git.Repo()
+ modified_files = airbyte_repo.git.diff_tree("--no-commit-id", "--name-only", current_git_revision, "-r").split("\n")
+ return set(modified_files)
+
+
+def get_modified_files_in_commit(current_git_branch: str, current_git_revision: str, is_local: bool = True) -> Set[str]:
+ if is_local:
+ return get_modified_files_in_commit_local(current_git_revision)
+ else:
+ return anyio.run(get_modified_files_in_commit_remote, current_git_branch, current_git_revision)
def get_modified_connectors(modified_files: Set[str]) -> Set[Connector]:
@@ -175,6 +219,14 @@ def get_modified_connectors(modified_files: Set[str]) -> Set[Connector]:
return set(modified_connectors)
+def get_modified_metadata_files(modified_files: Set[str]) -> Set[Path]:
+ return {Path(f) for f in modified_files if f.endswith(METADATA_FILE_NAME) and f.startswith("airbyte-integrations/connectors")}
+
+
+def get_all_metadata_files() -> Set[Path]:
+ return {Path(metadata_file) for metadata_file in glob("airbyte-integrations/connectors/**/metadata.yaml", recursive=True)}
+
+
def slugify(value: Any, allow_unicode: bool = False):
"""
Taken from https://github.com/django/django/blob/master/django/utils/text.py.
@@ -249,10 +301,11 @@ def invoke(self, ctx: click.Context) -> Any:
return sys.exit(1)
-async def execute_concurrently(steps: List[Callable], concurrency: int = 5):
- semaphore = anyio.Semaphore(concurrency)
- async with semaphore:
+async def execute_concurrently(steps: List[Callable], concurrency=5):
+ tasks = []
+ # Asyncer does not have builtin semaphore, so control concurrency via chunks of steps
+ # Anyio has semaphores but does not have the soonify method which allow access to results via the value task attribute.
+ for chunk in chunked(steps, concurrency):
async with asyncer.create_task_group() as task_group:
- tasks = [task_group.soonify(step)() for step in steps]
-
- return [task.value for task in tasks]
+ tasks += [task_group.soonify(step)() for step in chunk]
+ return [task.value for task in tasks]
diff --git a/tools/ci_connector_ops/setup.py b/tools/ci_connector_ops/setup.py
index 9616de6d8b08..aaf7bb35a499 100644
--- a/tools/ci_connector_ops/setup.py
+++ b/tools/ci_connector_ops/setup.py
@@ -46,6 +46,7 @@ def local_pkg(name: str) -> str:
"dagger-io==0.5.0",
"asyncer",
"anyio",
+ "more-itertools",
]
setup(
From 4b4598fefa56c7c0470694fed750c9ce92c0cac8 Mon Sep 17 00:00:00 2001
From: Arsen Losenko <20901439+arsenlosenko@users.noreply.github.com>
Date: Fri, 14 Apr 2023 18:06:20 +0300
Subject: [PATCH 066/187] Source Hubspot: update expected records (#25152)
* Source Hubspot: update expected records
* Update expected records
---
.../source-hubspot/integration_tests/expected_records.jsonl | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/airbyte-integrations/connectors/source-hubspot/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-hubspot/integration_tests/expected_records.jsonl
index e4ef67c04b0f..d2be7cc0c90a 100644
--- a/airbyte-integrations/connectors/source-hubspot/integration_tests/expected_records.jsonl
+++ b/airbyte-integrations/connectors/source-hubspot/integration_tests/expected_records.jsonl
@@ -17,9 +17,9 @@
{"stream": "products", "data": {"id": "1783898388", "properties": {"amount": null, "createdate": "2023-01-31T00:08:27.149000+00:00", "description": null, "discount": null, "hs_all_accessible_team_ids": null, "hs_all_assigned_business_unit_ids": null, "hs_all_owner_ids": null, "hs_all_team_ids": null, "hs_avatar_filemanager_key": null, "hs_cost_of_goods_sold": null, "hs_created_by_user_id": 12282590, "hs_createdate": null, "hs_discount_percentage": null, "hs_folder_id": null, "hs_images": null, "hs_lastmodifieddate": "2023-01-31T00:28:58.829000+00:00", "hs_merged_object_ids": null, "hs_object_id": 1783898388, "hs_product_type": "inventory", "hs_read_only": null, "hs_recurring_billing_period": null, "hs_recurring_billing_start_date": null, "hs_sku": null, "hs_unique_creation_key": null, "hs_updated_by_user_id": 12282590, "hs_url": null, "hs_user_ids_of_all_notification_followers": null, "hs_user_ids_of_all_notification_unfollowers": null, "hs_user_ids_of_all_owners": null, "hubspot_owner_assigneddate": null, "hubspot_owner_id": null, "hubspot_team_id": null, "name": "test", "price": 1.0, "quantity": null, "recurringbillingfrequency": null, "tax": null, "test": null, "test_product_price": null}, "createdAt": "2023-01-31T00:08:27.149Z", "updatedAt": "2023-01-31T00:28:58.829Z", "archived": false}, "emitted_at": 1675125114562}
{"stream": "subscription_changes", "data": {"timestamp": 1675123491624, "recipient": "testingapicontact_0@hubspot.com", "portalId": 8727216, "normalizedEmailId": "6b59e963-cabc-4bf8-baec-feab401bdd98", "changes": [{"source": "SOURCE_HUBSPOT_CUSTOMER", "timestamp": 1675123491624, "changeType": "SUBSCRIPTION_STATUS", "subscriptionId": 23704464, "portalId": 8727216, "causedByEvent": {"id": "cd276838-3925-4649-9a38-2b61761362c4", "created": 1675123491624}, "change": "SUBSCRIBED"}]}, "emitted_at": 1675125115109}
{"stream": "workflows", "data": {"migrationStatus": {"portalId": 8727216, "workflowId": 40032127, "migrationStatus": "EXECUTION_MIGRATED", "enrollmentMigrationStatus": "PLATFORM_OWNED", "platformOwnsActions": true, "lastSuccessfulMigrationTimestamp": null, "enrollmentMigrationTimestamp": null, "flowId": 321690519}, "name": "Unnamed workflow - Mon Mar 15 2021 12:58:03 GMT+0200 (cloned)", "id": 40032127, "type": "DRIP_DELAY", "portalId": 8727216, "insertedAt": 1675124258190, "updatedAt": 1675124308226, "enabled": true, "description": "", "contactListIds": {"enrolled": 167, "active": 168, "completed": 169, "succeeded": 170}, "creationSource": {"sourceApplication": {"source": "DIRECT_API", "serviceName": "AutomationPlatformService-userweb"}, "createdByUser": {"userId": 12282590, "userEmail": "integration-test@airbyte.io"}, "clonedFromWorkflowId": 23314874, "createdAt": 1675124258186}, "updateSource": {"sourceApplication": {"source": "DIRECT_API", "serviceName": "AutomationPlatformService-userweb"}, "updatedByUser": {"userId": 12282590, "userEmail": "integration-test@airbyte.io"}, "updatedAt": 1675124308226}, "originalAuthorUserId": 12282590, "personaTagIds": [], "lastUpdatedByUserId": 12282590, "contactCounts": {"active": 0, "enrolled": 0}}, "emitted_at": 1675125115992}
-{"stream": "companies", "data": {"id": "4992593519", "properties": {"about_us": null, "address": null, "address2": null, "annualrevenue": null, "city": "San Francisco", "closedate": null, "closedate_timestamp_earliest_value_a2a17e6e": null, "country": "United States", "createdate": "2020-12-10T07:58:09.554000+00:00", "days_to_close": null, "description": "Airbyte is an open-source data integration platform to build ELT pipelines. Consolidate your data in your data warehouses, lakes and databases.", "domain": "airbyte.io", "engagements_last_meeting_booked": null, "engagements_last_meeting_booked_campaign": null, "engagements_last_meeting_booked_medium": null, "engagements_last_meeting_booked_source": null, "facebook_company_page": null, "facebookfans": null, "first_contact_createdate": null, "first_contact_createdate_timestamp_earliest_value_78b50eea": null, "first_conversion_date": null, "first_conversion_date_timestamp_earliest_value_61f58f2c": null, "first_conversion_event_name": null, "first_conversion_event_name_timestamp_earliest_value_68ddae0a": null, "first_deal_created_date": "2021-05-21T10:17:06.028000+00:00", "founded_year": "2020", "googleplus_page": null, "hs_additional_domains": null, "hs_all_accessible_team_ids": null, "hs_all_assigned_business_unit_ids": null, "hs_all_owner_ids": "52550153", "hs_all_team_ids": null, "hs_analytics_first_timestamp": null, "hs_analytics_first_timestamp_timestamp_earliest_value_11e3a63a": null, "hs_analytics_first_touch_converting_campaign": null, "hs_analytics_first_touch_converting_campaign_timestamp_earliest_value_4757fe10": null, "hs_analytics_first_visit_timestamp": null, "hs_analytics_first_visit_timestamp_timestamp_earliest_value_accc17ae": null, "hs_analytics_last_timestamp": null, "hs_analytics_last_timestamp_timestamp_latest_value_4e16365a": null, "hs_analytics_last_touch_converting_campaign": null, "hs_analytics_last_touch_converting_campaign_timestamp_latest_value_81a64e30": null, "hs_analytics_last_visit_timestamp": null, "hs_analytics_last_visit_timestamp_timestamp_latest_value_999a0fce": null, "hs_analytics_latest_source": null, "hs_analytics_latest_source_data_1": null, "hs_analytics_latest_source_data_2": null, "hs_analytics_latest_source_timestamp": null, "hs_analytics_num_page_views": null, "hs_analytics_num_page_views_cardinality_sum_e46e85b0": null, "hs_analytics_num_visits": null, "hs_analytics_num_visits_cardinality_sum_53d952a6": null, "hs_analytics_source": null, "hs_analytics_source_data_1": null, "hs_analytics_source_data_1_timestamp_earliest_value_9b2f1fa1": null, "hs_analytics_source_data_2": null, "hs_analytics_source_data_2_timestamp_earliest_value_9b2f9400": null, "hs_analytics_source_timestamp_earliest_value_25a3a52c": null, "hs_annual_revenue_currency_code": "USD", "hs_avatar_filemanager_key": null, "hs_created_by_user_id": 12282590, "hs_createdate": null, "hs_date_entered_customer": null, "hs_date_entered_evangelist": null, "hs_date_entered_lead": null, "hs_date_entered_marketingqualifiedlead": null, "hs_date_entered_opportunity": "2021-05-21T10:17:28.964000+00:00", "hs_date_entered_other": null, "hs_date_entered_salesqualifiedlead": null, "hs_date_entered_subscriber": null, "hs_date_exited_customer": null, "hs_date_exited_evangelist": null, "hs_date_exited_lead": null, "hs_date_exited_marketingqualifiedlead": null, "hs_date_exited_opportunity": null, "hs_date_exited_other": null, "hs_date_exited_salesqualifiedlead": null, "hs_date_exited_subscriber": null, "hs_ideal_customer_profile": null, "hs_is_target_account": null, "hs_last_booked_meeting_date": null, "hs_last_logged_call_date": null, "hs_last_open_task_date": null, "hs_last_sales_activity_date": null, "hs_last_sales_activity_timestamp": null, "hs_last_sales_activity_type": null, "hs_lastmodifieddate": "2023-01-26T11:45:49.817000+00:00", "hs_latest_createdate_of_active_subscriptions": null, "hs_latest_meeting_activity": null, "hs_lead_status": null, "hs_merged_object_ids": null, "hs_num_blockers": null, "hs_num_child_companies": 0.0, "hs_num_contacts_with_buying_roles": null, "hs_num_decision_makers": null, "hs_num_open_deals": 1.0, "hs_object_id": 4992593519, "hs_parent_company_id": null, "hs_pinned_engagement_id": null, "hs_pipeline": null, "hs_predictivecontactscore_v2": null, "hs_predictivecontactscore_v2_next_max_max_d4e58c1e": null, "hs_read_only": null, "hs_sales_email_last_replied": null, "hs_target_account": null, "hs_target_account_probability": 0.5476861596107483, "hs_target_account_recommendation_snooze_time": null, "hs_target_account_recommendation_state": null, "hs_time_in_customer": null, "hs_time_in_evangelist": null, "hs_time_in_lead": null, "hs_time_in_marketingqualifiedlead": null, "hs_time_in_opportunity": 56015197090.0, "hs_time_in_other": null, "hs_time_in_salesqualifiedlead": null, "hs_time_in_subscriber": null, "hs_total_deal_value": null, "hs_unique_creation_key": null, "hs_updated_by_user_id": 12282590, "hs_user_ids_of_all_notification_followers": null, "hs_user_ids_of_all_notification_unfollowers": null, "hs_user_ids_of_all_owners": "12282590", "hubspot_owner_assigneddate": "2020-12-10T07:58:09.554000+00:00", "hubspot_owner_id": "52550153", "hubspot_team_id": null, "hubspotscore": null, "industry": null, "is_public": true, "lifecyclestage": "opportunity", "linkedin_company_page": "https://www.linkedin.com/company/airbytehq", "linkedinbio": "Airbyte is an open-source data integration platform to build ELT pipelines. Consolidate your data in your data warehouses, lakes and databases.", "name": "Airbyte test1", "notes_last_contacted": null, "notes_last_updated": null, "notes_next_activity_date": null, "num_associated_contacts": 0.0, "num_associated_deals": 1.0, "num_contacted_notes": null, "num_conversion_events": null, "num_conversion_events_cardinality_sum_d095f14b": null, "num_notes": null, "numberofemployees": 200.0, "phone": "+1 415-307-4864", "recent_conversion_date": null, "recent_conversion_date_timestamp_latest_value_72856da1": null, "recent_conversion_event_name": null, "recent_conversion_event_name_timestamp_latest_value_66c820bf": null, "recent_deal_amount": null, "recent_deal_close_date": null, "state": "CA", "timezone": "America/Los_Angeles", "total_money_raised": null, "total_revenue": null, "twitterbio": null, "twitterfollowers": null, "twitterhandle": "AirbyteHQ", "type": null, "web_technologies": "slack;segment;google_tag_manager;greenhouse;google_analytics;intercom;piwik;google_apps;hubspot;facebook_advertiser", "website": "airbyte.io", "zip": "94114"}, "createdAt": "2020-12-10T07:58:09.554Z", "updatedAt": "2023-01-26T11:45:49.817Z", "archived": false}, "emitted_at": 1677607447041}
-{"stream": "companies", "data": {"id": "5000787595", "properties": {"about_us": null, "address": "2261 Market Street", "address2": null, "annualrevenue": null, "city": "San Francisco", "closedate": null, "closedate_timestamp_earliest_value_a2a17e6e": null, "country": "United States", "createdate": "2020-12-11T01:28:27.673000+00:00", "days_to_close": null, "description": "Airbyte is an open-source data integration platform to build ELT pipelines. Consolidate your data in your data warehouses, lakes and databases.", "domain": "Daxtarity.com", "engagements_last_meeting_booked": null, "engagements_last_meeting_booked_campaign": null, "engagements_last_meeting_booked_medium": null, "engagements_last_meeting_booked_source": null, "facebook_company_page": null, "facebookfans": null, "first_contact_createdate": null, "first_contact_createdate_timestamp_earliest_value_78b50eea": null, "first_conversion_date": null, "first_conversion_date_timestamp_earliest_value_61f58f2c": null, "first_conversion_event_name": null, "first_conversion_event_name_timestamp_earliest_value_68ddae0a": null, "first_deal_created_date": null, "founded_year": "2020", "googleplus_page": null, "hs_additional_domains": null, "hs_all_accessible_team_ids": null, "hs_all_assigned_business_unit_ids": null, "hs_all_owner_ids": "52550153", "hs_all_team_ids": null, "hs_analytics_first_timestamp": null, "hs_analytics_first_timestamp_timestamp_earliest_value_11e3a63a": null, "hs_analytics_first_touch_converting_campaign": null, "hs_analytics_first_touch_converting_campaign_timestamp_earliest_value_4757fe10": null, "hs_analytics_first_visit_timestamp": null, "hs_analytics_first_visit_timestamp_timestamp_earliest_value_accc17ae": null, "hs_analytics_last_timestamp": null, "hs_analytics_last_timestamp_timestamp_latest_value_4e16365a": null, "hs_analytics_last_touch_converting_campaign": null, "hs_analytics_last_touch_converting_campaign_timestamp_latest_value_81a64e30": null, "hs_analytics_last_visit_timestamp": null, "hs_analytics_last_visit_timestamp_timestamp_latest_value_999a0fce": null, "hs_analytics_latest_source": "", "hs_analytics_latest_source_data_1": "", "hs_analytics_latest_source_data_2": "", "hs_analytics_latest_source_timestamp": null, "hs_analytics_num_page_views": null, "hs_analytics_num_page_views_cardinality_sum_e46e85b0": null, "hs_analytics_num_visits": null, "hs_analytics_num_visits_cardinality_sum_53d952a6": null, "hs_analytics_source": "", "hs_analytics_source_data_1": "", "hs_analytics_source_data_1_timestamp_earliest_value_9b2f1fa1": null, "hs_analytics_source_data_2": "", "hs_analytics_source_data_2_timestamp_earliest_value_9b2f9400": null, "hs_analytics_source_timestamp_earliest_value_25a3a52c": null, "hs_annual_revenue_currency_code": "USD", "hs_avatar_filemanager_key": null, "hs_created_by_user_id": 12282590, "hs_createdate": null, "hs_date_entered_customer": null, "hs_date_entered_evangelist": null, "hs_date_entered_lead": null, "hs_date_entered_marketingqualifiedlead": null, "hs_date_entered_opportunity": null, "hs_date_entered_other": null, "hs_date_entered_salesqualifiedlead": null, "hs_date_entered_subscriber": null, "hs_date_exited_customer": null, "hs_date_exited_evangelist": null, "hs_date_exited_lead": null, "hs_date_exited_marketingqualifiedlead": null, "hs_date_exited_opportunity": null, "hs_date_exited_other": null, "hs_date_exited_salesqualifiedlead": null, "hs_date_exited_subscriber": null, "hs_ideal_customer_profile": null, "hs_is_target_account": null, "hs_last_booked_meeting_date": null, "hs_last_logged_call_date": null, "hs_last_open_task_date": null, "hs_last_sales_activity_date": null, "hs_last_sales_activity_timestamp": null, "hs_last_sales_activity_type": null, "hs_lastmodifieddate": "2023-01-23T15:41:56.644000+00:00", "hs_latest_createdate_of_active_subscriptions": null, "hs_latest_meeting_activity": null, "hs_lead_status": null, "hs_merged_object_ids": null, "hs_num_blockers": 0.0, "hs_num_child_companies": 0.0, "hs_num_contacts_with_buying_roles": 0.0, "hs_num_decision_makers": 0.0, "hs_num_open_deals": 0.0, "hs_object_id": 5000787595, "hs_parent_company_id": null, "hs_pinned_engagement_id": null, "hs_pipeline": null, "hs_predictivecontactscore_v2": null, "hs_predictivecontactscore_v2_next_max_max_d4e58c1e": null, "hs_read_only": null, "hs_sales_email_last_replied": null, "hs_target_account": null, "hs_target_account_probability": 0.4076234698295593, "hs_target_account_recommendation_snooze_time": null, "hs_target_account_recommendation_state": null, "hs_time_in_customer": null, "hs_time_in_evangelist": null, "hs_time_in_lead": null, "hs_time_in_marketingqualifiedlead": null, "hs_time_in_opportunity": null, "hs_time_in_other": null, "hs_time_in_salesqualifiedlead": null, "hs_time_in_subscriber": null, "hs_total_deal_value": null, "hs_unique_creation_key": null, "hs_updated_by_user_id": 12282590, "hs_user_ids_of_all_notification_followers": null, "hs_user_ids_of_all_notification_unfollowers": null, "hs_user_ids_of_all_owners": "12282590", "hubspot_owner_assigneddate": "2020-12-11T01:28:27.673000+00:00", "hubspot_owner_id": "52550153", "hubspot_team_id": null, "hubspotscore": null, "industry": null, "is_public": true, "lifecyclestage": null, "linkedin_company_page": "https://www.linkedin.com/company/airbytehq", "linkedinbio": "Airbyte is an open-source data integration platform to build ELT pipelines. Consolidate your data in your data warehouses, lakes and databases.", "name": "Daxtarity", "notes_last_contacted": null, "notes_last_updated": null, "notes_next_activity_date": null, "num_associated_contacts": 0.0, "num_associated_deals": null, "num_contacted_notes": null, "num_conversion_events": null, "num_conversion_events_cardinality_sum_d095f14b": null, "num_notes": null, "numberofemployees": 50.0, "phone": "+1 415-307-4864", "recent_conversion_date": null, "recent_conversion_date_timestamp_latest_value_72856da1": null, "recent_conversion_event_name": null, "recent_conversion_event_name_timestamp_latest_value_66c820bf": null, "recent_deal_amount": null, "recent_deal_close_date": null, "state": "CA", "timezone": "America/Los_Angeles", "total_money_raised": null, "total_revenue": null, "twitterbio": null, "twitterfollowers": null, "twitterhandle": "AirbyteHQ", "type": null, "web_technologies": "slack;google_tag_manager;greenhouse;google_analytics;intercom;piwik;google_apps;hubspot;facebook_advertiser", "website": "Daxtarity.com", "zip": "94114"}, "createdAt": "2020-12-11T01:28:27.673Z", "updatedAt": "2023-01-23T15:41:56.644Z", "archived": false}, "emitted_at": 1677607447042}
-{"stream": "companies", "data": {"id": "11481383026", "properties": {"about_us": null, "address": null, "address2": null, "annualrevenue": 1.0, "city": "Test", "closedate": null, "closedate_timestamp_earliest_value_a2a17e6e": null, "country": null, "createdate": "2023-01-30T23:22:56.969000+00:00", "days_to_close": null, "description": "Test", "domain": "test.test", "engagements_last_meeting_booked": null, "engagements_last_meeting_booked_campaign": null, "engagements_last_meeting_booked_medium": null, "engagements_last_meeting_booked_source": null, "facebook_company_page": null, "facebookfans": null, "first_contact_createdate": null, "first_contact_createdate_timestamp_earliest_value_78b50eea": null, "first_conversion_date": null, "first_conversion_date_timestamp_earliest_value_61f58f2c": null, "first_conversion_event_name": null, "first_conversion_event_name_timestamp_earliest_value_68ddae0a": null, "first_deal_created_date": null, "founded_year": null, "googleplus_page": null, "hs_additional_domains": null, "hs_all_accessible_team_ids": null, "hs_all_assigned_business_unit_ids": null, "hs_all_owner_ids": "52550153", "hs_all_team_ids": null, "hs_analytics_first_timestamp": null, "hs_analytics_first_timestamp_timestamp_earliest_value_11e3a63a": null, "hs_analytics_first_touch_converting_campaign": null, "hs_analytics_first_touch_converting_campaign_timestamp_earliest_value_4757fe10": null, "hs_analytics_first_visit_timestamp": null, "hs_analytics_first_visit_timestamp_timestamp_earliest_value_accc17ae": null, "hs_analytics_last_timestamp": null, "hs_analytics_last_timestamp_timestamp_latest_value_4e16365a": null, "hs_analytics_last_touch_converting_campaign": null, "hs_analytics_last_touch_converting_campaign_timestamp_latest_value_81a64e30": null, "hs_analytics_last_visit_timestamp": null, "hs_analytics_last_visit_timestamp_timestamp_latest_value_999a0fce": null, "hs_analytics_latest_source": null, "hs_analytics_latest_source_data_1": null, "hs_analytics_latest_source_data_2": null, "hs_analytics_latest_source_timestamp": null, "hs_analytics_num_page_views": null, "hs_analytics_num_page_views_cardinality_sum_e46e85b0": null, "hs_analytics_num_visits": null, "hs_analytics_num_visits_cardinality_sum_53d952a6": null, "hs_analytics_source": null, "hs_analytics_source_data_1": null, "hs_analytics_source_data_1_timestamp_earliest_value_9b2f1fa1": null, "hs_analytics_source_data_2": null, "hs_analytics_source_data_2_timestamp_earliest_value_9b2f9400": null, "hs_analytics_source_timestamp_earliest_value_25a3a52c": null, "hs_annual_revenue_currency_code": "USD", "hs_avatar_filemanager_key": null, "hs_created_by_user_id": 12282590, "hs_createdate": null, "hs_date_entered_customer": null, "hs_date_entered_evangelist": null, "hs_date_entered_lead": "2023-01-30T23:22:56.969000+00:00", "hs_date_entered_marketingqualifiedlead": null, "hs_date_entered_opportunity": null, "hs_date_entered_other": null, "hs_date_entered_salesqualifiedlead": null, "hs_date_entered_subscriber": null, "hs_date_exited_customer": null, "hs_date_exited_evangelist": null, "hs_date_exited_lead": null, "hs_date_exited_marketingqualifiedlead": null, "hs_date_exited_opportunity": null, "hs_date_exited_other": null, "hs_date_exited_salesqualifiedlead": null, "hs_date_exited_subscriber": null, "hs_ideal_customer_profile": null, "hs_is_target_account": null, "hs_last_booked_meeting_date": null, "hs_last_logged_call_date": null, "hs_last_open_task_date": "2023-02-03T07:00:00+00:00", "hs_last_sales_activity_date": null, "hs_last_sales_activity_timestamp": null, "hs_last_sales_activity_type": null, "hs_lastmodifieddate": "2023-02-03T07:03:57.136000+00:00", "hs_latest_createdate_of_active_subscriptions": null, "hs_latest_meeting_activity": null, "hs_lead_status": null, "hs_merged_object_ids": null, "hs_num_blockers": 0.0, "hs_num_child_companies": 0.0, "hs_num_contacts_with_buying_roles": 0.0, "hs_num_decision_makers": 0.0, "hs_num_open_deals": 0.0, "hs_object_id": 11481383026, "hs_parent_company_id": null, "hs_pinned_engagement_id": null, "hs_pipeline": "companies-lifecycle-pipeline", "hs_predictivecontactscore_v2": null, "hs_predictivecontactscore_v2_next_max_max_d4e58c1e": null, "hs_read_only": null, "hs_sales_email_last_replied": null, "hs_target_account": null, "hs_target_account_probability": 0.4076234698295593, "hs_target_account_recommendation_snooze_time": null, "hs_target_account_recommendation_state": null, "hs_time_in_customer": null, "hs_time_in_evangelist": null, "hs_time_in_lead": 2486470337.0, "hs_time_in_marketingqualifiedlead": null, "hs_time_in_opportunity": null, "hs_time_in_other": null, "hs_time_in_salesqualifiedlead": null, "hs_time_in_subscriber": null, "hs_total_deal_value": null, "hs_unique_creation_key": null, "hs_updated_by_user_id": 12282590, "hs_user_ids_of_all_notification_followers": null, "hs_user_ids_of_all_notification_unfollowers": null, "hs_user_ids_of_all_owners": "12282590", "hubspot_owner_assigneddate": "2023-01-30T23:22:56.969000+00:00", "hubspot_owner_id": "52550153", "hubspot_team_id": null, "hubspotscore": null, "industry": "ACCOUNTING", "is_public": null, "lifecyclestage": "lead", "linkedin_company_page": "Test", "linkedinbio": null, "name": "Test", "notes_last_contacted": null, "notes_last_updated": "2023-02-03T07:00:00+00:00", "notes_next_activity_date": null, "num_associated_contacts": 0.0, "num_associated_deals": null, "num_contacted_notes": 0.0, "num_conversion_events": null, "num_conversion_events_cardinality_sum_d095f14b": null, "num_notes": 2.0, "numberofemployees": 1.0, "phone": null, "recent_conversion_date": null, "recent_conversion_date_timestamp_latest_value_72856da1": null, "recent_conversion_event_name": null, "recent_conversion_event_name_timestamp_latest_value_66c820bf": null, "recent_deal_amount": null, "recent_deal_close_date": null, "state": "Test", "timezone": "3", "total_money_raised": null, "total_revenue": null, "twitterbio": null, "twitterfollowers": null, "twitterhandle": null, "type": "PROSPECT", "web_technologies": null, "website": "test.test", "zip": "00000"}, "createdAt": "2023-01-30T23:22:56.969Z", "updatedAt": "2023-02-03T07:03:57.136Z", "archived": false}, "emitted_at": 1677607447570}
+{"stream": "companies", "data": {"id": "4992593519", "properties": {"about_us": null, "address": null, "address2": null, "annualrevenue": null, "city": "San Francisco", "closedate": null, "closedate_timestamp_earliest_value_a2a17e6e": null, "country": "United States", "createdate": "2020-12-10T07:58:09.554000+00:00", "custom_company_property": null, "days_to_close": null, "description": "Airbyte is an open-source data integration platform to build ELT pipelines. Consolidate your data in your data warehouses, lakes and databases.", "domain": "airbyte.io", "engagements_last_meeting_booked": null, "engagements_last_meeting_booked_campaign": null, "engagements_last_meeting_booked_medium": null, "engagements_last_meeting_booked_source": null, "facebook_company_page": null, "facebookfans": null, "first_contact_createdate": null, "first_contact_createdate_timestamp_earliest_value_78b50eea": null, "first_conversion_date": null, "first_conversion_date_timestamp_earliest_value_61f58f2c": null, "first_conversion_event_name": null, "first_conversion_event_name_timestamp_earliest_value_68ddae0a": null, "first_deal_created_date": "2021-05-21T10:17:06.028000+00:00", "founded_year": "2020", "googleplus_page": null, "hs_additional_domains": null, "hs_all_accessible_team_ids": null, "hs_all_assigned_business_unit_ids": null, "hs_all_owner_ids": "52550153", "hs_all_team_ids": null, "hs_analytics_first_timestamp": null, "hs_analytics_first_timestamp_timestamp_earliest_value_11e3a63a": null, "hs_analytics_first_touch_converting_campaign": null, "hs_analytics_first_touch_converting_campaign_timestamp_earliest_value_4757fe10": null, "hs_analytics_first_visit_timestamp": null, "hs_analytics_first_visit_timestamp_timestamp_earliest_value_accc17ae": null, "hs_analytics_last_timestamp": null, "hs_analytics_last_timestamp_timestamp_latest_value_4e16365a": null, "hs_analytics_last_touch_converting_campaign": null, "hs_analytics_last_touch_converting_campaign_timestamp_latest_value_81a64e30": null, "hs_analytics_last_visit_timestamp": null, "hs_analytics_last_visit_timestamp_timestamp_latest_value_999a0fce": null, "hs_analytics_latest_source": null, "hs_analytics_latest_source_data_1": null, "hs_analytics_latest_source_data_2": null, "hs_analytics_latest_source_timestamp": null, "hs_analytics_num_page_views": null, "hs_analytics_num_page_views_cardinality_sum_e46e85b0": null, "hs_analytics_num_visits": null, "hs_analytics_num_visits_cardinality_sum_53d952a6": null, "hs_analytics_source": null, "hs_analytics_source_data_1": null, "hs_analytics_source_data_1_timestamp_earliest_value_9b2f1fa1": null, "hs_analytics_source_data_2": null, "hs_analytics_source_data_2_timestamp_earliest_value_9b2f9400": null, "hs_analytics_source_timestamp_earliest_value_25a3a52c": null, "hs_annual_revenue_currency_code": "USD", "hs_avatar_filemanager_key": null, "hs_created_by_user_id": 12282590, "hs_createdate": null, "hs_date_entered_customer": null, "hs_date_entered_evangelist": null, "hs_date_entered_lead": null, "hs_date_entered_marketingqualifiedlead": null, "hs_date_entered_opportunity": "2021-05-21T10:17:28.964000+00:00", "hs_date_entered_other": null, "hs_date_entered_salesqualifiedlead": null, "hs_date_entered_subscriber": null, "hs_date_exited_customer": null, "hs_date_exited_evangelist": null, "hs_date_exited_lead": null, "hs_date_exited_marketingqualifiedlead": null, "hs_date_exited_opportunity": null, "hs_date_exited_other": null, "hs_date_exited_salesqualifiedlead": null, "hs_date_exited_subscriber": null, "hs_ideal_customer_profile": null, "hs_is_target_account": null, "hs_last_booked_meeting_date": null, "hs_last_logged_call_date": null, "hs_last_open_task_date": null, "hs_last_sales_activity_date": null, "hs_last_sales_activity_timestamp": null, "hs_last_sales_activity_type": null, "hs_lastmodifieddate": "2023-01-26T11:45:49.817000+00:00", "hs_latest_createdate_of_active_subscriptions": null, "hs_latest_meeting_activity": null, "hs_lead_status": null, "hs_merged_object_ids": null, "hs_num_blockers": null, "hs_num_child_companies": 0, "hs_num_contacts_with_buying_roles": null, "hs_num_decision_makers": null, "hs_num_open_deals": 1, "hs_object_id": 4992593519, "hs_parent_company_id": null, "hs_pinned_engagement_id": null, "hs_pipeline": null, "hs_predictivecontactscore_v2": null, "hs_predictivecontactscore_v2_next_max_max_d4e58c1e": null, "hs_read_only": null, "hs_sales_email_last_replied": null, "hs_target_account": null, "hs_target_account_probability": 0.5476861596107483, "hs_target_account_recommendation_snooze_time": null, "hs_target_account_recommendation_state": null, "hs_time_in_customer": null, "hs_time_in_evangelist": null, "hs_time_in_lead": null, "hs_time_in_marketingqualifiedlead": null, "hs_time_in_opportunity": 59800511614, "hs_time_in_other": null, "hs_time_in_salesqualifiedlead": null, "hs_time_in_subscriber": null, "hs_total_deal_value": null, "hs_unique_creation_key": null, "hs_updated_by_user_id": 12282590, "hs_user_ids_of_all_notification_followers": null, "hs_user_ids_of_all_notification_unfollowers": null, "hs_user_ids_of_all_owners": "12282590", "hubspot_owner_assigneddate": "2020-12-10T07:58:09.554000+00:00", "hubspot_owner_id": "52550153", "hubspot_team_id": null, "hubspotscore": null, "industry": null, "is_public": true, "lifecyclestage": "opportunity", "linkedin_company_page": "https://www.linkedin.com/company/airbytehq", "linkedinbio": "Airbyte is an open-source data integration platform to build ELT pipelines. Consolidate your data in your data warehouses, lakes and databases.", "name": "Airbyte test1", "notes_last_contacted": null, "notes_last_updated": null, "notes_next_activity_date": null, "num_associated_contacts": 0, "num_associated_deals": 1, "num_contacted_notes": null, "num_conversion_events": null, "num_conversion_events_cardinality_sum_d095f14b": null, "num_notes": null, "numberofemployees": 200, "phone": "+1 415-307-4864", "recent_conversion_date": null, "recent_conversion_date_timestamp_latest_value_72856da1": null, "recent_conversion_event_name": null, "recent_conversion_event_name_timestamp_latest_value_66c820bf": null, "recent_deal_amount": null, "recent_deal_close_date": null, "state": "CA", "timezone": "America/Los_Angeles", "total_money_raised": null, "total_revenue": null, "twitterbio": null, "twitterfollowers": null, "twitterhandle": "AirbyteHQ", "type": null, "web_technologies": "slack;segment;google_tag_manager;greenhouse;google_analytics;intercom;piwik;google_apps;hubspot;facebook_advertiser", "website": "airbyte.io", "zip": "94114"}, "createdAt": "2020-12-10T07:58:09.554Z", "updatedAt": "2023-01-26T11:45:49.817Z", "archived": false}, "emitted_at": 1681392760867}
+{"stream": "companies", "data": {"id": "5000787595", "properties": {"about_us": null, "address": "2261 Market Street", "address2": null, "annualrevenue": null, "city": "San Francisco", "closedate": null, "closedate_timestamp_earliest_value_a2a17e6e": null, "country": "United States", "createdate": "2020-12-11T01:28:27.673000+00:00", "custom_company_property": null, "days_to_close": null, "description": "Airbyte is an open-source data integration platform to build ELT pipelines. Consolidate your data in your data warehouses, lakes and databases.", "domain": "Daxtarity.com", "engagements_last_meeting_booked": null, "engagements_last_meeting_booked_campaign": null, "engagements_last_meeting_booked_medium": null, "engagements_last_meeting_booked_source": null, "facebook_company_page": null, "facebookfans": null, "first_contact_createdate": null, "first_contact_createdate_timestamp_earliest_value_78b50eea": null, "first_conversion_date": null, "first_conversion_date_timestamp_earliest_value_61f58f2c": null, "first_conversion_event_name": null, "first_conversion_event_name_timestamp_earliest_value_68ddae0a": null, "first_deal_created_date": null, "founded_year": "2020", "googleplus_page": null, "hs_additional_domains": null, "hs_all_accessible_team_ids": null, "hs_all_assigned_business_unit_ids": null, "hs_all_owner_ids": "52550153", "hs_all_team_ids": null, "hs_analytics_first_timestamp": null, "hs_analytics_first_timestamp_timestamp_earliest_value_11e3a63a": null, "hs_analytics_first_touch_converting_campaign": null, "hs_analytics_first_touch_converting_campaign_timestamp_earliest_value_4757fe10": null, "hs_analytics_first_visit_timestamp": null, "hs_analytics_first_visit_timestamp_timestamp_earliest_value_accc17ae": null, "hs_analytics_last_timestamp": null, "hs_analytics_last_timestamp_timestamp_latest_value_4e16365a": null, "hs_analytics_last_touch_converting_campaign": null, "hs_analytics_last_touch_converting_campaign_timestamp_latest_value_81a64e30": null, "hs_analytics_last_visit_timestamp": null, "hs_analytics_last_visit_timestamp_timestamp_latest_value_999a0fce": null, "hs_analytics_latest_source": "", "hs_analytics_latest_source_data_1": "", "hs_analytics_latest_source_data_2": "", "hs_analytics_latest_source_timestamp": null, "hs_analytics_num_page_views": null, "hs_analytics_num_page_views_cardinality_sum_e46e85b0": null, "hs_analytics_num_visits": null, "hs_analytics_num_visits_cardinality_sum_53d952a6": null, "hs_analytics_source": "", "hs_analytics_source_data_1": "", "hs_analytics_source_data_1_timestamp_earliest_value_9b2f1fa1": null, "hs_analytics_source_data_2": "", "hs_analytics_source_data_2_timestamp_earliest_value_9b2f9400": null, "hs_analytics_source_timestamp_earliest_value_25a3a52c": null, "hs_annual_revenue_currency_code": "USD", "hs_avatar_filemanager_key": null, "hs_created_by_user_id": 12282590, "hs_createdate": null, "hs_date_entered_customer": null, "hs_date_entered_evangelist": null, "hs_date_entered_lead": null, "hs_date_entered_marketingqualifiedlead": null, "hs_date_entered_opportunity": null, "hs_date_entered_other": null, "hs_date_entered_salesqualifiedlead": null, "hs_date_entered_subscriber": null, "hs_date_exited_customer": null, "hs_date_exited_evangelist": null, "hs_date_exited_lead": null, "hs_date_exited_marketingqualifiedlead": null, "hs_date_exited_opportunity": null, "hs_date_exited_other": null, "hs_date_exited_salesqualifiedlead": null, "hs_date_exited_subscriber": null, "hs_ideal_customer_profile": null, "hs_is_target_account": null, "hs_last_booked_meeting_date": null, "hs_last_logged_call_date": null, "hs_last_open_task_date": null, "hs_last_sales_activity_date": null, "hs_last_sales_activity_timestamp": null, "hs_last_sales_activity_type": null, "hs_lastmodifieddate": "2023-01-23T15:41:56.644000+00:00", "hs_latest_createdate_of_active_subscriptions": null, "hs_latest_meeting_activity": null, "hs_lead_status": null, "hs_merged_object_ids": null, "hs_num_blockers": 0, "hs_num_child_companies": 0, "hs_num_contacts_with_buying_roles": 0, "hs_num_decision_makers": 0, "hs_num_open_deals": 0, "hs_object_id": 5000787595, "hs_parent_company_id": null, "hs_pinned_engagement_id": null, "hs_pipeline": null, "hs_predictivecontactscore_v2": null, "hs_predictivecontactscore_v2_next_max_max_d4e58c1e": null, "hs_read_only": null, "hs_sales_email_last_replied": null, "hs_target_account": null, "hs_target_account_probability": 0.4076234698295593, "hs_target_account_recommendation_snooze_time": null, "hs_target_account_recommendation_state": null, "hs_time_in_customer": null, "hs_time_in_evangelist": null, "hs_time_in_lead": null, "hs_time_in_marketingqualifiedlead": null, "hs_time_in_opportunity": null, "hs_time_in_other": null, "hs_time_in_salesqualifiedlead": null, "hs_time_in_subscriber": null, "hs_total_deal_value": null, "hs_unique_creation_key": null, "hs_updated_by_user_id": 12282590, "hs_user_ids_of_all_notification_followers": null, "hs_user_ids_of_all_notification_unfollowers": null, "hs_user_ids_of_all_owners": "12282590", "hubspot_owner_assigneddate": "2020-12-11T01:28:27.673000+00:00", "hubspot_owner_id": "52550153", "hubspot_team_id": null, "hubspotscore": null, "industry": null, "is_public": true, "lifecyclestage": null, "linkedin_company_page": "https://www.linkedin.com/company/airbytehq", "linkedinbio": "Airbyte is an open-source data integration platform to build ELT pipelines. Consolidate your data in your data warehouses, lakes and databases.", "name": "Daxtarity", "notes_last_contacted": null, "notes_last_updated": null, "notes_next_activity_date": null, "num_associated_contacts": 0, "num_associated_deals": null, "num_contacted_notes": null, "num_conversion_events": null, "num_conversion_events_cardinality_sum_d095f14b": null, "num_notes": null, "numberofemployees": 50, "phone": "+1 415-307-4864", "recent_conversion_date": null, "recent_conversion_date_timestamp_latest_value_72856da1": null, "recent_conversion_event_name": null, "recent_conversion_event_name_timestamp_latest_value_66c820bf": null, "recent_deal_amount": null, "recent_deal_close_date": null, "state": "CA", "timezone": "America/Los_Angeles", "total_money_raised": null, "total_revenue": null, "twitterbio": null, "twitterfollowers": null, "twitterhandle": "AirbyteHQ", "type": null, "web_technologies": "slack;google_tag_manager;greenhouse;google_analytics;intercom;piwik;google_apps;hubspot;facebook_advertiser", "website": "Daxtarity.com", "zip": "94114"}, "createdAt": "2020-12-11T01:28:27.673Z", "updatedAt": "2023-01-23T15:41:56.644Z", "archived": false}, "emitted_at": 1681392760868}
+{"stream": "companies", "data": {"id": "11481383026", "properties": {"about_us": null, "address": null, "address2": null, "annualrevenue": 1, "city": "Test", "closedate": null, "closedate_timestamp_earliest_value_a2a17e6e": null, "country": null, "createdate": "2023-01-30T23:22:56.969000+00:00", "custom_company_property": "Hello", "days_to_close": null, "description": "Test", "domain": "test.test", "engagements_last_meeting_booked": null, "engagements_last_meeting_booked_campaign": null, "engagements_last_meeting_booked_medium": null, "engagements_last_meeting_booked_source": null, "facebook_company_page": null, "facebookfans": null, "first_contact_createdate": null, "first_contact_createdate_timestamp_earliest_value_78b50eea": null, "first_conversion_date": null, "first_conversion_date_timestamp_earliest_value_61f58f2c": null, "first_conversion_event_name": null, "first_conversion_event_name_timestamp_earliest_value_68ddae0a": null, "first_deal_created_date": null, "founded_year": null, "googleplus_page": null, "hs_additional_domains": null, "hs_all_accessible_team_ids": null, "hs_all_assigned_business_unit_ids": null, "hs_all_owner_ids": "52550153", "hs_all_team_ids": null, "hs_analytics_first_timestamp": null, "hs_analytics_first_timestamp_timestamp_earliest_value_11e3a63a": null, "hs_analytics_first_touch_converting_campaign": null, "hs_analytics_first_touch_converting_campaign_timestamp_earliest_value_4757fe10": null, "hs_analytics_first_visit_timestamp": null, "hs_analytics_first_visit_timestamp_timestamp_earliest_value_accc17ae": null, "hs_analytics_last_timestamp": null, "hs_analytics_last_timestamp_timestamp_latest_value_4e16365a": null, "hs_analytics_last_touch_converting_campaign": null, "hs_analytics_last_touch_converting_campaign_timestamp_latest_value_81a64e30": null, "hs_analytics_last_visit_timestamp": null, "hs_analytics_last_visit_timestamp_timestamp_latest_value_999a0fce": null, "hs_analytics_latest_source": null, "hs_analytics_latest_source_data_1": null, "hs_analytics_latest_source_data_2": null, "hs_analytics_latest_source_timestamp": null, "hs_analytics_num_page_views": null, "hs_analytics_num_page_views_cardinality_sum_e46e85b0": null, "hs_analytics_num_visits": null, "hs_analytics_num_visits_cardinality_sum_53d952a6": null, "hs_analytics_source": null, "hs_analytics_source_data_1": null, "hs_analytics_source_data_1_timestamp_earliest_value_9b2f1fa1": null, "hs_analytics_source_data_2": null, "hs_analytics_source_data_2_timestamp_earliest_value_9b2f9400": null, "hs_analytics_source_timestamp_earliest_value_25a3a52c": null, "hs_annual_revenue_currency_code": "USD", "hs_avatar_filemanager_key": null, "hs_created_by_user_id": 12282590, "hs_createdate": null, "hs_date_entered_customer": null, "hs_date_entered_evangelist": null, "hs_date_entered_lead": "2023-01-30T23:22:56.969000+00:00", "hs_date_entered_marketingqualifiedlead": null, "hs_date_entered_opportunity": null, "hs_date_entered_other": null, "hs_date_entered_salesqualifiedlead": null, "hs_date_entered_subscriber": null, "hs_date_exited_customer": null, "hs_date_exited_evangelist": null, "hs_date_exited_lead": null, "hs_date_exited_marketingqualifiedlead": null, "hs_date_exited_opportunity": null, "hs_date_exited_other": null, "hs_date_exited_salesqualifiedlead": null, "hs_date_exited_subscriber": null, "hs_ideal_customer_profile": null, "hs_is_target_account": null, "hs_last_booked_meeting_date": null, "hs_last_logged_call_date": null, "hs_last_open_task_date": "2023-02-03T07:00:00+00:00", "hs_last_sales_activity_date": null, "hs_last_sales_activity_timestamp": null, "hs_last_sales_activity_type": null, "hs_lastmodifieddate": "2023-04-12T16:58:42.344000+00:00", "hs_latest_createdate_of_active_subscriptions": null, "hs_latest_meeting_activity": null, "hs_lead_status": null, "hs_merged_object_ids": null, "hs_num_blockers": 0, "hs_num_child_companies": 0, "hs_num_contacts_with_buying_roles": 0, "hs_num_decision_makers": 0, "hs_num_open_deals": 0, "hs_object_id": 11481383026, "hs_parent_company_id": null, "hs_pinned_engagement_id": null, "hs_pipeline": "companies-lifecycle-pipeline", "hs_predictivecontactscore_v2": null, "hs_predictivecontactscore_v2_next_max_max_d4e58c1e": null, "hs_read_only": null, "hs_sales_email_last_replied": null, "hs_target_account": null, "hs_target_account_probability": 0.4076234698295593, "hs_target_account_recommendation_snooze_time": null, "hs_target_account_recommendation_state": null, "hs_time_in_customer": null, "hs_time_in_evangelist": null, "hs_time_in_lead": 6271784096, "hs_time_in_marketingqualifiedlead": null, "hs_time_in_opportunity": null, "hs_time_in_other": null, "hs_time_in_salesqualifiedlead": null, "hs_time_in_subscriber": null, "hs_total_deal_value": null, "hs_unique_creation_key": null, "hs_updated_by_user_id": 12282590, "hs_user_ids_of_all_notification_followers": null, "hs_user_ids_of_all_notification_unfollowers": null, "hs_user_ids_of_all_owners": "12282590", "hubspot_owner_assigneddate": "2023-01-30T23:22:56.969000+00:00", "hubspot_owner_id": "52550153", "hubspot_team_id": null, "hubspotscore": null, "industry": "ACCOUNTING", "is_public": null, "lifecyclestage": "lead", "linkedin_company_page": "Test", "linkedinbio": null, "name": "Test", "notes_last_contacted": null, "notes_last_updated": "2023-02-03T07:00:00+00:00", "notes_next_activity_date": null, "num_associated_contacts": 0, "num_associated_deals": null, "num_contacted_notes": 0, "num_conversion_events": null, "num_conversion_events_cardinality_sum_d095f14b": null, "num_notes": 2, "numberofemployees": 1, "phone": null, "recent_conversion_date": null, "recent_conversion_date_timestamp_latest_value_72856da1": null, "recent_conversion_event_name": null, "recent_conversion_event_name_timestamp_latest_value_66c820bf": null, "recent_deal_amount": null, "recent_deal_close_date": null, "state": "Test", "timezone": "3", "total_money_raised": null, "total_revenue": null, "twitterbio": null, "twitterfollowers": null, "twitterhandle": null, "type": "PROSPECT", "web_technologies": null, "website": "test.test", "zip": "00000"}, "createdAt": "2023-01-30T23:22:56.969Z", "updatedAt": "2023-04-12T16:58:42.344Z", "archived": false}, "emitted_at": 1681392761156}
{"stream": "contacts_list_memberships", "data": {"canonical-vid": 2501, "static-list-id": 60, "internal-list-id": 2147483643, "timestamp": 1675124235515, "vid": 2501, "is-member": true}, "emitted_at": 1675337054631}
{"stream": "contacts_list_memberships", "data": {"canonical-vid": 2501, "static-list-id": 61, "internal-list-id": 2147483643, "timestamp": 1675124259228, "vid": 2501, "is-member": true}, "emitted_at": 1675337054632}
{"stream": "contacts_list_memberships", "data": {"canonical-vid": 2501, "static-list-id": 166, "internal-list-id": 2147483643, "timestamp": 1675120848102, "vid": 2501, "is-member": true}, "emitted_at": 1675337054632}
From 0c53367874a11303b28ab6265ca998a225ae24e4 Mon Sep 17 00:00:00 2001
From: Arsen Losenko <20901439+arsenlosenko@users.noreply.github.com>
Date: Fri, 14 Apr 2023 18:07:03 +0300
Subject: [PATCH 067/187] Source Github: update expected records (#25148)
* Source Github: update expected records
* Update expected records
* Move teams expected records to previous place
---
.../source-github/integration_tests/expected_records.jsonl | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/airbyte-integrations/connectors/source-github/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-github/integration_tests/expected_records.jsonl
index 17a93070eab5..04375710c94f 100644
--- a/airbyte-integrations/connectors/source-github/integration_tests/expected_records.jsonl
+++ b/airbyte-integrations/connectors/source-github/integration_tests/expected_records.jsonl
@@ -26,10 +26,10 @@
{"stream":"reviews","data":{"node_id":"MDE3OlB1bGxSZXF1ZXN0UmV2aWV3NzQwNjU5Nzk4","id":740659798,"body":"Review commit for branch feature/branch_4","state":"COMMENTED","html_url":"https://github.com/airbytehq/integration-test/pull/5#pullrequestreview-740659798","author_association":"CONTRIBUTOR","submitted_at":"2021-08-27T15:43:42Z","created_at":"2021-08-27T15:43:42Z","updated_at":"2021-08-27T15:43:42Z","user":{"node_id":"MDQ6VXNlcjc0MzkwMQ==","id":743901,"login":"gaart","avatar_url":"https://avatars.githubusercontent.com/u/743901?v=4","html_url":"https://github.com/gaart","site_admin":false,"type":"User"},"repository":"airbytehq/integration-test","pull_request_url":"https://github.com/airbytehq/integration-test/pull/5","commit_id":"31a3e3f19fefce60fba6bfc69dd2b3fb5195a083","_links":{"html":{"href":"https://github.com/airbytehq/integration-test/pull/5#pullrequestreview-740659798"},"pull_request":{"href":"https://github.com/airbytehq/integration-test/pull/5"}}},"emitted_at":1677668764954}
{"stream":"stargazers","data":{"starred_at":"2021-08-27T16:23:34Z","user":{"login":"VasylLazebnyk","id":68591643,"node_id":"MDQ6VXNlcjY4NTkxNjQz","avatar_url":"https://avatars.githubusercontent.com/u/68591643?v=4","gravatar_id":"","url":"https://api.github.com/users/VasylLazebnyk","html_url":"https://github.com/VasylLazebnyk","followers_url":"https://api.github.com/users/VasylLazebnyk/followers","following_url":"https://api.github.com/users/VasylLazebnyk/following{/other_user}","gists_url":"https://api.github.com/users/VasylLazebnyk/gists{/gist_id}","starred_url":"https://api.github.com/users/VasylLazebnyk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/VasylLazebnyk/subscriptions","organizations_url":"https://api.github.com/users/VasylLazebnyk/orgs","repos_url":"https://api.github.com/users/VasylLazebnyk/repos","events_url":"https://api.github.com/users/VasylLazebnyk/events{/privacy}","received_events_url":"https://api.github.com/users/VasylLazebnyk/received_events","type":"User","site_admin":false},"repository":"airbytehq/integration-test","user_id":68591643},"emitted_at":1677668765231}
{"stream":"tags","data":{"name":"dev-0.9","zipball_url":"https://api.github.com/repos/airbytehq/integration-test/zipball/refs/tags/dev-0.9","tarball_url":"https://api.github.com/repos/airbytehq/integration-test/tarball/refs/tags/dev-0.9","commit":{"sha":"978753aeb56f7b49872279d1b491411a6235aa90","url":"https://api.github.com/repos/airbytehq/integration-test/commits/978753aeb56f7b49872279d1b491411a6235aa90"},"node_id":"MDM6UmVmNDAwMDUyMjEzOnJlZnMvdGFncy9kZXYtMC45","repository":"airbytehq/integration-test"},"emitted_at":1677668765467}
-{"stream":"teams","data":{"name":"Zazmic","id":4432406,"node_id":"MDQ6VGVhbTQ0MzI0MDY=","slug":"zazmic","description":"","privacy":"closed","url":"https://api.github.com/organizations/59758427/team/4432406","html_url":"https://github.com/orgs/airbytehq/teams/zazmic","members_url":"https://api.github.com/organizations/59758427/team/4432406/members{/member}","repositories_url":"https://api.github.com/organizations/59758427/team/4432406/repos","permission":"pull","parent":null,"organization":"airbytehq"},"emitted_at":1677668765750}
+{"stream":"teams", "data": {"name": "Zazmic", "id": 4432406, "node_id": "MDQ6VGVhbTQ0MzI0MDY=", "slug": "zazmic", "description": "", "privacy": "closed", "notification_setting": "notifications_enabled", "url": "https://api.github.com/organizations/59758427/team/4432406", "html_url": "https://github.com/orgs/airbytehq/teams/zazmic", "members_url": "https://api.github.com/organizations/59758427/team/4432406/members{/member}", "repositories_url": "https://api.github.com/organizations/59758427/team/4432406/repos", "permission": "pull", "parent": null, "organization": "airbytehq"}, "emitted_at": 1681307598422}
{"stream":"users","data":{"login":"AirbyteEricksson","id":101604444,"node_id":"U_kgDOBg5cXA","avatar_url":"https://avatars.githubusercontent.com/u/101604444?v=4","gravatar_id":"","url":"https://api.github.com/users/AirbyteEricksson","html_url":"https://github.com/AirbyteEricksson","followers_url":"https://api.github.com/users/AirbyteEricksson/followers","following_url":"https://api.github.com/users/AirbyteEricksson/following{/other_user}","gists_url":"https://api.github.com/users/AirbyteEricksson/gists{/gist_id}","starred_url":"https://api.github.com/users/AirbyteEricksson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AirbyteEricksson/subscriptions","organizations_url":"https://api.github.com/users/AirbyteEricksson/orgs","repos_url":"https://api.github.com/users/AirbyteEricksson/repos","events_url":"https://api.github.com/users/AirbyteEricksson/events{/privacy}","received_events_url":"https://api.github.com/users/AirbyteEricksson/received_events","type":"User","site_admin":false,"organization":"airbytehq"},"emitted_at":1677668766142}
{"stream":"workflows","data":{"id":22952989,"node_id":"W_kwDOF9hP9c4BXjwd","name":"Pull Request Labeler","path":".github/workflows/labeler.yml","state":"active","created_at":"2022-03-30T21:30:37.000+02:00","updated_at":"2022-03-30T21:30:37.000+02:00","url":"https://api.github.com/repos/airbytehq/integration-test/actions/workflows/22952989","html_url":"https://github.com/airbytehq/integration-test/blob/master/.github/workflows/labeler.yml","badge_url":"https://github.com/airbytehq/integration-test/workflows/Pull%20Request%20Labeler/badge.svg","repository":"airbytehq/integration-test"},"emitted_at":1677668766580}
{"stream":"workflow_runs","data":{"id":3184250176,"name":"Pull Request Labeler","node_id":"WFR_kwLOF9hP9c69y81A","head_branch":"feature/branch_5","head_sha":"f71e5f6894578148d52b487dff07e55804fd9cfd","path":".github/workflows/labeler.yml","display_title":"New PR from feature/branch_5","run_number":3,"event":"pull_request_target","status":"completed","conclusion":"success","workflow_id":22952989,"check_suite_id":8611635614,"check_suite_node_id":"CS_kwDOF9hP9c8AAAACAUshng","url":"https://api.github.com/repos/airbytehq/integration-test/actions/runs/3184250176","html_url":"https://github.com/airbytehq/integration-test/actions/runs/3184250176","pull_requests":[{"url":"https://api.github.com/repos/airbytehq/integration-test/pulls/14","id":984835098,"number":14,"head":{"ref":"feature/branch_5","sha":"f71e5f6894578148d52b487dff07e55804fd9cfd","repo":{"id":400052213,"url":"https://api.github.com/repos/airbytehq/integration-test","name":"integration-test"}},"base":{"ref":"master","sha":"a12c9379604f7b32e54e5459122aa48473f806ee","repo":{"id":400052213,"url":"https://api.github.com/repos/airbytehq/integration-test","name":"integration-test"}}}],"created_at":"2022-10-04T17:41:18Z","updated_at":"2022-10-04T17:41:32Z","actor":{"login":"grubberr","id":195743,"node_id":"MDQ6VXNlcjE5NTc0Mw==","avatar_url":"https://avatars.githubusercontent.com/u/195743?v=4","gravatar_id":"","url":"https://api.github.com/users/grubberr","html_url":"https://github.com/grubberr","followers_url":"https://api.github.com/users/grubberr/followers","following_url":"https://api.github.com/users/grubberr/following{/other_user}","gists_url":"https://api.github.com/users/grubberr/gists{/gist_id}","starred_url":"https://api.github.com/users/grubberr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grubberr/subscriptions","organizations_url":"https://api.github.com/users/grubberr/orgs","repos_url":"https://api.github.com/users/grubberr/repos","events_url":"https://api.github.com/users/grubberr/events{/privacy}","received_events_url":"https://api.github.com/users/grubberr/received_events","type":"User","site_admin":false},"run_attempt":1,"referenced_workflows":[],"run_started_at":"2022-10-04T17:41:18Z","triggering_actor":{"login":"grubberr","id":195743,"node_id":"MDQ6VXNlcjE5NTc0Mw==","avatar_url":"https://avatars.githubusercontent.com/u/195743?v=4","gravatar_id":"","url":"https://api.github.com/users/grubberr","html_url":"https://github.com/grubberr","followers_url":"https://api.github.com/users/grubberr/followers","following_url":"https://api.github.com/users/grubberr/following{/other_user}","gists_url":"https://api.github.com/users/grubberr/gists{/gist_id}","starred_url":"https://api.github.com/users/grubberr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grubberr/subscriptions","organizations_url":"https://api.github.com/users/grubberr/orgs","repos_url":"https://api.github.com/users/grubberr/repos","events_url":"https://api.github.com/users/grubberr/events{/privacy}","received_events_url":"https://api.github.com/users/grubberr/received_events","type":"User","site_admin":false},"jobs_url":"https://api.github.com/repos/airbytehq/integration-test/actions/runs/3184250176/jobs","logs_url":"https://api.github.com/repos/airbytehq/integration-test/actions/runs/3184250176/logs","check_suite_url":"https://api.github.com/repos/airbytehq/integration-test/check-suites/8611635614","artifacts_url":"https://api.github.com/repos/airbytehq/integration-test/actions/runs/3184250176/artifacts","cancel_url":"https://api.github.com/repos/airbytehq/integration-test/actions/runs/3184250176/cancel","rerun_url":"https://api.github.com/repos/airbytehq/integration-test/actions/runs/3184250176/rerun","previous_attempt_url":null,"workflow_url":"https://api.github.com/repos/airbytehq/integration-test/actions/workflows/22952989","head_commit":{"id":"f71e5f6894578148d52b487dff07e55804fd9cfd","tree_id":"bb78ec62be8c5c640010e7c897f40932ce59e725","message":"file_5.txt updated\n\nSigned-off-by: Sergey Chvalyuk ","timestamp":"2022-10-04T17:41:08Z","author":{"name":"Sergey Chvalyuk","email":"grubberr@gmail.com"},"committer":{"name":"Sergey Chvalyuk","email":"grubberr@gmail.com"}},"repository":{"id":400052213,"node_id":"MDEwOlJlcG9zaXRvcnk0MDAwNTIyMTM=","name":"integration-test","full_name":"airbytehq/integration-test","private":false,"owner":{"login":"airbytehq","id":59758427,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU5NzU4NDI3","avatar_url":"https://avatars.githubusercontent.com/u/59758427?v=4","gravatar_id":"","url":"https://api.github.com/users/airbytehq","html_url":"https://github.com/airbytehq","followers_url":"https://api.github.com/users/airbytehq/followers","following_url":"https://api.github.com/users/airbytehq/following{/other_user}","gists_url":"https://api.github.com/users/airbytehq/gists{/gist_id}","starred_url":"https://api.github.com/users/airbytehq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/airbytehq/subscriptions","organizations_url":"https://api.github.com/users/airbytehq/orgs","repos_url":"https://api.github.com/users/airbytehq/repos","events_url":"https://api.github.com/users/airbytehq/events{/privacy}","received_events_url":"https://api.github.com/users/airbytehq/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/airbytehq/integration-test","description":"Used for integration testing the Github source connector","fork":false,"url":"https://api.github.com/repos/airbytehq/integration-test","forks_url":"https://api.github.com/repos/airbytehq/integration-test/forks","keys_url":"https://api.github.com/repos/airbytehq/integration-test/keys{/key_id}","collaborators_url":"https://api.github.com/repos/airbytehq/integration-test/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/airbytehq/integration-test/teams","hooks_url":"https://api.github.com/repos/airbytehq/integration-test/hooks","issue_events_url":"https://api.github.com/repos/airbytehq/integration-test/issues/events{/number}","events_url":"https://api.github.com/repos/airbytehq/integration-test/events","assignees_url":"https://api.github.com/repos/airbytehq/integration-test/assignees{/user}","branches_url":"https://api.github.com/repos/airbytehq/integration-test/branches{/branch}","tags_url":"https://api.github.com/repos/airbytehq/integration-test/tags","blobs_url":"https://api.github.com/repos/airbytehq/integration-test/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/airbytehq/integration-test/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/airbytehq/integration-test/git/refs{/sha}","trees_url":"https://api.github.com/repos/airbytehq/integration-test/git/trees{/sha}","statuses_url":"https://api.github.com/repos/airbytehq/integration-test/statuses/{sha}","languages_url":"https://api.github.com/repos/airbytehq/integration-test/languages","stargazers_url":"https://api.github.com/repos/airbytehq/integration-test/stargazers","contributors_url":"https://api.github.com/repos/airbytehq/integration-test/contributors","subscribers_url":"https://api.github.com/repos/airbytehq/integration-test/subscribers","subscription_url":"https://api.github.com/repos/airbytehq/integration-test/subscription","commits_url":"https://api.github.com/repos/airbytehq/integration-test/commits{/sha}","git_commits_url":"https://api.github.com/repos/airbytehq/integration-test/git/commits{/sha}","comments_url":"https://api.github.com/repos/airbytehq/integration-test/comments{/number}","issue_comment_url":"https://api.github.com/repos/airbytehq/integration-test/issues/comments{/number}","contents_url":"https://api.github.com/repos/airbytehq/integration-test/contents/{+path}","compare_url":"https://api.github.com/repos/airbytehq/integration-test/compare/{base}...{head}","merges_url":"https://api.github.com/repos/airbytehq/integration-test/merges","archive_url":"https://api.github.com/repos/airbytehq/integration-test/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/airbytehq/integration-test/downloads","issues_url":"https://api.github.com/repos/airbytehq/integration-test/issues{/number}","pulls_url":"https://api.github.com/repos/airbytehq/integration-test/pulls{/number}","milestones_url":"https://api.github.com/repos/airbytehq/integration-test/milestones{/number}","notifications_url":"https://api.github.com/repos/airbytehq/integration-test/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/airbytehq/integration-test/labels{/name}","releases_url":"https://api.github.com/repos/airbytehq/integration-test/releases{/id}","deployments_url":"https://api.github.com/repos/airbytehq/integration-test/deployments"},"head_repository":{"id":400052213,"node_id":"MDEwOlJlcG9zaXRvcnk0MDAwNTIyMTM=","name":"integration-test","full_name":"airbytehq/integration-test","private":false,"owner":{"login":"airbytehq","id":59758427,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU5NzU4NDI3","avatar_url":"https://avatars.githubusercontent.com/u/59758427?v=4","gravatar_id":"","url":"https://api.github.com/users/airbytehq","html_url":"https://github.com/airbytehq","followers_url":"https://api.github.com/users/airbytehq/followers","following_url":"https://api.github.com/users/airbytehq/following{/other_user}","gists_url":"https://api.github.com/users/airbytehq/gists{/gist_id}","starred_url":"https://api.github.com/users/airbytehq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/airbytehq/subscriptions","organizations_url":"https://api.github.com/users/airbytehq/orgs","repos_url":"https://api.github.com/users/airbytehq/repos","events_url":"https://api.github.com/users/airbytehq/events{/privacy}","received_events_url":"https://api.github.com/users/airbytehq/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/airbytehq/integration-test","description":"Used for integration testing the Github source connector","fork":false,"url":"https://api.github.com/repos/airbytehq/integration-test","forks_url":"https://api.github.com/repos/airbytehq/integration-test/forks","keys_url":"https://api.github.com/repos/airbytehq/integration-test/keys{/key_id}","collaborators_url":"https://api.github.com/repos/airbytehq/integration-test/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/airbytehq/integration-test/teams","hooks_url":"https://api.github.com/repos/airbytehq/integration-test/hooks","issue_events_url":"https://api.github.com/repos/airbytehq/integration-test/issues/events{/number}","events_url":"https://api.github.com/repos/airbytehq/integration-test/events","assignees_url":"https://api.github.com/repos/airbytehq/integration-test/assignees{/user}","branches_url":"https://api.github.com/repos/airbytehq/integration-test/branches{/branch}","tags_url":"https://api.github.com/repos/airbytehq/integration-test/tags","blobs_url":"https://api.github.com/repos/airbytehq/integration-test/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/airbytehq/integration-test/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/airbytehq/integration-test/git/refs{/sha}","trees_url":"https://api.github.com/repos/airbytehq/integration-test/git/trees{/sha}","statuses_url":"https://api.github.com/repos/airbytehq/integration-test/statuses/{sha}","languages_url":"https://api.github.com/repos/airbytehq/integration-test/languages","stargazers_url":"https://api.github.com/repos/airbytehq/integration-test/stargazers","contributors_url":"https://api.github.com/repos/airbytehq/integration-test/contributors","subscribers_url":"https://api.github.com/repos/airbytehq/integration-test/subscribers","subscription_url":"https://api.github.com/repos/airbytehq/integration-test/subscription","commits_url":"https://api.github.com/repos/airbytehq/integration-test/commits{/sha}","git_commits_url":"https://api.github.com/repos/airbytehq/integration-test/git/commits{/sha}","comments_url":"https://api.github.com/repos/airbytehq/integration-test/comments{/number}","issue_comment_url":"https://api.github.com/repos/airbytehq/integration-test/issues/comments{/number}","contents_url":"https://api.github.com/repos/airbytehq/integration-test/contents/{+path}","compare_url":"https://api.github.com/repos/airbytehq/integration-test/compare/{base}...{head}","merges_url":"https://api.github.com/repos/airbytehq/integration-test/merges","archive_url":"https://api.github.com/repos/airbytehq/integration-test/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/airbytehq/integration-test/downloads","issues_url":"https://api.github.com/repos/airbytehq/integration-test/issues{/number}","pulls_url":"https://api.github.com/repos/airbytehq/integration-test/pulls{/number}","milestones_url":"https://api.github.com/repos/airbytehq/integration-test/milestones{/number}","notifications_url":"https://api.github.com/repos/airbytehq/integration-test/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/airbytehq/integration-test/labels{/name}","releases_url":"https://api.github.com/repos/airbytehq/integration-test/releases{/id}","deployments_url":"https://api.github.com/repos/airbytehq/integration-test/deployments"}},"emitted_at":1677668766993}
{"stream":"workflow_jobs","data":{"id":8705992587,"run_id":3184250176,"workflow_name":"Pull Request Labeler","head_branch":"feature/branch_5","run_url":"https://api.github.com/repos/airbytehq/integration-test/actions/runs/3184250176","run_attempt":1,"node_id":"CR_kwDOF9hP9c8AAAACBurniw","head_sha":"f71e5f6894578148d52b487dff07e55804fd9cfd","url":"https://api.github.com/repos/airbytehq/integration-test/actions/jobs/8705992587","html_url":"https://github.com/airbytehq/integration-test/actions/runs/3184250176/jobs/5192436167","status":"completed","conclusion":"success","created_at":"2022-10-04T17:41:20Z","started_at":"2022-10-04T17:41:27Z","completed_at":"2022-10-04T17:41:30Z","name":"triage","steps":[{"name":"Set up job","status":"completed","conclusion":"success","number":1,"started_at":"2022-10-04T10:41:26.000-07:00","completed_at":"2022-10-04T10:41:27.000-07:00"},{"name":"Run actions/labeler@v3","status":"completed","conclusion":"success","number":2,"started_at":"2022-10-04T10:41:27.000-07:00","completed_at":"2022-10-04T10:41:29.000-07:00"},{"name":"Complete job","status":"completed","conclusion":"success","number":3,"started_at":"2022-10-04T10:41:29.000-07:00","completed_at":"2022-10-04T10:41:29.000-07:00"}],"check_run_url":"https://api.github.com/repos/airbytehq/integration-test/check-runs/8705992587","labels":["ubuntu-latest"],"runner_id":1,"runner_name":"Hosted Agent","runner_group_id":2,"runner_group_name":"GitHub Actions","repository":"airbytehq/integration-test"},"emitted_at":1677668767830}
{"stream":"team_members","data":{"login":"sherifnada","id":6246757,"node_id":"MDQ6VXNlcjYyNDY3NTc=","avatar_url":"https://avatars.githubusercontent.com/u/6246757?v=4","gravatar_id":"","url":"https://api.github.com/users/sherifnada","html_url":"https://github.com/sherifnada","followers_url":"https://api.github.com/users/sherifnada/followers","following_url":"https://api.github.com/users/sherifnada/following{/other_user}","gists_url":"https://api.github.com/users/sherifnada/gists{/gist_id}","starred_url":"https://api.github.com/users/sherifnada/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sherifnada/subscriptions","organizations_url":"https://api.github.com/users/sherifnada/orgs","repos_url":"https://api.github.com/users/sherifnada/repos","events_url":"https://api.github.com/users/sherifnada/events{/privacy}","received_events_url":"https://api.github.com/users/sherifnada/received_events","type":"User","site_admin":false,"organization":"airbytehq","team_slug":"zazmic"},"emitted_at":1677668768649}
-{"stream":"team_memberships","data":{"state":"active","role":"maintainer","url":"https://api.github.com/organizations/59758427/team/4432406/memberships/sherifnada","organization":"airbytehq","team_slug":"zazmic","username":"sherifnada"},"emitted_at":1677668779034}
+{"stream":"team_memberships","data":{"state":"active","role":"maintainer","url":"https://api.github.com/organizations/59758427/team/4432406/memberships/sherifnada","organization":"airbytehq","team_slug":"zazmic","username":"sherifnada"},"emitted_at":1677668779034}
\ No newline at end of file
From 4b2376b76e4ac518598a8689e6fdf40a6b3b8c55 Mon Sep 17 00:00:00 2001
From: Arsen Losenko <20901439+arsenlosenko@users.noreply.github.com>
Date: Fri, 14 Apr 2023 18:40:06 +0300
Subject: [PATCH 068/187] Source Pipedrive: update expected records (#25199)
* Source Pipedrive: update expected records
* Update expected records
* Removed expected record that is not needed
---
.../integration_tests/expected_records.jsonl | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/airbyte-integrations/connectors/source-pipedrive/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-pipedrive/integration_tests/expected_records.jsonl
index f9097d3755b9..f6afedbdc80d 100644
--- a/airbyte-integrations/connectors/source-pipedrive/integration_tests/expected_records.jsonl
+++ b/airbyte-integrations/connectors/source-pipedrive/integration_tests/expected_records.jsonl
@@ -76,6 +76,6 @@
{"stream":"deal_products","data":{"id":11,"deal_id":17,"product_id":2,"product_variation_id":null,"name":"Item 1","order_nr":1,"item_price":100,"quantity":6,"discount_percentage":0,"duration":1,"duration_unit":null,"sum_no_discount":0,"sum":600,"currency":"USD","active_flag":true,"enabled_flag":true,"add_time":"2023-02-22 08:59:11","last_edit":"2023-02-22 08:59:11","comments":null,"tax":0,"quantity_formatted":"6","sum_formatted":"$600", "product": null},"emitted_at":1678280483291}
{"stream":"deal_products","data":{"id":12,"deal_id":20,"product_id":7,"product_variation_id":null,"name":"Item 6","order_nr":1,"item_price":100,"quantity":30,"discount_percentage":0,"duration":1,"duration_unit":null,"sum_no_discount":0,"sum":3000,"currency":"USD","active_flag":true,"enabled_flag":true,"add_time":"2023-02-22 10:24:57","last_edit":"2023-02-22 10:24:57","comments":null,"tax":0,"quantity_formatted":"30","sum_formatted":"$3,000", "product": null},"emitted_at":1678280483602}
{"stream":"deal_products","data":{"id":15,"deal_id":23,"product_id":11,"product_variation_id":null,"name":"Item 10","order_nr":1,"item_price":20,"quantity":120,"discount_percentage":0,"duration":1,"duration_unit":null,"sum_no_discount":0,"sum":2400,"currency":"USD","active_flag":true,"enabled_flag":true,"add_time":"2023-02-22 10:30:01","last_edit":"2023-02-22 10:30:01","comments":null,"tax":0.01,"quantity_formatted":"120","sum_formatted":"$2,400", "product": null},"emitted_at":1678280483969}
-{"stream":"deal_fields","data":{"id":12453,"key":"title","name":"Title","order_nr":0,"field_type":"varchar","json_column_flag":false,"add_time":"2020-12-10 07:23:48","update_time":"2020-12-10 07:23:48","last_updated_by_user_id":null,"edit_flag":false,"details_visible_flag":false,"add_visible_flag":false,"important_flag":false,"bulk_edit_allowed":true,"filtering_allowed":true,"sortable_flag":true,"searchable_flag":false,"active_flag":true,"projects_detail_visible_flag":false,"show_in_pipelines":{"show_in_all":true},"use_field":"id","link":"/deal/","mandatory_flag":true},"emitted_at":1679400128221}
-{"stream":"deal_fields","data":{"id":12454,"key":"creator_user_id","name":"Creator","order_nr":0,"field_type":"user","json_column_flag":false,"add_time":"2020-12-10 07:23:48","update_time":"2020-12-10 07:23:48","last_updated_by_user_id":null,"edit_flag":false,"details_visible_flag":false,"add_visible_flag":false,"important_flag":false,"bulk_edit_allowed":false,"filtering_allowed":true,"sortable_flag":true,"searchable_flag":false,"active_flag":true,"projects_detail_visible_flag":false,"show_in_pipelines":{"show_in_all":true},"mandatory_flag":true},"emitted_at":1679400128221}
-{"stream":"deal_fields","data":{"id":12455,"key":"user_id","name":"Owner","order_nr":0,"field_type":"user","json_column_flag":false,"add_time":"2020-12-10 07:23:48","update_time":"2020-12-10 07:23:48","last_updated_by_user_id":null,"edit_flag":false,"details_visible_flag":true,"add_visible_flag":false,"important_flag":false,"bulk_edit_allowed":true,"filtering_allowed":true,"sortable_flag":true,"searchable_flag":false,"active_flag":true,"projects_detail_visible_flag":false,"show_in_pipelines":{"show_in_all":true},"mandatory_flag":true},"emitted_at":1679400128222}
+{"stream": "deal_fields", "data": {"id": 12453, "key": "title", "name": "Title", "order_nr": 0, "field_type": "varchar", "json_column_flag": false, "add_time": "2020-12-10 07:23:48", "update_time": "2020-12-10 07:23:48", "last_updated_by_user_id": null, "edit_flag": false, "details_visible_flag": false, "add_visible_flag": false, "important_flag": false, "bulk_edit_allowed": true, "filtering_allowed": true, "sortable_flag": true, "searchable_flag": false, "active_flag": true, "projects_detail_visible_flag": false, "show_in_pipelines": {"show_in_all": true, "pipeline_ids": []}, "use_field": "id", "link": "/deal/", "mandatory_flag": true}, "emitted_at": 1681466011542}
+{"stream": "deal_fields", "data": {"id": 12454, "key": "creator_user_id", "name": "Creator", "order_nr": 0, "field_type": "user", "json_column_flag": false, "add_time": "2020-12-10 07:23:48", "update_time": "2020-12-10 07:23:48", "last_updated_by_user_id": null, "edit_flag": false, "details_visible_flag": false, "add_visible_flag": false, "important_flag": false, "bulk_edit_allowed": false, "filtering_allowed": true, "sortable_flag": true, "searchable_flag": false, "active_flag": true, "projects_detail_visible_flag": false, "show_in_pipelines": {"show_in_all": true, "pipeline_ids": []}, "mandatory_flag": true}, "emitted_at": 1681466011542}
+{"stream": "deal_fields", "data": {"id": 12455, "key": "user_id", "name": "Owner", "order_nr": 0, "field_type": "user", "json_column_flag": false, "add_time": "2020-12-10 07:23:48", "update_time": "2020-12-10 07:23:48", "last_updated_by_user_id": null, "edit_flag": false, "details_visible_flag": true, "add_visible_flag": false, "important_flag": false, "bulk_edit_allowed": true, "filtering_allowed": true, "sortable_flag": true, "searchable_flag": false, "active_flag": true, "projects_detail_visible_flag": false, "show_in_pipelines": {"show_in_all": true, "pipeline_ids": []}, "mandatory_flag": true}, "emitted_at": 1681466011542}
\ No newline at end of file
From 0eea77f38e8c769055226098637cf92969ce8e13 Mon Sep 17 00:00:00 2001
From: Arsen Losenko <20901439+arsenlosenko@users.noreply.github.com>
Date: Fri, 14 Apr 2023 18:53:11 +0300
Subject: [PATCH 069/187] Source Zendesk Support: update expected records
(#25206)
---
.../integration_tests/expected_records.jsonl | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/airbyte-integrations/connectors/source-zendesk-support/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-zendesk-support/integration_tests/expected_records.jsonl
index 06d364a37fcd..f01f6ee70b50 100644
--- a/airbyte-integrations/connectors/source-zendesk-support/integration_tests/expected_records.jsonl
+++ b/airbyte-integrations/connectors/source-zendesk-support/integration_tests/expected_records.jsonl
@@ -4,7 +4,6 @@
{"stream":"group_memberships","data":{"url":"https://d3v-airbyte.zendesk.com/api/v2/group_memberships/5059403826063.json","id":5059403826063,"user_id":360786799676,"group_id":5059403825935,"default":false,"created_at":"2022-06-29T12:30:07Z","updated_at":"2022-06-29T12:30:07Z"},"emitted_at":1673880693965}
{"stream":"group_memberships","data":{"url":"https://d3v-airbyte.zendesk.com/api/v2/group_memberships/5059436285071.json","id":5059436285071,"user_id":361084605116,"group_id":5059436284943,"default":false,"created_at":"2022-06-29T12:30:48Z","updated_at":"2022-06-29T12:30:48Z"},"emitted_at":1673880693966}
{"stream":"group_memberships","data":{"url":"https://d3v-airbyte.zendesk.com/api/v2/group_memberships/5059439464207.json","id":5059439464207,"user_id":361089721035,"group_id":5059439464079,"default":false,"created_at":"2022-06-29T12:29:26Z","updated_at":"2022-06-29T12:29:26Z"},"emitted_at":1673880693966}
-{"stream":"group_memberships","data":{"url":"https://d3v-airbyte.zendesk.com/api/v2/group_memberships/5059439847183.json","id":5059439847183,"user_id":360786799676,"group_id":5059436114575,"default":false,"created_at":"2022-06-29T12:30:30Z","updated_at":"2022-06-29T12:30:30Z"},"emitted_at":1673880693966}
{"stream":"group_memberships","data":{"url":"https://d3v-airbyte.zendesk.com/api/v2/group_memberships/5059439847695.json","id":5059439847695,"user_id":361089721035,"group_id":5059436114575,"default":false,"created_at":"2022-06-29T12:30:30Z","updated_at":"2022-06-29T12:30:30Z"},"emitted_at":1673880693966}
{"stream":"group_memberships","data":{"url":"https://d3v-airbyte.zendesk.com/api/v2/group_memberships/5059452990863.json","id":5059452990863,"user_id":361084605116,"group_id":5059452990735,"default":false,"created_at":"2022-06-29T12:29:36Z","updated_at":"2022-06-29T12:29:36Z"},"emitted_at":1673880693966}
{"stream":"group_memberships","data":{"url":"https://d3v-airbyte.zendesk.com/api/v2/group_memberships/5059453143055.json","id":5059453143055,"user_id":361084605116,"group_id":5059473603087,"default":false,"created_at":"2022-06-29T12:29:56Z","updated_at":"2022-06-29T12:29:56Z"},"emitted_at":1673880693966}
@@ -20,8 +19,8 @@
{"stream":"groups","data":{"url":"https://d3v-airbyte.zendesk.com/api/v2/groups/5060066676751.json","id":5060066676751,"is_public":true,"name":"Group 17","description":"","default":false,"deleted":false,"created_at":"2022-06-29T16:12:14Z","updated_at":"2022-06-29T16:12:14Z"},"emitted_at":1673880695076}
{"stream":"macros","data":{"url":"https://d3v-airbyte.zendesk.com/api/v2/macros/360011363556.json","id":360011363556,"title":"Customer not responding","active":true,"updated_at":"2020-12-11T18:34:06Z","created_at":"2020-12-11T18:34:06Z","default":false,"position":9999,"description":null,"actions":[{"field":"status","value":"pending"},{"field":"comment_value","value":"Hello {{ticket.requester.name}}. Our agent {{current_user.name}} has tried to contact you about this request but we haven't heard back from you yet. Please let us know if we can be of further assistance. Thanks. "}],"restriction":null,"raw_title":"Customer not responding"},"emitted_at":1673880696782}
{"stream":"macros","data":{"url":"https://d3v-airbyte.zendesk.com/api/v2/macros/360011363536.json","id":360011363536,"title":"Downgrade and inform","active":true,"updated_at":"2020-12-11T18:34:06Z","created_at":"2020-12-11T18:34:06Z","default":false,"position":9999,"description":null,"actions":[{"field":"priority","value":"low"},{"field":"comment_value","value":"We're currently experiencing unusually high traffic. We'll get back to you as soon as possible."}],"restriction":null,"raw_title":"Downgrade and inform"},"emitted_at":1673880696782}
-{"stream":"organizations","data":{"url":"https://d3v-airbyte.zendesk.com/api/v2/organizations/360033549136.json","id":360033549136,"name":"Airbyte","shared_tickets":false,"shared_comments":false,"external_id":null,"created_at":"2020-12-11T18:34:05Z","updated_at":"2020-12-11T18:34:05Z","domain_names":[],"details":null,"notes":null,"group_id":null,"tags":[],"organization_fields":{}},"emitted_at":1673880697932}
-{"stream":"organizations","data":{"url":"https://d3v-airbyte.zendesk.com/api/v2/organizations/360045373216.json","id":360045373216,"name":"ressssssss","shared_tickets":false,"shared_comments":false,"external_id":null,"created_at":"2021-07-15T18:29:14Z","updated_at":"2021-07-15T18:29:14Z","domain_names":[],"details":"","notes":"","group_id":null,"tags":[],"organization_fields":{}},"emitted_at":1673880697933}
+{"stream": "organizations", "data": {"url": "https://d3v-airbyte.zendesk.com/api/v2/organizations/360033549136.json", "id": 360033549136, "name": "Airbyte", "shared_tickets": true, "shared_comments": true, "external_id": null, "created_at": "2020-12-11T18:34:05Z", "updated_at": "2023-04-13T14:51:21Z", "domain_names": ["cloud.airbyte.com"], "details": "test", "notes": "test", "group_id": 6770788212111, "tags": ["test"], "organization_fields": {}}, "emitted_at": 1681484466079}
+{"stream": "organizations", "data": {"url": "https://d3v-airbyte.zendesk.com/api/v2/organizations/360045373216.json", "id": 360045373216, "name": "ressssssss", "shared_tickets": false, "shared_comments": false, "external_id": null, "created_at": "2021-07-15T18:29:14Z", "updated_at": "2021-07-15T18:29:14Z", "domain_names": [], "details": "", "notes": "", "group_id": null, "tags": [], "organization_fields": {}}, "emitted_at": 1681484466080}
{"stream":"satisfaction_ratings","data":{"url":"https://d3v-airbyte.zendesk.com/api/v2/satisfaction_ratings/4992997209743.json","id":4992997209743,"assignee_id":null,"group_id":null,"requester_id":4992781783439,"ticket_id":121,"score":"offered","created_at":"2022-06-17T16:01:42Z","updated_at":"2022-06-17T16:01:42Z","comment":null},"emitted_at":1673880699052}
{"stream":"satisfaction_ratings","data":{"url":"https://d3v-airbyte.zendesk.com/api/v2/satisfaction_ratings/4993646311567.json","id":4993646311567,"assignee_id":null,"group_id":null,"requester_id":4993467856015,"ticket_id":122,"score":"offered","created_at":"2022-06-17T21:01:41Z","updated_at":"2022-06-17T21:01:41Z","comment":null},"emitted_at":1673880699053}
{"stream":"satisfaction_ratings","data":{"url":"https://d3v-airbyte.zendesk.com/api/v2/satisfaction_ratings/5138125924367.json","id":5138125924367,"assignee_id":null,"group_id":null,"requester_id":5137812260495,"ticket_id":123,"score":"offered","created_at":"2022-07-13T16:02:03Z","updated_at":"2022-07-13T16:02:03Z","comment":null},"emitted_at":1673880699054}
@@ -98,6 +97,6 @@
{"stream":"users","data":{"id":5527080499599,"url":"https://d3v-airbyte.zendesk.com/api/v2/users/5527080499599.json","name":"Caller +1 (732) 769-8461","email":null,"created_at":"2022-09-19T14:43:41Z","updated_at":"2022-09-19T14:43:41Z","time_zone":"Pacific/Noumea","iana_time_zone":"Pacific/Noumea","phone":"+17327698461","shared_phone_number":false,"photo":null,"locale_id":1,"locale":"en-US","organization_id":null,"role":"end-user","verified":true,"external_id":null,"tags":[],"alias":null,"active":true,"shared":false,"shared_agent":false,"last_login_at":null,"two_factor_auth_enabled":false,"signature":null,"details":null,"notes":null,"role_type":null,"custom_role_id":null,"moderator":false,"ticket_restriction":"requested","only_private_comments":false,"restricted_agent":true,"suspended":false,"default_group_id":null,"report_csv":false,"user_fields":{}},"emitted_at":1673880717536}
{"stream":"users","data":{"id":5527111815439,"url":"https://d3v-airbyte.zendesk.com/api/v2/users/5527111815439.json","name":"Caller +1 (234) 601-8567","email":null,"created_at":"2022-09-19T14:53:48Z","updated_at":"2022-09-19T14:53:49Z","time_zone":"Pacific/Noumea","iana_time_zone":"Pacific/Noumea","phone":"+12346018567","shared_phone_number":false,"photo":null,"locale_id":1,"locale":"en-US","organization_id":null,"role":"end-user","verified":true,"external_id":null,"tags":[],"alias":null,"active":true,"shared":false,"shared_agent":false,"last_login_at":null,"two_factor_auth_enabled":false,"signature":null,"details":null,"notes":null,"role_type":null,"custom_role_id":null,"moderator":false,"ticket_restriction":"requested","only_private_comments":false,"restricted_agent":true,"suspended":false,"default_group_id":null,"report_csv":false,"user_fields":{}},"emitted_at":1673880717536}
{"stream": "brands", "data": {"url": "https://d3v-airbyte.zendesk.com/api/v2/brands/360000358316.json", "id": 360000358316, "name": "Airbyte", "brand_url": "https://d3v-airbyte.zendesk.com", "subdomain": "d3v-airbyte", "host_mapping": null, "has_help_center": false, "help_center_state": "disabled", "active": true, "default": true, "is_deleted": false, "logo": null, "ticket_form_ids": [360000084116], "signature_template": "{{agent.signature}}", "created_at": "2020-12-11T18:34:04Z", "updated_at": "2020-12-11T18:34:09Z"}, "emitted_at": 1673881264500}
-{"stream": "custom_roles", "data": {"id": 360000210636, "name": "Advisor", "description": "Can automate ticket workflows, manage channels and make private comments on tickets", "role_type": 0, "created_at": "2020-12-11T18:34:36Z", "updated_at": "2020-12-11T18:34:36Z", "configuration": {"chat_access": true, "manage_business_rules": true, "manage_dynamic_content": false, "manage_extensions_and_channels": true, "manage_facebook": true, "ticket_deletion": false, "view_deleted_tickets": false, "ticket_tag_editing": true, "twitter_search_access": false, "forum_access_restricted_content": false, "end_user_list_access": "full", "ticket_access": "within-groups", "ticket_comment_access": "none", "voice_access": true, "moderate_forums": false, "light_agent": false, "side_conversation_create": true, "group_access": false, "organization_editing": false, "organization_notes_editing": false, "assign_tickets_to_any_group": false, "end_user_profile_access": "readonly", "explore_access": "readonly", "forum_access": "readonly", "macro_access": "full", "report_access": "none", "ticket_editing": true, "ticket_merge": false, "view_access": "full", "user_view_access": "full", "voice_dashboard_access": false, "manage_contextual_workspaces": false, "manage_organization_fields": false, "manage_ticket_fields": false, "manage_ticket_forms": false, "manage_user_fields": false, "manage_automations": true, "manage_skills": true, "manage_slas": true, "manage_triggers": true, "ticket_redaction": false}, "team_member_count": 0}, "emitted_at": 1678472142307}
+{"stream": "custom_roles", "data": {"id": 360000210636, "name": "Advisor", "description": "Can automate ticket workflows, manage channels and make private comments on tickets", "role_type": 0, "created_at": "2020-12-11T18:34:36Z", "updated_at": "2020-12-11T18:34:36Z", "configuration": {"chat_access": true, "manage_business_rules": true, "manage_dynamic_content": false, "manage_extensions_and_channels": true, "manage_facebook": true, "ticket_deletion": false, "view_deleted_tickets": false, "ticket_tag_editing": true, "twitter_search_access": false, "forum_access_restricted_content": false, "end_user_list_access": "full", "ticket_access": "within-groups", "ticket_comment_access": "none", "voice_access": true, "moderate_forums": false, "light_agent": false, "side_conversation_create": true, "group_access": false, "organization_editing": false, "organization_notes_editing": false, "assign_tickets_to_any_group": false, "end_user_profile_access": "readonly", "explore_access": "readonly", "forum_access": "readonly", "macro_access": "full", "report_access": "none", "ticket_editing": true, "ticket_merge": false, "view_access": "full", "user_view_access": "full", "voice_dashboard_access": false, "manage_contextual_workspaces": false, "manage_organization_fields": false, "manage_ticket_fields": false, "manage_ticket_forms": false, "manage_user_fields": false, "manage_automations": true, "manage_skills": true, "manage_slas": true, "manage_triggers": true, "ticket_redaction": false, "manage_roles": "none"}, "team_member_count": 0}, "emitted_at": 1681484993833}
{"stream": "tags", "data": {"name": "test", "count": 1}, "emitted_at": 1681311413435}
{"stream": "tags", "data": {"name": "tag1204", "count": 1}, "emitted_at": 1681311413435}
From 3360cd46315aa6918ccfd7e0c004c2967009ad15 Mon Sep 17 00:00:00 2001
From: Arsen Losenko <20901439+arsenlosenko@users.noreply.github.com>
Date: Fri, 14 Apr 2023 19:24:53 +0300
Subject: [PATCH 070/187] Source Twilio: update expected records (#25200)
---
.../integration_tests/expected_records.jsonl | 21 +++++++++----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/airbyte-integrations/connectors/source-twilio/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-twilio/integration_tests/expected_records.jsonl
index 85f747be5cc2..81a7a2964500 100644
--- a/airbyte-integrations/connectors/source-twilio/integration_tests/expected_records.jsonl
+++ b/airbyte-integrations/connectors/source-twilio/integration_tests/expected_records.jsonl
@@ -149,17 +149,16 @@
{"stream": "incoming_phone_numbers", "data": {"sid": "PN8c084924cc64659889aaa98af937de56", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "friendly_name": "Test phone number 7", "phone_number": "+12232174137", "voice_url": "https://handler.twilio.com/twiml/EH3c0946e5d905d6563a71ef432575a1ff", "voice_method": "POST", "voice_fallback_url": "", "voice_fallback_method": "POST", "voice_caller_id_lookup": false, "date_created": "2023-02-16T14:29:03Z", "date_updated": "2023-03-27T08:01:20Z", "sms_url": "https://webhooks.twilio.com/v1/Accounts/ACdade166c12e160e9ed0a6088226718fb/Flows/FWbd726b7110b21294a9f27a47f4ab0080", "sms_method": "POST", "sms_fallback_url": "", "sms_fallback_method": "POST", "address_requirements": "none", "beta": false, "capabilities": {"voice": true, "sms": true, "mms": true}, "status_callback": "", "status_callback_method": "POST", "api_version": "2010-04-01", "voice_application_sid": "", "sms_application_sid": "", "origin": "twilio", "trunk_sid": null, "emergency_status": "Active", "emergency_address_sid": null, "emergency_address_status": "unregistered", "address_sid": "ADa29b1ee20cf61d213f7d7f1a3298309a", "identity_sid": null, "bundle_sid": null, "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/IncomingPhoneNumbers/PN8c084924cc64659889aaa98af937de56.json", "status": "in-use"}, "emitted_at": 1680350316245}
{"stream": "incoming_phone_numbers", "data": {"sid": "PN63c288b22a08ce3339371b4e6e10877e", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "friendly_name": "Test phone number 4", "phone_number": "+19704017747", "voice_url": "https://handler.twilio.com/twiml/EHcdb15ded7c5343ca4e52d85d4d94ebad", "voice_method": "POST", "voice_fallback_url": "", "voice_fallback_method": "POST", "voice_caller_id_lookup": false, "date_created": "2023-02-16T10:07:11Z", "date_updated": "2023-03-27T08:01:44Z", "sms_url": "https://webhooks.twilio.com/v1/Accounts/ACdade166c12e160e9ed0a6088226718fb/Flows/FWbd726b7110b21294a9f27a47f4ab0080", "sms_method": "POST", "sms_fallback_url": "", "sms_fallback_method": "POST", "address_requirements": "none", "beta": false, "capabilities": {"voice": true, "sms": true, "mms": true}, "status_callback": "", "status_callback_method": "POST", "api_version": "2010-04-01", "voice_application_sid": "", "sms_application_sid": "", "origin": "twilio", "trunk_sid": null, "emergency_status": "Active", "emergency_address_sid": null, "emergency_address_status": "unregistered", "address_sid": "ADc5e31ae6ae46befadd5c3f053c5a7153", "identity_sid": null, "bundle_sid": null, "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/IncomingPhoneNumbers/PN63c288b22a08ce3339371b4e6e10877e.json", "status": "in-use"}, "emitted_at": 1680350316247}
{"stream": "incoming_phone_numbers", "data": {"sid": "PN24bccae6bf6f7aeb9ab1d4aad7e443af", "account_sid": "AC4cac489c46197c9ebc91c840120a4dee", "friendly_name": "Dependent Phone Number 1", "phone_number": "+14066376761", "voice_url": "https://demo.twilio.com/welcome/voice/", "voice_method": "POST", "voice_fallback_url": "", "voice_fallback_method": "POST", "voice_caller_id_lookup": false, "date_created": "2023-03-23T13:04:22Z", "date_updated": "2023-03-23T13:05:32Z", "sms_url": "https://demo.twilio.com/welcome/sms/reply", "sms_method": "POST", "sms_fallback_url": "", "sms_fallback_method": "POST", "address_requirements": "none", "beta": false, "capabilities": {"voice": true, "sms": true, "mms": true}, "status_callback": "", "status_callback_method": "POST", "api_version": "2010-04-01", "voice_application_sid": "", "sms_application_sid": "", "origin": "twilio", "trunk_sid": null, "emergency_status": "Active", "emergency_address_sid": null, "emergency_address_status": "unregistered", "address_sid": null, "identity_sid": null, "bundle_sid": null, "uri": "/2010-04-01/Accounts/AC4cac489c46197c9ebc91c840120a4dee/IncomingPhoneNumbers/PN24bccae6bf6f7aeb9ab1d4aad7e443af.json", "status": "in-use"}, "emitted_at": 1680350316559}
-{"stream": "calls", "data": {"date_updated": "2022-06-17T22:28:34Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 61, "from": "+15312726629", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CAe71d3c7533543b5c81b1be3fc5affa2b", "queue_time": 0, "price": -0.017, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-06-17T22:27:33Z", "date_created": "2022-06-17T22:27:32Z", "from_formatted": "(531) 272-6629", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-06-17T22:28:34Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b/Feedback.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b/Payments.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b/UserDefinedMessages.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b/UserDefinedMessageSubscriptions.json"}}, "emitted_at": 1655893249727}
-{"stream": "calls", "data": {"date_updated": "2022-06-17T13:36:17Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 96, "from": "+17372040136", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CA0a47223735162e1a7df2738327bda2ab", "queue_time": 0, "price": -0.017, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-06-17T13:34:41Z", "date_created": "2022-06-17T13:34:41Z", "from_formatted": "(737) 204-0136", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-06-17T13:36:17Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab/Feedback.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab/Payments.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab/UserDefinedMessages.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab/UserDefinedMessageSubscriptions.json"}}, "emitted_at": 1655893249739}
-{"stream": "calls", "data": {"date_updated": "2022-06-16T20:02:43Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 124, "from": "+17372040136", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CAace5c8813c499253bbbff29ad0da0ccb", "queue_time": 0, "price": -0.0255, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-06-16T20:00:39Z", "date_created": "2022-06-16T20:00:39Z", "from_formatted": "(737) 204-0136", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-06-16T20:02:43Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb/Feedback.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb/Payments.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb/UserDefinedMessages.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb/UserDefinedMessageSubscriptions.json"}}, "emitted_at": 1655893249745}
-{"stream": "calls", "data": {"date_updated": "2022-06-02T12:54:05Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 5, "from": "+12059675338", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CAa24e9fbcb6eba3c8cfefc248a3c0b5b4", "queue_time": 0, "price": -0.0085, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-06-02T12:54:00Z", "date_created": "2022-06-02T12:54:00Z", "from_formatted": "(205) 967-5338", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-06-02T12:54:05Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4/Feedback.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4/Payments.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4/UserDefinedMessages.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4/UserDefinedMessageSubscriptions.json"}}, "emitted_at": 1655893249752}
-{"stream": "calls", "data": {"date_updated": "2022-05-26T22:14:18Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 69, "from": "+13343585579", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CA65f8d6ee9f8783233750f2b0f99cf1b3", "queue_time": 0, "price": -0.017, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-05-26T22:13:09Z", "date_created": "2022-05-26T22:13:09Z", "from_formatted": "(334) 358-5579", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-05-26T22:14:18Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3/Feedback.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3/Payments.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3/UserDefinedMessages.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3/UserDefinedMessageSubscriptions.json"}}, "emitted_at": 1655893249756}
-{"stream": "calls", "data": {"date_updated": "2022-05-24T23:00:40Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 31, "from": "+14156896198", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CA5b6907d5ebca072c9bd0f46952b886b6", "queue_time": 0, "price": -0.0085, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-05-24T23:00:09Z", "date_created": "2022-05-24T23:00:09Z", "from_formatted": "(415) 689-6198", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-05-24T23:00:40Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6/Feedback.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6/Payments.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6/UserDefinedMessages.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6/UserDefinedMessageSubscriptions.json"}}, "emitted_at": 1655893249759}
-{"stream": "calls", "data": {"date_updated": "2022-05-11T18:21:15Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 23, "from": "+12137661124", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CA696bd2d2e37ef8501f443807dce444a9", "queue_time": 0, "price": -0.0085, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-05-11T18:20:52Z", "date_created": "2022-05-11T18:20:52Z", "from_formatted": "(213) 766-1124", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-05-11T18:21:15Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9/Feedback.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9/Payments.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9/UserDefinedMessages.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9/UserDefinedMessageSubscriptions.json"}}, "emitted_at": 1655893249762}
-{"stream": "calls", "data": {"date_updated": "2022-04-20T17:33:25Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 5, "from": "+12059736828", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CAe86d27d7aba7c857135b46f52f578d0b", "queue_time": 0, "price": -0.0085, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-04-20T17:33:20Z", "date_created": "2022-04-20T17:33:20Z", "from_formatted": "(205) 973-6828", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-04-20T17:33:25Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b/Feedback.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b/Payments.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b/UserDefinedMessages.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b/UserDefinedMessageSubscriptions.json"}}, "emitted_at": 1655893249765}
-{"stream": "calls", "data": {"date_updated": "2022-04-06T21:01:01Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 6, "from": "+13017951000", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CAade9599c9cf53091c1787898093e2675", "queue_time": 0, "price": -0.0085, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-04-06T21:00:55Z", "date_created": "2022-04-06T21:00:55Z", "from_formatted": "(301) 795-1000", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-04-06T21:01:01Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675/Feedback.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675/Payments.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675/UserDefinedMessages.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675/UserDefinedMessageSubscriptions.json"}}, "emitted_at": 1655893249767}
-{"stream": "calls", "data": {"date_updated": "2022-04-06T20:57:37Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 6, "from": "+13017951000", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CAa3887d4de4849a630bc369351f300171", "queue_time": 0, "price": -0.0085, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-04-06T20:57:31Z", "date_created": "2022-04-06T20:57:31Z", "from_formatted": "(301) 795-1000", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-04-06T20:57:37Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171/Feedback.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171/Payments.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171/UserDefinedMessages.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171/UserDefinedMessageSubscriptions.json"}}, "emitted_at": 1655893249769}
-{"stream": "calls", "data": {"date_updated": "2022-03-13T23:56:37Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 13, "from": "+12059203962", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CA78611ecf5e7f101b1a59be31b8f520f7", "queue_time": 0, "price": -0.0085, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-03-13T23:56:24Z", "date_created": "2022-03-13T23:56:24Z", "from_formatted": "(205) 920-3962", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA78611ecf5e7f101b1a59be31b8f520f7.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-03-13T23:56:37Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA78611ecf5e7f101b1a59be31b8f520f7/Feedback.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA78611ecf5e7f101b1a59be31b8f520f7/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA78611ecf5e7f101b1a59be31b8f520f7/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA78611ecf5e7f101b1a59be31b8f520f7/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA78611ecf5e7f101b1a59be31b8f520f7/Payments.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA78611ecf5e7f101b1a59be31b8f520f7/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA78611ecf5e7f101b1a59be31b8f520f7/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA78611ecf5e7f101b1a59be31b8f520f7/UserDefinedMessages.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA78611ecf5e7f101b1a59be31b8f520f7/UserDefinedMessageSubscriptions.json"}}, "emitted_at": 1655893249771}
+{"stream": "calls", "data": {"date_updated": "2022-06-17T22:28:34Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 61, "from": "+15312726629", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CAe71d3c7533543b5c81b1be3fc5affa2b", "queue_time": 0, "price": -0.017, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-06-17T22:27:33Z", "date_created": "2022-06-17T22:27:32Z", "from_formatted": "(531) 272-6629", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-06-17T22:28:34Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b/Feedback.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b/UserDefinedMessages.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b/Payments.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b/UserDefinedMessageSubscriptions.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe71d3c7533543b5c81b1be3fc5affa2b/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json"}}, "emitted_at": 1681459251178}
+{"stream": "calls", "data": {"date_updated": "2022-06-17T13:36:17Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 96, "from": "+17372040136", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CA0a47223735162e1a7df2738327bda2ab", "queue_time": 0, "price": -0.017, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-06-17T13:34:41Z", "date_created": "2022-06-17T13:34:41Z", "from_formatted": "(737) 204-0136", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-06-17T13:36:17Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab/Feedback.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab/UserDefinedMessages.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab/Payments.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab/UserDefinedMessageSubscriptions.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA0a47223735162e1a7df2738327bda2ab/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json"}}, "emitted_at": 1681459251177}
+{"stream": "calls", "data": {"date_updated": "2022-06-16T20:02:43Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 124, "from": "+17372040136", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CAace5c8813c499253bbbff29ad0da0ccb", "queue_time": 0, "price": -0.0255, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-06-16T20:00:39Z", "date_created": "2022-06-16T20:00:39Z", "from_formatted": "(737) 204-0136", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-06-16T20:02:43Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb/Feedback.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb/UserDefinedMessages.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb/Payments.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb/UserDefinedMessageSubscriptions.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAace5c8813c499253bbbff29ad0da0ccb/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json"}}, "emitted_at": 1681459251176}
+{"stream": "calls", "data": {"date_updated": "2022-06-02T12:54:05Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 5, "from": "+12059675338", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CAa24e9fbcb6eba3c8cfefc248a3c0b5b4", "queue_time": 0, "price": -0.0085, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-06-02T12:54:00Z", "date_created": "2022-06-02T12:54:00Z", "from_formatted": "(205) 967-5338", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-06-02T12:54:05Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4/Feedback.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4/UserDefinedMessages.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4/Payments.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4/UserDefinedMessageSubscriptions.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa24e9fbcb6eba3c8cfefc248a3c0b5b4/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json"}}, "emitted_at": 1681459251174}
+{"stream": "calls", "data": {"date_updated": "2022-05-26T22:14:18Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 69, "from": "+13343585579", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CA65f8d6ee9f8783233750f2b0f99cf1b3", "queue_time": 0, "price": -0.017, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-05-26T22:13:09Z", "date_created": "2022-05-26T22:13:09Z", "from_formatted": "(334) 358-5579", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-05-26T22:14:18Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3/Feedback.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3/UserDefinedMessages.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3/Payments.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3/UserDefinedMessageSubscriptions.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA65f8d6ee9f8783233750f2b0f99cf1b3/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json"}}, "emitted_at": 1681459251172}
+{"stream": "calls", "data": {"date_updated": "2022-05-24T23:00:40Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 31, "from": "+14156896198", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CA5b6907d5ebca072c9bd0f46952b886b6", "queue_time": 0, "price": -0.0085, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-05-24T23:00:09Z", "date_created": "2022-05-24T23:00:09Z", "from_formatted": "(415) 689-6198", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-05-24T23:00:40Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6/Feedback.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6/UserDefinedMessages.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6/Payments.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6/UserDefinedMessageSubscriptions.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA5b6907d5ebca072c9bd0f46952b886b6/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json"}}, "emitted_at": 1681459251171}
+{"stream": "calls", "data": {"date_updated": "2022-05-11T18:21:15Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 23, "from": "+12137661124", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CA696bd2d2e37ef8501f443807dce444a9", "queue_time": 0, "price": -0.0085, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-05-11T18:20:52Z", "date_created": "2022-05-11T18:20:52Z", "from_formatted": "(213) 766-1124", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-05-11T18:21:15Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9/Feedback.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9/UserDefinedMessages.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9/Payments.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9/UserDefinedMessageSubscriptions.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CA696bd2d2e37ef8501f443807dce444a9/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json"}}, "emitted_at": 1681459251170}
+{"stream": "calls", "data": {"date_updated": "2022-04-20T17:33:25Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 5, "from": "+12059736828", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CAe86d27d7aba7c857135b46f52f578d0b", "queue_time": 0, "price": -0.0085, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-04-20T17:33:20Z", "date_created": "2022-04-20T17:33:20Z", "from_formatted": "(205) 973-6828", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-04-20T17:33:25Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b/Feedback.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b/UserDefinedMessages.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b/Payments.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b/UserDefinedMessageSubscriptions.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAe86d27d7aba7c857135b46f52f578d0b/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json"}}, "emitted_at": 1681459251168}
+{"stream": "calls", "data": {"date_updated": "2022-04-06T21:01:01Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 6, "from": "+13017951000", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CAade9599c9cf53091c1787898093e2675", "queue_time": 0, "price": -0.0085, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-04-06T21:00:55Z", "date_created": "2022-04-06T21:00:55Z", "from_formatted": "(301) 795-1000", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-04-06T21:01:01Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675/Feedback.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675/UserDefinedMessages.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675/Payments.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675/UserDefinedMessageSubscriptions.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAade9599c9cf53091c1787898093e2675/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json"}}, "emitted_at": 1681459251167}
+{"stream": "calls", "data": {"date_updated": "2022-04-06T20:57:37Z", "price_unit": "USD", "parent_call_sid": null, "caller_name": null, "duration": 6, "from": "+13017951000", "to": "+12056561170", "annotation": null, "answered_by": null, "sid": "CAa3887d4de4849a630bc369351f300171", "queue_time": 0, "price": -0.0085, "api_version": "2010-04-01", "status": "completed", "direction": "inbound", "start_time": "2022-04-06T20:57:31Z", "date_created": "2022-04-06T20:57:31Z", "from_formatted": "(301) 795-1000", "group_sid": null, "trunk_sid": "", "forwarded_from": "+12056561170", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "end_time": "2022-04-06T20:57:37Z", "to_formatted": "(205) 656-1170", "phone_number_sid": "PNe40bd7f3ac343b32fd51275d2d5b3dcc", "subresource_uris": {"feedback": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171/Feedback.json", "user_defined_messages": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171/UserDefinedMessages.json", "notifications": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171/Notifications.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171/Recordings.json", "streams": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171/Streams.json", "payments": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171/Payments.json", "user_defined_message_subscriptions": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171/UserDefinedMessageSubscriptions.json", "siprec": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171/Siprec.json", "events": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/CAa3887d4de4849a630bc369351f300171/Events.json", "feedback_summaries": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Calls/FeedbackSummary.json"}}, "emitted_at": 1681459251164}
{"stream": "conferences", "data": {"status": "completed", "reason_conference_ended": "last-participant-left", "date_updated": "2022-09-23T14:44:41Z", "region": "us1", "friendly_name": "test_conference", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Conferences/CFca0fa08200f55a6d60779d18b644a675.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "call_sid_ending_conference": "CA8858f240bdccfb3393def1682c2dbdf0", "sid": "CFca0fa08200f55a6d60779d18b644a675", "date_created": "2022-09-23T14:44:11Z", "api_version": "2010-04-01", "subresource_uris": {"participants": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Conferences/CFca0fa08200f55a6d60779d18b644a675/Participants.json", "recordings": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/Conferences/CFca0fa08200f55a6d60779d18b644a675/Recordings.json"}}, "emitted_at": 1663955824121}
{"stream": "outgoing_caller_ids", "data": {"phone_number": "+14153597503", "date_updated": "2020-11-17T04:17:37Z", "friendly_name": "(415) 359-7503", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/OutgoingCallerIds/PN16ba111c0df5756cfe37044ed0ee3136.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "sid": "PN16ba111c0df5756cfe37044ed0ee3136", "date_created": "2020-11-17T04:17:37Z"}, "emitted_at": 1655893253929}
{"stream": "outgoing_caller_ids", "data": {"phone_number": "+18023494963", "date_updated": "2020-12-11T04:28:02Z", "friendly_name": "(802) 349-4963", "uri": "/2010-04-01/Accounts/ACdade166c12e160e9ed0a6088226718fb/OutgoingCallerIds/PN726d635f970c30193cd12e7b994510a1.json", "account_sid": "ACdade166c12e160e9ed0a6088226718fb", "sid": "PN726d635f970c30193cd12e7b994510a1", "date_created": "2020-12-11T04:28:02Z"}, "emitted_at": 1655893253943}
From 1fdf3b8c01038901d404f03251d006b6d62b973e Mon Sep 17 00:00:00 2001
From: Alexandre Girard
Date: Fri, 14 Apr 2023 10:23:59 -0700
Subject: [PATCH 071/187] connector builder: Emit message at start of slice
(#25180)
* Move condition for yielding the slice message to an overwritable method
* Automated Commit - Formatting Changes
* yield the slice log messages
* same for incremental
* refactor
* Revert "refactor"
This reverts commit c594365bd82c059df9d3d41656d58d426278aa78.
* move flag from factory to source
* set the flag
* remove debug print
* halfmock
* clean up
* Add a test for a single page
* Add another test
* Pass the flag
* rename
---------
Co-authored-by: girarda
---
.../connector_builder_handler.py | 4 +-
.../airbyte_cdk/sources/abstract_source.py | 12 +-
.../manifest_declarative_source.py | 22 ++-
.../test_connector_builder_handler.py | 163 +++++++++++++++---
4 files changed, 173 insertions(+), 28 deletions(-)
diff --git a/airbyte-cdk/python/airbyte_cdk/connector_builder/connector_builder_handler.py b/airbyte-cdk/python/airbyte_cdk/connector_builder/connector_builder_handler.py
index 76909c8ca6d4..5637b0955e34 100644
--- a/airbyte-cdk/python/airbyte_cdk/connector_builder/connector_builder_handler.py
+++ b/airbyte-cdk/python/airbyte_cdk/connector_builder/connector_builder_handler.py
@@ -45,7 +45,9 @@ def get_limits(config: Mapping[str, Any]) -> TestReadLimits:
def create_source(config: Mapping[str, Any], limits: TestReadLimits) -> ManifestDeclarativeSource:
manifest = config["__injected_declarative_manifest"]
return ManifestDeclarativeSource(
- source_config=manifest, component_factory=ModelToComponentFactory(
+ emit_connector_builder_messages=True,
+ source_config=manifest,
+ component_factory=ModelToComponentFactory(
emit_connector_builder_messages=True,
limit_pages_fetched_per_slice=limits.max_pages_per_slice,
limit_slices_fetched=limits.max_slices)
diff --git a/airbyte-cdk/python/airbyte_cdk/sources/abstract_source.py b/airbyte-cdk/python/airbyte_cdk/sources/abstract_source.py
index 4beec964909f..8cfcb0b5beaa 100644
--- a/airbyte-cdk/python/airbyte_cdk/sources/abstract_source.py
+++ b/airbyte-cdk/python/airbyte_cdk/sources/abstract_source.py
@@ -237,7 +237,7 @@ def _read_incremental(
has_slices = False
for _slice in slices:
has_slices = True
- if logger.isEnabledFor(logging.DEBUG):
+ if self.should_log_slice_message(logger):
yield AirbyteMessage(
type=MessageType.LOG,
log=AirbyteLogMessage(level=Level.INFO, message=f"{self.SLICE_LOG_PREFIX}{json.dumps(_slice, default=str)}"),
@@ -277,6 +277,14 @@ def _read_incremental(
checkpoint = self._checkpoint_state(stream_instance, stream_state, state_manager)
yield checkpoint
+ def should_log_slice_message(self, logger: logging.Logger):
+ """
+
+ :param logger:
+ :return:
+ """
+ return logger.isEnabledFor(logging.DEBUG)
+
def _read_full_refresh(
self,
logger: logging.Logger,
@@ -290,7 +298,7 @@ def _read_full_refresh(
)
total_records_counter = 0
for _slice in slices:
- if logger.isEnabledFor(logging.DEBUG):
+ if self.should_log_slice_message(logger):
yield AirbyteMessage(
type=MessageType.LOG,
log=AirbyteLogMessage(level=Level.INFO, message=f"{self.SLICE_LOG_PREFIX}{json.dumps(_slice, default=str)}"),
diff --git a/airbyte-cdk/python/airbyte_cdk/sources/declarative/manifest_declarative_source.py b/airbyte-cdk/python/airbyte_cdk/sources/declarative/manifest_declarative_source.py
index 9ddb5c8819b9..82fbb1dfb36d 100644
--- a/airbyte-cdk/python/airbyte_cdk/sources/declarative/manifest_declarative_source.py
+++ b/airbyte-cdk/python/airbyte_cdk/sources/declarative/manifest_declarative_source.py
@@ -36,7 +36,13 @@ class ManifestDeclarativeSource(DeclarativeSource):
VALID_TOP_LEVEL_FIELDS = {"check", "definitions", "schemas", "spec", "streams", "type", "version"}
- def __init__(self, source_config: ConnectionDefinition, debug: bool = False, component_factory: ModelToComponentFactory = None):
+ def __init__(
+ self,
+ source_config: ConnectionDefinition,
+ debug: bool = False,
+ emit_connector_builder_messages: bool = False,
+ component_factory: ModelToComponentFactory = None,
+ ):
"""
:param source_config(Mapping[str, Any]): The manifest of low-code components that describe the source connector
:param debug(bool): True if debug mode is enabled
@@ -53,7 +59,8 @@ def __init__(self, source_config: ConnectionDefinition, debug: bool = False, com
propagated_source_config = ManifestComponentTransformer().propagate_types_and_parameters("", resolved_source_config, {})
self._source_config = propagated_source_config
self._debug = debug
- self._constructor = component_factory if component_factory else ModelToComponentFactory()
+ self._emit_connector_builder_messages = emit_connector_builder_messages
+ self._constructor = component_factory if component_factory else ModelToComponentFactory(emit_connector_builder_messages)
self._validate_source()
@@ -66,7 +73,9 @@ def connection_checker(self) -> ConnectionChecker:
check = self._source_config["check"]
if "type" not in check:
check["type"] = "CheckStream"
- check_stream = self._constructor.create_component(CheckStreamModel, check, dict())
+ check_stream = self._constructor.create_component(
+ CheckStreamModel, check, dict(), emit_connector_builder_messages=self._emit_connector_builder_messages
+ )
if isinstance(check_stream, ConnectionChecker):
return check_stream
else:
@@ -76,7 +85,9 @@ def streams(self, config: Mapping[str, Any]) -> List[Stream]:
self._emit_manifest_debug_message(extra_args={"source_name": self.name, "parsed_config": json.dumps(self._source_config)})
source_streams = [
- self._constructor.create_component(DeclarativeStreamModel, stream_config, config)
+ self._constructor.create_component(
+ DeclarativeStreamModel, stream_config, config, emit_connector_builder_messages=self._emit_connector_builder_messages
+ )
for stream_config in self._stream_configs(self._source_config)
]
@@ -118,6 +129,9 @@ def read(
self._configure_logger_level(logger)
yield from super().read(logger, config, catalog, state)
+ def should_log_slice_message(self, logger: logging.Logger):
+ return self._emit_connector_builder_messages or super(self).should_log_slice_message(logger)
+
def _configure_logger_level(self, logger: logging.Logger):
"""
Set the log level to logging.DEBUG if debug mode is enabled
diff --git a/airbyte-cdk/python/unit_tests/connector_builder/test_connector_builder_handler.py b/airbyte-cdk/python/unit_tests/connector_builder/test_connector_builder_handler.py
index 0ebadda79485..2ac37f24c6ca 100644
--- a/airbyte-cdk/python/unit_tests/connector_builder/test_connector_builder_handler.py
+++ b/airbyte-cdk/python/unit_tests/connector_builder/test_connector_builder_handler.py
@@ -9,6 +9,7 @@
from unittest.mock import patch
import pytest
+import requests
from airbyte_cdk import connector_builder
from airbyte_cdk.connector_builder.connector_builder_handler import (
DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE,
@@ -22,10 +23,22 @@
)
from airbyte_cdk.connector_builder.main import handle_connector_builder_request, handle_request, read_stream
from airbyte_cdk.connector_builder.models import LogMessage, StreamRead, StreamReadSlicesInner, StreamReadSlicesInnerPagesInner
-from airbyte_cdk.models import AirbyteMessage, AirbyteRecordMessage, ConfiguredAirbyteCatalog
+from airbyte_cdk.models import (
+ AirbyteLogMessage,
+ AirbyteMessage,
+ AirbyteRecordMessage,
+ AirbyteStream,
+ ConfiguredAirbyteCatalog,
+ ConfiguredAirbyteStream,
+ DestinationSyncMode,
+ Level,
+ SyncMode,
+)
+from airbyte_cdk.models import Type
from airbyte_cdk.models import Type as MessageType
from airbyte_cdk.sources.declarative.declarative_stream import DeclarativeStream
from airbyte_cdk.sources.declarative.manifest_declarative_source import ManifestDeclarativeSource
+from airbyte_cdk.sources.declarative.retrievers import SimpleRetrieverTestReadDecorator
from airbyte_cdk.sources.streams.core import Stream
from airbyte_cdk.sources.streams.http import HttpStream
from unit_tests.connector_builder.utils import create_configured_catalog
@@ -34,23 +47,29 @@
_stream_primary_key = "id"
_stream_url_base = "https://api.sendgrid.com"
_stream_options = {"name": _stream_name, "primary_key": _stream_primary_key, "url_base": _stream_url_base}
+_page_size = 2
MANIFEST = {
"version": "0.30.3",
"definitions": {
- "schema_loader": {"name": "{{ options.stream_name }}", "file_path": "./source_sendgrid/schemas/{{ options.name }}.yaml"},
"retriever": {
"paginator": {
"type": "DefaultPaginator",
- "page_size": 10,
+ "page_size": _page_size,
"page_size_option": {"inject_into": "request_parameter", "field_name": "page_size"},
"page_token_option": {"inject_into": "path", "type": "RequestPath"},
- "pagination_strategy": {"type": "CursorPagination", "cursor_value": "{{ response._metadata.next }}", "page_size": 10},
+ "pagination_strategy": {"type": "CursorPagination", "cursor_value": "{{ response._metadata.next }}", "page_size": _page_size},
+ },
+ "partition_router": {
+ "type": "ListPartitionRouter",
+ "values": ["0", "1", "2", "3", "4", "5", "6", "7"],
+ "cursor_field": "item_id"
},
+ ""
"requester": {
"path": "/v3/marketing/lists",
"authenticator": {"type": "BearerAuthenticator", "api_token": "{{ config.apikey }}"},
- "request_parameters": {"page_size": "10"},
+ "request_parameters": {"a_param": "10"},
},
"record_selector": {"extractor": {"field_path": ["result"]}},
},
@@ -59,7 +78,6 @@
{
"type": "DeclarativeStream",
"$parameters": _stream_options,
- "schema_loader": {"$ref": "#/definitions/schema_loader"},
"retriever": "#/definitions/retriever",
},
],
@@ -169,19 +187,23 @@ def test_resolve_manifest(valid_resolve_manifest_config_file):
"type": "DeclarativeSource",
"version": "0.30.3",
"definitions": {
- "schema_loader": {"name": "{{ options.stream_name }}", "file_path": "./source_sendgrid/schemas/{{ options.name }}.yaml"},
"retriever": {
"paginator": {
"type": "DefaultPaginator",
- "page_size": 10,
+ "page_size": _page_size,
"page_size_option": {"inject_into": "request_parameter", "field_name": "page_size"},
"page_token_option": {"inject_into": "path", "type": "RequestPath"},
- "pagination_strategy": {"type": "CursorPagination", "cursor_value": "{{ response._metadata.next }}", "page_size": 10},
+ "pagination_strategy": {"type": "CursorPagination", "cursor_value": "{{ response._metadata.next }}", "page_size": _page_size},
+ },
+ "partition_router": {
+ "type": "ListPartitionRouter",
+ "values": ["0", "1", "2", "3", "4", "5", "6", "7"],
+ "cursor_field": "item_id",
},
"requester": {
"path": "/v3/marketing/lists",
"authenticator": {"type": "BearerAuthenticator", "api_token": "{{ config.apikey }}"},
- "request_parameters": {"page_size": "10"},
+ "request_parameters": {"a_param": "10"},
},
"record_selector": {"extractor": {"field_path": ["result"]}},
},
@@ -189,19 +211,11 @@ def test_resolve_manifest(valid_resolve_manifest_config_file):
"streams": [
{
"type": "DeclarativeStream",
- "schema_loader": {
- "type": "JsonFileSchemaLoader",
- "name": "{{ options.stream_name }}",
- "file_path": "./source_sendgrid/schemas/{{ options.name }}.yaml",
- "primary_key": _stream_primary_key,
- "url_base": _stream_url_base,
- "$parameters": _stream_options,
- },
"retriever": {
"type": "SimpleRetriever",
"paginator": {
"type": "DefaultPaginator",
- "page_size": 10,
+ "page_size": _page_size,
"page_size_option": {
"type": "RequestOption",
"inject_into": "request_parameter",
@@ -226,7 +240,7 @@ def test_resolve_manifest(valid_resolve_manifest_config_file):
"primary_key": _stream_primary_key,
"url_base": _stream_url_base,
"$parameters": _stream_options,
- "page_size": 10,
+ "page_size": _page_size,
},
"name": _stream_name,
"primary_key": _stream_primary_key,
@@ -244,7 +258,16 @@ def test_resolve_manifest(valid_resolve_manifest_config_file):
"url_base": _stream_url_base,
"$parameters": _stream_options,
},
- "request_parameters": {"page_size": "10"},
+ "request_parameters": {"a_param": "10"},
+ "name": _stream_name,
+ "primary_key": _stream_primary_key,
+ "url_base": _stream_url_base,
+ "$parameters": _stream_options,
+ },
+ "partition_router": {
+ "type": "ListPartitionRouter",
+ "values": ["0", "1", "2", "3", "4", "5", "6", "7"],
+ "cursor_field": "item_id",
"name": _stream_name,
"primary_key": _stream_primary_key,
"url_base": _stream_url_base,
@@ -512,3 +535,101 @@ def test_create_source():
assert isinstance(source, ManifestDeclarativeSource)
assert source._constructor._limit_pages_fetched_per_slice == limits.max_pages_per_slice
assert source._constructor._limit_slices_fetched == limits.max_slices
+
+
+def request_log_message(request: dict) -> AirbyteMessage:
+ return AirbyteMessage(type=Type.LOG, log=AirbyteLogMessage(level=Level.INFO, message=f"request:{json.dumps(request)}"))
+
+
+def response_log_message(response: dict) -> AirbyteMessage:
+ return AirbyteMessage(type=Type.LOG, log=AirbyteLogMessage(level=Level.INFO, message=f"response:{json.dumps(response)}"))
+
+
+def _create_request():
+ url = "https://example.com/api"
+ headers = {'Content-Type': 'application/json'}
+ return requests.Request('POST', url, headers=headers, json={"key": "value"}).prepare()
+
+
+def _create_response(body):
+ response = requests.Response()
+ response.status_code = 200
+ response._content = bytes(json.dumps(body), "utf-8")
+ response.headers["Content-Type"] = "application/json"
+ return response
+
+
+def _create_page(response_body):
+ return _create_request(), _create_response(response_body)
+
+
+@patch.object(HttpStream, "_fetch_next_page", side_effect=(_create_page({"result": [{"id": 0}, {"id": 1}],"_metadata": {"next": "next"}}), _create_page({"result": [{"id": 2}],"_metadata": {"next": "next"}})) * 10)
+def test_read_source(mock_http_stream):
+ """
+ This test sort of acts as an integration test for the connector builder.
+
+ Each slice has two pages
+ The first page has two records
+ The second page one record
+
+ The response._metadata.next field in the first page tells the paginator to fetch the next page.
+ """
+ max_records = 100
+ max_pages_per_slice = 2
+ max_slices = 3
+ limits = TestReadLimits(max_records, max_pages_per_slice, max_slices)
+
+ catalog = ConfiguredAirbyteCatalog(streams=[
+ ConfiguredAirbyteStream(stream=AirbyteStream(name=_stream_name, json_schema={}, supported_sync_modes=[SyncMode.full_refresh]), sync_mode=SyncMode.full_refresh, destination_sync_mode=DestinationSyncMode.append)
+ ])
+
+ config = {"__injected_declarative_manifest": MANIFEST}
+
+ source = create_source(config, limits)
+
+ output_data = read_stream(source, config, catalog, limits).record.data
+ slices = output_data["slices"]
+
+ assert len(slices) == max_slices
+ for s in slices:
+ pages = s["pages"]
+ assert len(pages) == max_pages_per_slice
+
+ first_page, second_page = pages[0], pages[1]
+ assert len(first_page["records"]) == _page_size
+ assert len(second_page["records"]) == 1
+
+ streams = source.streams(config)
+ for s in streams:
+ assert isinstance(s.retriever, SimpleRetrieverTestReadDecorator)
+
+
+@patch.object(HttpStream, "_fetch_next_page", side_effect=(_create_page({"result": [{"id": 0}, {"id": 1}],"_metadata": {"next": "next"}}), _create_page({"result": [{"id": 2}],"_metadata": {"next": "next"}})))
+def test_read_source_single_page_single_slice(mock_http_stream):
+ max_records = 100
+ max_pages_per_slice = 1
+ max_slices = 1
+ limits = TestReadLimits(max_records, max_pages_per_slice, max_slices)
+
+ catalog = ConfiguredAirbyteCatalog(streams=[
+ ConfiguredAirbyteStream(stream=AirbyteStream(name=_stream_name, json_schema={}, supported_sync_modes=[SyncMode.full_refresh]), sync_mode=SyncMode.full_refresh, destination_sync_mode=DestinationSyncMode.append)
+ ])
+
+ config = {"__injected_declarative_manifest": MANIFEST}
+
+ source = create_source(config, limits)
+
+ output_data = read_stream(source, config, catalog, limits).record.data
+ slices = output_data["slices"]
+
+ assert len(slices) == max_slices
+ for s in slices:
+ pages = s["pages"]
+ assert len(pages) == max_pages_per_slice
+
+ first_page = pages[0]
+ assert len(first_page["records"]) == _page_size
+
+ streams = source.streams(config)
+ for s in streams:
+ assert isinstance(s.retriever, SimpleRetrieverTestReadDecorator)
From 774e2eb1eda2ec61bca215cb0350ea10dfa12e8d Mon Sep 17 00:00:00 2001
From: girarda
Date: Fri, 14 Apr 2023 17:30:23 +0000
Subject: [PATCH 072/187] =?UTF-8?q?=F0=9F=A4=96=20Bump=20patch=20version?=
=?UTF-8?q?=20of=20Airbyte=20CDK?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
airbyte-cdk/python/.bumpversion.cfg | 2 +-
airbyte-cdk/python/CHANGELOG.md | 3 +++
airbyte-cdk/python/Dockerfile | 4 ++--
airbyte-cdk/python/setup.py | 2 +-
4 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/airbyte-cdk/python/.bumpversion.cfg b/airbyte-cdk/python/.bumpversion.cfg
index 087205a91cf3..54afb9d55dba 100644
--- a/airbyte-cdk/python/.bumpversion.cfg
+++ b/airbyte-cdk/python/.bumpversion.cfg
@@ -1,5 +1,5 @@
[bumpversion]
-current_version = 0.34.1
+current_version = 0.34.2
commit = False
[bumpversion:file:setup.py]
diff --git a/airbyte-cdk/python/CHANGELOG.md b/airbyte-cdk/python/CHANGELOG.md
index f6d8b13e547d..9ffeb23fa827 100644
--- a/airbyte-cdk/python/CHANGELOG.md
+++ b/airbyte-cdk/python/CHANGELOG.md
@@ -1,5 +1,8 @@
# Changelog
+## 0.34.2
+Emit slice log messages when running the connector builder
+
## 0.34.1
set slice and pages limit when reading from the connector builder module
diff --git a/airbyte-cdk/python/Dockerfile b/airbyte-cdk/python/Dockerfile
index cd5d7989b6e1..e14beda07b01 100644
--- a/airbyte-cdk/python/Dockerfile
+++ b/airbyte-cdk/python/Dockerfile
@@ -10,7 +10,7 @@ RUN apk --no-cache upgrade \
&& apk --no-cache add tzdata build-base
# install airbyte-cdk
-RUN pip install --prefix=/install airbyte-cdk==0.34.1
+RUN pip install --prefix=/install airbyte-cdk==0.34.2
# build a clean environment
FROM base
@@ -32,5 +32,5 @@ ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
# needs to be the same as CDK
-LABEL io.airbyte.version=0.34.1
+LABEL io.airbyte.version=0.34.2
LABEL io.airbyte.name=airbyte/source-declarative-manifest
diff --git a/airbyte-cdk/python/setup.py b/airbyte-cdk/python/setup.py
index 40a36d00a372..ef162934137c 100644
--- a/airbyte-cdk/python/setup.py
+++ b/airbyte-cdk/python/setup.py
@@ -17,7 +17,7 @@
name="airbyte-cdk",
# The version of the airbyte-cdk package is used at runtime to validate manifests. That validation must be
# updated if our semver format changes such as using release candidate versions.
- version="0.34.1",
+ version="0.34.2",
description="A framework for writing Airbyte Connectors.",
long_description=README,
long_description_content_type="text/markdown",
From fcaaf45fb93ef59617050169368f98a23891d822 Mon Sep 17 00:00:00 2001
From: Sajarin
Date: Fri, 14 Apr 2023 14:00:18 -0400
Subject: [PATCH 073/187] CI checks for #23868 (#24717)
* feat(source-bing-ads): add dimensional columns for AccountPerformanceReport
* feat(source-bing-ads): add dimensional columns for AdGroupPerformanceReport
* feat(source-bing-ads): add dimensional columns for AdPerformanceReport
* feat(source-bing-ads): add dimensional columns for KeywordPerformanceReport
* feat(source-bing-ads): add dimensional columns for CampaignPerformanceReport
* docs(source-bing-ads): update changelog
* chore(source-bing-ads): bump version in Dockerfile
* test(source-bing-ads): allow extra fields for basic read
* Revert "test(source-bing-ads): allow extra fields for basic read"
This reverts commit 961f0d6650321f94be990221c75718876a3b8f78.
* test(source-bing-ads): ignore community contributed fields
* fix: updated expected_records of report streams
* auto-bump connector version
* Automated Change
---------
Co-authored-by: Rachel RIZK
Co-authored-by: Octavia Squidington III
Co-authored-by: sajarin
---
.../src/main/resources/seed/oss_catalog.json | 2 +-
.../resources/seed/source_definitions.yaml | 2 +-
.../src/main/resources/seed/source_specs.yaml | 2 +-
.../connectors/source-bing-ads/Dockerfile | 2 +-
.../acceptance-test-config.yml | 20 ++++++-------
.../integration_tests/expected_records.txt | 30 +++++++++----------
.../schemas/account_performance_report.json | 6 ++++
.../schemas/ad_group_performance_report.json | 15 ++++++++++
.../schemas/ad_performance_report.json | 12 ++++++++
.../schemas/campaign_performance_report.json | 9 ++++++
.../schemas/keyword_performance_report.json | 9 ++++++
.../source-bing-ads/source_bing_ads/source.py | 17 +++++++++++
connectors.md | 2 +-
docs/integrations/sources/bing-ads.md | 1 +
14 files changed, 99 insertions(+), 30 deletions(-)
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index 7fb37ecba2cc..1ca63e7d4a52 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -9715,7 +9715,7 @@
"sourceDefinitionId": "47f25999-dd5e-4636-8c39-e7cea2453331",
"name": "Bing Ads",
"dockerRepository": "airbyte/source-bing-ads",
- "dockerImageTag": "0.1.18",
+ "dockerImageTag": "0.1.19",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/bing-ads",
"icon": "bingads.svg",
"sourceType": "api",
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
index 357a3b10b582..5a7fcd2b1832 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
@@ -211,7 +211,7 @@
- name: Bing Ads
sourceDefinitionId: 47f25999-dd5e-4636-8c39-e7cea2453331
dockerRepository: airbyte/source-bing-ads
- dockerImageTag: 0.1.18
+ dockerImageTag: 0.1.19
documentationUrl: https://docs.airbyte.com/integrations/sources/bing-ads
icon: bingads.svg
sourceType: api
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
index 3b704feb87fe..ea4d56af4adc 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
@@ -1958,7 +1958,7 @@
- "overwrite"
- "append"
- "append_dedup"
-- dockerImage: "airbyte/source-bing-ads:0.1.18"
+- dockerImage: "airbyte/source-bing-ads:0.1.19"
spec:
documentationUrl: "https://docs.airbyte.com/integrations/sources/bing-ads"
connectionSpecification:
diff --git a/airbyte-integrations/connectors/source-bing-ads/Dockerfile b/airbyte-integrations/connectors/source-bing-ads/Dockerfile
index 3a1c3501e088..3a5298feae5c 100644
--- a/airbyte-integrations/connectors/source-bing-ads/Dockerfile
+++ b/airbyte-integrations/connectors/source-bing-ads/Dockerfile
@@ -12,5 +12,5 @@ RUN pip install .
ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
-LABEL io.airbyte.version=0.1.18
+LABEL io.airbyte.version=0.1.19
LABEL io.airbyte.name=airbyte/source-bing-ads
diff --git a/airbyte-integrations/connectors/source-bing-ads/acceptance-test-config.yml b/airbyte-integrations/connectors/source-bing-ads/acceptance-test-config.yml
index 1172bc814967..31f7faef24a1 100644
--- a/airbyte-integrations/connectors/source-bing-ads/acceptance-test-config.yml
+++ b/airbyte-integrations/connectors/source-bing-ads/acceptance-test-config.yml
@@ -3,18 +3,18 @@ test_strictness_level: high
acceptance_tests:
spec:
tests:
- - spec_path: source_bing_ads/spec.json
+ - spec_path: source_bing_ads/spec.json
discovery:
tests:
- - config_path: secrets/config.json
+ - config_path: secrets/config.json
connection:
tests:
- - config_path: secrets/config_old.json
- status: succeed
- - config_path: secrets/config.json
- status: succeed
- - config_path: integration_tests/invalid_config.json
- status: failed
+ - config_path: secrets/config_old.json
+ status: succeed
+ - config_path: secrets/config.json
+ status: succeed
+ - config_path: integration_tests/invalid_config.json
+ status: failed
basic_read:
tests:
- config_path: secrets/config.json
@@ -35,8 +35,8 @@ acceptance_tests:
fail_on_extra_columns: false
full_refresh:
tests:
- - config_path: secrets/config.json
- configured_catalog_path: integration_tests/configured_catalog.json
+ - config_path: secrets/config.json
+ configured_catalog_path: integration_tests/configured_catalog.json
incremental:
tests:
bypass_reason: "SAT doesn't support complex nested states used in incremental report streams"
diff --git a/airbyte-integrations/connectors/source-bing-ads/integration_tests/expected_records.txt b/airbyte-integrations/connectors/source-bing-ads/integration_tests/expected_records.txt
index 2168526d8cb3..ddabb157f9b3 100644
--- a/airbyte-integrations/connectors/source-bing-ads/integration_tests/expected_records.txt
+++ b/airbyte-integrations/connectors/source-bing-ads/integration_tests/expected_records.txt
@@ -2,19 +2,19 @@
{"stream":"ads","data":{"AdFormatPreference":"All","DevicePreference":0,"EditorialStatus":"ActiveLimited","FinalAppUrls":null,"FinalMobileUrls":{"string":["https://airbyte.io"]},"FinalUrlSuffix":null,"FinalUrls":{"string":["https://airbyte.io"]},"ForwardCompatibilityMap":null,"Id":84525295496190,"Status":"Active","TrackingUrlTemplate":null,"Type":"ResponsiveSearch","UrlCustomParameters":null,"Descriptions":{"AssetLink":[{"Asset":{"Id":10239221964468,"Name":null,"Type":"TextAsset","Text":"Open data integration for modern data teams"},"AssetPerformanceLabel":"Learning","EditorialStatus":"Active","PinnedField":null},{"Asset":{"Id":10239221964466,"Name":null,"Type":"TextAsset","Text":"Get your data pipelines running in minutes. With pre-built or custom connectors"},"AssetPerformanceLabel":"Learning","EditorialStatus":"Active","PinnedField":null}]},"Domain":"airbyte.io","Headlines":{"AssetLink":[{"Asset":{"Id":10239221964471,"Name":null,"Type":"TextAsset","Text":"Data Integration Tool"},"AssetPerformanceLabel":"Learning","EditorialStatus":"Active","PinnedField":null},{"Asset":{"Id":10239221964469,"Name":null,"Type":"TextAsset","Text":"1,000+ Members"},"AssetPerformanceLabel":"Learning","EditorialStatus":"Active","PinnedField":null},{"Asset":{"Id":10239221964467,"Name":null,"Type":"TextAsset","Text":"Data Management Software"},"AssetPerformanceLabel":"Learning","EditorialStatus":"Active","PinnedField":null}]},"Path1":null,"Path2":null},"emitted_at":1675189577521}
{"stream":"campaigns","data":{"AudienceAdsBidAdjustment":0,"BiddingScheme":{"Type":"EnhancedCpc"},"BudgetType":"DailyBudgetStandard","DailyBudget":0.1,"ExperimentId":null,"FinalUrlSuffix":null,"ForwardCompatibilityMap":null,"Id":407519039,"MultimediaAdsBidAdjustment":40,"Name":"integration-test-campaign","Status":"Paused","SubType":null,"TimeZone":"Arizona","TrackingUrlTemplate":null,"UrlCustomParameters":null,"CampaignType":"Search","Settings":{"Setting":[{"Type":"TargetSetting","Details":{"TargetSettingDetail":[{"CriterionTypeGroup":"Audience","TargetAndBid":false}]}}]},"BudgetId":null,"Languages":{"string":["English"]},"AdScheduleUseSearcherTimeZone":false},"emitted_at":1675189585409}
{"stream":"accounts","data":{"BillToCustomerId":251186883,"CurrencyCode":"USD","AccountFinancialStatus":"ClearFinancialStatus","Id":180278106,"Language":"English","LastModifiedByUserId":3,"LastModifiedTime":"2021-08-23T07:06:19.147000","Name":"Daxtarity Inc.","Number":"F149GKV5","ParentCustomerId":251186883,"PaymentMethodId":138188746,"PaymentMethodType":"CreditCard","PrimaryUserId":138225488,"AccountLifeCycleStatus":"Active","TimeStamp":"AAAAAE0a41E=","TimeZone":"Arizona","PauseReason":null,"ForwardCompatibilityMap":null,"LinkedAgencies":null,"SalesHouseCustomerId":null,"TaxInformation":null,"BackUpPaymentInstrumentId":null,"BillingThresholdAmount":null,"BusinessAddress":{"City":"San Francisco","CountryCode":"US","Id":149004358,"Line1":"350 29th avenue","Line2":null,"Line3":null,"Line4":null,"PostalCode":"94121","StateOrProvince":"CA","TimeStamp":null,"BusinessName":"Daxtarity Inc."},"AutoTagType":"Inactive","SoldToPaymentInstrumentId":null,"AccountMode":"Expert"},"emitted_at":1675189590928}
-{"stream":"account_performance_report_daily","data":{"AccountId":180278106,"TimePeriod":"2021-06-09","CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Network":"Bing and Yahoo! search","DeliveredMatchType":"Exact","DeviceOS":"Windows","TopVsOther":"Bing and Yahoo! search - Top","BidMatchType":"Broad","PhoneImpressions":0,"PhoneCalls":0,"Clicks":0,"Ctr":0,"Spend":0,"Impressions":1,"CostPerConversion":null,"Ptr":null,"Assists":0,"ReturnOnAdSpend":null,"CostPerAssist":null,"AverageCpc":0,"AveragePosition":0,"AverageCpm":0,"Conversions":0,"ConversionRate":null,"ConversionsQualified":0,"LowQualityClicks":0,"LowQualityClicksPercent":null,"LowQualityImpressions":2,"LowQualitySophisticatedClicks":0,"LowQualityConversions":0,"LowQualityConversionRate":null,"Revenue":0,"RevenuePerConversion":null,"RevenuePerAssist":null},"emitted_at":1675189607967}
-{"stream":"account_performance_report_weekly","data":{"AccountId":180278106,"TimePeriod":"2021-06-06","CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Network":"Bing and Yahoo! search","DeliveredMatchType":"Exact","DeviceOS":"Windows","TopVsOther":"Bing and Yahoo! search - Top","BidMatchType":"Broad","PhoneImpressions":0,"PhoneCalls":0,"Clicks":0,"Ctr":0,"Spend":0,"Impressions":1,"CostPerConversion":null,"Ptr":null,"Assists":0,"ReturnOnAdSpend":null,"CostPerAssist":null,"AverageCpc":0,"AveragePosition":0,"AverageCpm":0,"Conversions":0,"ConversionRate":null,"ConversionsQualified":0,"LowQualityClicks":0,"LowQualityClicksPercent":null,"LowQualityImpressions":3,"LowQualitySophisticatedClicks":0,"LowQualityConversions":0,"LowQualityConversionRate":null,"Revenue":0,"RevenuePerConversion":null,"RevenuePerAssist":null},"emitted_at":1675189619945}
-{"stream":"account_performance_report_monthly","data":{"AccountId":180278106,"TimePeriod":"2021-06-01","CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Network":"Bing and Yahoo! search","DeliveredMatchType":"Exact","DeviceOS":"Unknown","TopVsOther":"Bing and Yahoo! search - Top","BidMatchType":"Broad","PhoneImpressions":0,"PhoneCalls":0,"Clicks":0,"Ctr":null,"Spend":0,"Impressions":0,"CostPerConversion":null,"Ptr":null,"Assists":0,"ReturnOnAdSpend":null,"CostPerAssist":null,"AverageCpc":0,"AveragePosition":0,"AverageCpm":0,"Conversions":0,"ConversionRate":null,"ConversionsQualified":0,"LowQualityClicks":0,"LowQualityClicksPercent":null,"LowQualityImpressions":2,"LowQualitySophisticatedClicks":0,"LowQualityConversions":0,"LowQualityConversionRate":null,"Revenue":0,"RevenuePerConversion":null,"RevenuePerAssist":null},"emitted_at":1675189630754}
-{"stream":"ad_group_performance_report_daily","data":{"AccountId":180278106,"CampaignId":413444833,"AdGroupId":1352400325389092,"TimePeriod":"2021-06-09","CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Network":"Bing and Yahoo! search","DeliveredMatchType":"Exact","DeviceOS":"Windows","TopVsOther":"Bing and Yahoo! search - Top","BidMatchType":"Broad","Language":"English","Impressions":1,"Clicks":0,"Ctr":0,"Spend":0,"CostPerConversion":null,"QualityScore":0,"ExpectedCtr":"--","AdRelevance":0,"LandingPageExperience":0,"PhoneImpressions":0,"PhoneCalls":0,"Ptr":null,"Assists":0,"CostPerAssist":null,"CustomParameters":null,"FinalUrlSuffix":null,"ViewThroughConversions":0,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"AllConversions":0,"AllConversionRate":null,"AllRevenue":0,"AllRevenuePerConversion":null,"AverageCpc":0,"AveragePosition":0,"AverageCpm":0,"Conversions":0,"ConversionRate":null,"ConversionsQualified":0,"Revenue":0,"RevenuePerConversion":null,"RevenuePerAssist":null,"HistoricalQualityScore":8,"HistoricalExpectedCtr":2,"HistoricalAdRelevance":3,"HistoricalLandingPageExperience":3},"emitted_at":1675189656024}
-{"stream":"ad_group_performance_report_weekly","data":{"AccountId":180278106,"CampaignId":413444833,"AdGroupId":1352400325389092,"TimePeriod":"2021-06-06","CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Network":"Bing and Yahoo! search","DeliveredMatchType":"Exact","DeviceOS":"Windows","TopVsOther":"Bing and Yahoo! search - Top","BidMatchType":"Broad","Language":"English","Impressions":1,"Clicks":0,"Ctr":0,"Spend":0,"CostPerConversion":null,"QualityScore":0,"ExpectedCtr":"--","AdRelevance":0,"LandingPageExperience":0,"PhoneImpressions":0,"PhoneCalls":0,"Ptr":null,"Assists":0,"CostPerAssist":null,"CustomParameters":null,"FinalUrlSuffix":null,"ViewThroughConversions":0,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"AllConversions":0,"AllConversionRate":null,"AllRevenue":0,"AllRevenuePerConversion":null,"AverageCpc":0,"AveragePosition":0,"AverageCpm":0,"Conversions":0,"ConversionRate":null,"ConversionsQualified":0,"Revenue":0,"RevenuePerConversion":null,"RevenuePerAssist":null,"HistoricalQualityScore":8,"HistoricalExpectedCtr":2,"HistoricalAdRelevance":3,"HistoricalLandingPageExperience":3},"emitted_at":1675189669363}
-{"stream":"ad_group_performance_report_monthly","data":{"AccountId":180278106,"CampaignId":413444833,"AdGroupId":1352400325389092,"TimePeriod":"2021-06-01","CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Network":"Bing and Yahoo! search","DeliveredMatchType":"Exact","DeviceOS":"Windows","TopVsOther":"Bing and Yahoo! search - Top","BidMatchType":"Broad","Language":"English","Impressions":11,"Clicks":0,"Ctr":0,"Spend":0,"CostPerConversion":null,"QualityScore":0,"ExpectedCtr":"--","AdRelevance":0,"LandingPageExperience":0,"PhoneImpressions":0,"PhoneCalls":0,"Ptr":null,"Assists":0,"CostPerAssist":null,"CustomParameters":null,"FinalUrlSuffix":null,"ViewThroughConversions":0,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"AllConversions":0,"AllConversionRate":null,"AllRevenue":0,"AllRevenuePerConversion":null,"AverageCpc":0,"AveragePosition":0,"AverageCpm":0,"Conversions":0,"ConversionRate":null,"ConversionsQualified":0,"Revenue":0,"RevenuePerConversion":null,"RevenuePerAssist":null,"HistoricalQualityScore":8,"HistoricalExpectedCtr":2,"HistoricalAdRelevance":3,"HistoricalLandingPageExperience":3},"emitted_at":1675189680148}
-{"stream":"ad_performance_report_daily","data":{"AccountId":180278106,"CampaignId":413444833,"AdGroupId":1352400325389092,"AdId":84525295496190,"TimePeriod":"2021-06-09","CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Language":"English","Network":"Bing and Yahoo! search","DeviceOS":"Unknown","TopVsOther":"Bing and Yahoo! search - Top","BidMatchType":"Broad","DeliveredMatchType":"Broad","Impressions":1,"Clicks":0,"Ctr":0,"Spend":0,"CostPerConversion":null,"DestinationUrl":null,"Assists":0,"ReturnOnAdSpend":null,"CostPerAssist":null,"CustomParameters":null,"FinalAppUrl":null,"AdDescription":null,"AdDescription2":null,"ViewThroughConversions":0,"ViewThroughConversionsQualified":null,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"Conversions":0,"ConversionRate":null,"ConversionsQualified":0,"AverageCpc":0,"AveragePosition":0,"AverageCpm":0,"AllConversions":0,"AllConversionRate":null,"AllRevenue":0,"AllRevenuePerConversion":null,"Revenue":0,"RevenuePerConversion":null,"RevenuePerAssist":null},"emitted_at":1675189700718}
-{"stream":"ad_performance_report_weekly","data":{"AccountId":180278106,"CampaignId":413444833,"AdGroupId":1352400325389092,"AdId":84525295496190,"TimePeriod":"2021-06-06","CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Language":"German","Network":"Syndicated search partners","DeviceOS":"Unknown","TopVsOther":"Syndicated search partners - Top","BidMatchType":"Broad","DeliveredMatchType":"Broad","Impressions":7,"Clicks":0,"Ctr":0,"Spend":0,"CostPerConversion":null,"DestinationUrl":null,"Assists":0,"ReturnOnAdSpend":null,"CostPerAssist":null,"CustomParameters":null,"FinalAppUrl":null,"AdDescription":null,"AdDescription2":null,"ViewThroughConversions":0,"ViewThroughConversionsQualified":null,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"Conversions":0,"ConversionRate":null,"ConversionsQualified":0,"AverageCpc":0,"AveragePosition":0,"AverageCpm":0,"AllConversions":0,"AllConversionRate":null,"AllRevenue":0,"AllRevenuePerConversion":null,"Revenue":0,"RevenuePerConversion":null,"RevenuePerAssist":null},"emitted_at":1675189711572}
-{"stream":"ad_performance_report_monthly","data":{"AccountId":180278106,"CampaignId":413444833,"AdGroupId":1352400325389092,"AdId":84525295496190,"TimePeriod":"2021-06-01","CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Language":"German","Network":"Bing and Yahoo! search","DeviceOS":"Windows","TopVsOther":"Bing and Yahoo! search - Top","BidMatchType":"Broad","DeliveredMatchType":"Broad","Impressions":1,"Clicks":0,"Ctr":0,"Spend":0,"CostPerConversion":null,"DestinationUrl":null,"Assists":0,"ReturnOnAdSpend":null,"CostPerAssist":null,"CustomParameters":null,"FinalAppUrl":null,"AdDescription":null,"AdDescription2":null,"ViewThroughConversions":0,"ViewThroughConversionsQualified":null,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"Conversions":0,"ConversionRate":null,"ConversionsQualified":0,"AverageCpc":0,"AveragePosition":0,"AverageCpm":0,"AllConversions":0,"AllConversionRate":null,"AllRevenue":0,"AllRevenuePerConversion":null,"Revenue":0,"RevenuePerConversion":null,"RevenuePerAssist":null},"emitted_at":1675189725727}
+{"stream":"account_performance_report_daily", "data":{"AccountId": 180278106, "TimePeriod": "2021-08-03", "CurrencyCode": "USD", "AdDistribution": "Search", "DeviceType": "Tablet", "Network": "Syndicated search partners", "DeliveredMatchType": "Exact", "DeviceOS": "Android", "TopVsOther": "Syndicated search partners - Other", "BidMatchType": "Broad", "AccountName": "Daxtarity Inc.", "AccountNumber": "F149GKV5", "PhoneImpressions": 0, "PhoneCalls": 0, "Clicks": 0, "Ctr": 0.0, "Spend": 0.0, "Impressions": 1, "CostPerConversion": null, "Ptr": null, "Assists": 0, "ReturnOnAdSpend": null, "CostPerAssist": null, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "LowQualityClicks": 0, "LowQualityClicksPercent": null, "LowQualityImpressions": 0, "LowQualitySophisticatedClicks": 0, "LowQualityConversions": 0, "LowQualityConversionRate": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null}, "emitted_at": 1679944835117}
+{"stream":"account_performance_report_weekly", "data": {"AccountId": 180278106, "TimePeriod": "2021-08-01", "CurrencyCode": "USD", "AdDistribution": "Search", "DeviceType": "Tablet", "Network": "Syndicated search partners", "DeliveredMatchType": "Broad", "DeviceOS": "Android", "TopVsOther": "Syndicated search partners - Top", "BidMatchType": "Broad", "AccountName": "Daxtarity Inc.", "AccountNumber": "F149GKV5", "PhoneImpressions": 0, "PhoneCalls": 0, "Clicks": 0, "Ctr": 0.0, "Spend": 0.0, "Impressions": 1, "CostPerConversion": null, "Ptr": null, "Assists": 0, "ReturnOnAdSpend": null, "CostPerAssist": null, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "LowQualityClicks": 0, "LowQualityClicksPercent": null, "LowQualityImpressions": 1, "LowQualitySophisticatedClicks": 0, "LowQualityConversions": 0, "LowQualityConversionRate": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null}, "emitted_at": 1679944953111}
+{"stream":"account_performance_report_monthly", "data": {"AccountId": 180278106, "TimePeriod": "2021-08-01", "CurrencyCode": "USD", "AdDistribution": "Search", "DeviceType": "Tablet", "Network": "Syndicated search partners", "DeliveredMatchType": "Broad", "DeviceOS": "Android", "TopVsOther": "Syndicated search partners - Top", "BidMatchType": "Broad", "AccountName": "Daxtarity Inc.", "AccountNumber": "F149GKV5", "PhoneImpressions": 0, "PhoneCalls": 0, "Clicks": 0, "Ctr": 0.0, "Spend": 0.0, "Impressions": 1, "CostPerConversion": null, "Ptr": null, "Assists": 0, "ReturnOnAdSpend": null, "CostPerAssist": null, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "LowQualityClicks": 0, "LowQualityClicksPercent": null, "LowQualityImpressions": 1, "LowQualitySophisticatedClicks": 0, "LowQualityConversions": 0, "LowQualityConversionRate": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null}, "emitted_at": 1679945438344}
+{"stream":"ad_group_performance_report_daily", "data": {"AccountId": 180278106, "CampaignId": 413444833, "AdGroupId": 1352400325389092, "TimePeriod": "2021-08-03", "CurrencyCode": "USD", "AdDistribution": "Search", "DeviceType": "Tablet", "Network": "Syndicated search partners", "DeliveredMatchType": "Exact", "DeviceOS": "Android", "TopVsOther": "Syndicated search partners - Other", "BidMatchType": "Broad", "Language": "English", "AccountName": "Daxtarity Inc.", "CampaignName": "Test 2", "CampaignType": "Search & content", "AdGroupName": "Airbyte", "AdGroupType": "Standard", "Impressions": 1, "Clicks": 0, "Ctr": 0.0, "Spend": 0.0, "CostPerConversion": null, "QualityScore": 0.0, "ExpectedCtr": "--", "AdRelevance": 0.0, "LandingPageExperience": 0.0, "PhoneImpressions": 0, "PhoneCalls": 0, "Ptr": null, "Assists": 0, "CostPerAssist": null, "CustomParameters": null, "FinalUrlSuffix": null, "ViewThroughConversions": 0, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "AllConversions": 0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null, "HistoricalQualityScore": 8.0, "HistoricalExpectedCtr": 2.0, "HistoricalAdRelevance": 3.0, "HistoricalLandingPageExperience": 3.0}, "emitted_at": 1679950558186}
+{"stream":"ad_group_performance_report_weekly", "data": {"AccountId": 180278106, "CampaignId": 413444833, "AdGroupId": 1352400325389092, "TimePeriod": "2021-08-01", "CurrencyCode": "USD", "AdDistribution": "Search", "DeviceType": "Tablet", "Network": "Syndicated search partners", "DeliveredMatchType": "Broad", "DeviceOS": "Android", "TopVsOther": "Syndicated search partners - Top", "BidMatchType": "Broad", "Language": "English", "AccountName": "Daxtarity Inc.", "CampaignName": "Test 2", "CampaignType": "Search & content", "AdGroupName": "Airbyte", "AdGroupType": "Standard", "Impressions": 1, "Clicks": 0, "Ctr": 0.0, "Spend": 0.0, "CostPerConversion": null, "QualityScore": 0.0, "ExpectedCtr": "--", "AdRelevance": 0.0, "LandingPageExperience": 0.0, "PhoneImpressions": 0, "PhoneCalls": 0, "Ptr": null, "Assists": 0, "CostPerAssist": null, "CustomParameters": null, "FinalUrlSuffix": null, "ViewThroughConversions": 0, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "AllConversions": 0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null, "HistoricalQualityScore": 8.0, "HistoricalExpectedCtr": 2.0, "HistoricalAdRelevance": 3.0, "HistoricalLandingPageExperience": 3.0}, "emitted_at": 1679945714359}
+{"stream":"ad_group_performance_report_monthly", "data": {"AccountId": 180278106, "CampaignId": 413444833, "AdGroupId": 1352400325389092, "TimePeriod": "2021-08-01", "CurrencyCode": "USD", "AdDistribution": "Search", "DeviceType": "Tablet", "Network": "Syndicated search partners", "DeliveredMatchType": "Broad", "DeviceOS": "Android", "TopVsOther": "Syndicated search partners - Top", "BidMatchType": "Broad", "Language": "English", "AccountName": "Daxtarity Inc.", "CampaignName": "Test 2", "CampaignType": "Search & content", "AdGroupName": "Airbyte", "AdGroupType": "Standard", "Impressions": 1, "Clicks": 0, "Ctr": 0.0, "Spend": 0.0, "CostPerConversion": null, "QualityScore": 0.0, "ExpectedCtr": "--", "AdRelevance": 0.0, "LandingPageExperience": 0.0, "PhoneImpressions": 0, "PhoneCalls": 0, "Ptr": null, "Assists": 0, "CostPerAssist": null, "CustomParameters": null, "FinalUrlSuffix": null, "ViewThroughConversions": 0, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "AllConversions": 0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null, "HistoricalQualityScore": 8.0, "HistoricalExpectedCtr": 2.0, "HistoricalAdRelevance": 3.0, "HistoricalLandingPageExperience": 3.0}, "emitted_at": 1679945656700}
+{"stream": "ad_performance_report_daily", "data": {"AccountId": 180278106, "CampaignId": 413444833, "AdGroupId": 1352400325389092, "AdId": 84525295496190, "TimePeriod": "2021-08-03", "CurrencyCode": "USD", "AdDistribution": "Search", "DeviceType": "Tablet", "Language": "English", "Network": "Syndicated search partners", "DeviceOS": "Android", "TopVsOther": "Syndicated search partners - Other", "BidMatchType": "Broad", "DeliveredMatchType": "Exact", "AccountName": "Daxtarity Inc.", "CampaignName": "Test 2", "CampaignType": "Search & content", "AdGroupName": "Airbyte", "Impressions": 1, "Clicks": 0, "Ctr": 0.0, "Spend": 0.0, "CostPerConversion": null, "DestinationUrl": null, "Assists": 0, "ReturnOnAdSpend": null, "CostPerAssist": null, "CustomParameters": null, "FinalAppUrl": null, "AdDescription": null, "AdDescription2": null, "ViewThroughConversions": 0, "ViewThroughConversionsQualified": null, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "AllConversions": 0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null}, "emitted_at": 1679950716583}
+{"stream": "ad_performance_report_weekly", "data": {"AccountId": 180278106, "CampaignId": 413444833, "AdGroupId": 1352400325389092, "AdId": 84525295496190, "TimePeriod": "2021-08-01", "CurrencyCode": "USD", "AdDistribution": "Search", "DeviceType": "Tablet", "Language": "English", "Network": "Syndicated search partners", "DeviceOS": "Android", "TopVsOther": "Syndicated search partners - Other", "BidMatchType": "Broad", "DeliveredMatchType": "Phrase", "AccountName": "Daxtarity Inc.", "CampaignName": "Test 2", "CampaignType": "Search & content", "AdGroupName": "Airbyte", "Impressions": 1, "Clicks": 0, "Ctr": 0.0, "Spend": 0.0, "CostPerConversion": null, "DestinationUrl": null, "Assists": 0, "ReturnOnAdSpend": null, "CostPerAssist": null, "CustomParameters": null, "FinalAppUrl": null, "AdDescription": null, "AdDescription2": null, "ViewThroughConversions": 0, "ViewThroughConversionsQualified": null, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "AllConversions": 0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null}, "emitted_at": 1679950767960}
+{"stream": "ad_performance_report_monthly", "data": {"AccountId": 180278106, "CampaignId": 413444833, "AdGroupId": 1352400325389092, "AdId": 84525295496190, "TimePeriod": "2021-08-01", "CurrencyCode": "USD", "AdDistribution": "Search", "DeviceType": "Tablet", "Language": "English", "Network": "Syndicated search partners", "DeviceOS": "Android", "TopVsOther": "Syndicated search partners - Other", "BidMatchType": "Broad", "DeliveredMatchType": "Phrase", "AccountName": "Daxtarity Inc.", "CampaignName": "Test 2", "CampaignType": "Search & content", "AdGroupName": "Airbyte", "Impressions": 1, "Clicks": 0, "Ctr": 0.0, "Spend": 0.0, "CostPerConversion": null, "DestinationUrl": null, "Assists": 0, "ReturnOnAdSpend": null, "CostPerAssist": null, "CustomParameters": null, "FinalAppUrl": null, "AdDescription": null, "AdDescription2": null, "ViewThroughConversions": 0, "ViewThroughConversionsQualified": null, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "AllConversions": 0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null}, "emitted_at": 1679950813350}
{"stream":"budget_summary_report","data":{"AccountName":"Daxtarity Inc.","AccountNumber":"F149GKV5","AccountId":180278106,"CampaignName":"Test 2","CampaignId":413444833,"Date":"6/9/2021","MonthlyBudget":22.8,"DailySpend":0.71,"MonthToDateSpend":0.71},"emitted_at":1675189738185}
-{"stream":"campaign_performance_report_daily","data":{"AccountId":180278106,"CampaignId":413444833,"TimePeriod":"2021-06-09","CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Network":"Bing and Yahoo! search","DeliveredMatchType":"Exact","DeviceOS":"Windows","TopVsOther":"Bing and Yahoo! search - Top","BidMatchType":"Broad","CampaignStatus":"Paused","Impressions":1,"Clicks":0,"Ctr":0,"Spend":0,"CostPerConversion":null,"QualityScore":0,"AdRelevance":0,"LandingPageExperience":0,"PhoneImpressions":0,"PhoneCalls":0,"Ptr":null,"Assists":0,"ReturnOnAdSpend":null,"CostPerAssist":null,"CustomParameters":null,"ViewThroughConversions":0,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"AllConversions":0,"AllConversionRate":null,"AllRevenue":0,"AllRevenuePerConversion":null,"AverageCpc":0,"AveragePosition":0,"AverageCpm":0,"Conversions":0,"ConversionRate":null,"ConversionsQualified":0,"LowQualityClicks":0,"LowQualityClicksPercent":null,"LowQualityImpressions":2,"LowQualitySophisticatedClicks":0,"LowQualityConversions":0,"LowQualityConversionRate":null,"Revenue":0,"RevenuePerConversion":null,"RevenuePerAssist":null,"BudgetName":null,"BudgetStatus":null,"BudgetAssociationStatus":"Current","HistoricalQualityScore":8,"HistoricalExpectedCtr":2,"HistoricalAdRelevance":3,"HistoricalLandingPageExperience":3},"emitted_at":1675189761490}
-{"stream":"campaign_performance_report_weekly","data":{"AccountId":180278106,"CampaignId":413444833,"TimePeriod":"2021-06-06","CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Network":"Bing and Yahoo! search","DeliveredMatchType":"Exact","DeviceOS":"Windows","TopVsOther":"Bing and Yahoo! search - Top","BidMatchType":"Broad","CampaignStatus":"Paused","Impressions":1,"Clicks":0,"Ctr":0,"Spend":0,"CostPerConversion":null,"QualityScore":0,"AdRelevance":0,"LandingPageExperience":0,"PhoneImpressions":0,"PhoneCalls":0,"Ptr":null,"Assists":0,"ReturnOnAdSpend":null,"CostPerAssist":null,"CustomParameters":null,"ViewThroughConversions":0,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"AllConversions":0,"AllConversionRate":null,"AllRevenue":0,"AllRevenuePerConversion":null,"AverageCpc":0,"AveragePosition":0,"AverageCpm":0,"Conversions":0,"ConversionRate":null,"ConversionsQualified":0,"LowQualityClicks":0,"LowQualityClicksPercent":null,"LowQualityImpressions":3,"LowQualitySophisticatedClicks":0,"LowQualityConversions":0,"LowQualityConversionRate":null,"Revenue":0,"RevenuePerConversion":null,"RevenuePerAssist":null,"BudgetName":null,"BudgetStatus":null,"BudgetAssociationStatus":"Current","HistoricalQualityScore":8,"HistoricalExpectedCtr":2,"HistoricalAdRelevance":3,"HistoricalLandingPageExperience":3},"emitted_at":1675189775869}
-{"stream":"campaign_performance_report_monthly","data":{"AccountId":180278106,"CampaignId":413444833,"TimePeriod":"2021-06-01","CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Network":"Bing and Yahoo! search","DeliveredMatchType":"Exact","DeviceOS":"Unknown","TopVsOther":"Bing and Yahoo! search - Top","BidMatchType":"Broad","CampaignStatus":"Paused","Impressions":0,"Clicks":0,"Ctr":null,"Spend":0,"CostPerConversion":null,"QualityScore":0,"AdRelevance":0,"LandingPageExperience":0,"PhoneImpressions":0,"PhoneCalls":0,"Ptr":null,"Assists":0,"ReturnOnAdSpend":null,"CostPerAssist":null,"CustomParameters":null,"ViewThroughConversions":0,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"AllConversions":0,"AllConversionRate":null,"AllRevenue":0,"AllRevenuePerConversion":null,"AverageCpc":0,"AveragePosition":0,"AverageCpm":0,"Conversions":0,"ConversionRate":null,"ConversionsQualified":0,"LowQualityClicks":0,"LowQualityClicksPercent":null,"LowQualityImpressions":2,"LowQualitySophisticatedClicks":0,"LowQualityConversions":0,"LowQualityConversionRate":null,"Revenue":0,"RevenuePerConversion":null,"RevenuePerAssist":null,"BudgetName":null,"BudgetStatus":null,"BudgetAssociationStatus":"Current","HistoricalQualityScore":8,"HistoricalExpectedCtr":2,"HistoricalAdRelevance":3,"HistoricalLandingPageExperience":3},"emitted_at":1675189789109}
-{"stream":"keyword_performance_report_daily","data":{"AccountId":180278106,"CampaignId":413444833,"AdGroupId":1352400325389092,"KeywordId":84525593559627,"AdId":84525295496190,"TimePeriod":"2021-06-13","CurrencyCode":"USD","DeliveredMatchType":"Exact","AdDistribution":"Search","DeviceType":"Smartphone","Language":"English","Network":"Syndicated search partners","DeviceOS":"iOS","TopVsOther":"Syndicated search partners - Top","BidMatchType":"Broad","Keyword":"big data integration tools","KeywordStatus":"Active","Impressions":1,"Clicks":0,"Ctr":0,"CurrentMaxCpc":0.11,"Spend":0,"CostPerConversion":null,"QualityScore":0,"ExpectedCtr":"--","AdRelevance":0,"LandingPageExperience":0,"QualityImpact":0,"Assists":0,"ReturnOnAdSpend":null,"CostPerAssist":null,"CustomParameters":null,"FinalAppUrl":null,"Mainline1Bid":null,"MainlineBid":null,"FirstPageBid":null,"FinalUrlSuffix":null,"ViewThroughConversions":0,"ViewThroughConversionsQualified":null,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"Conversions":0,"ConversionRate":null,"ConversionsQualified":0,"AverageCpc":0,"AveragePosition":0,"AverageCpm":0,"AllConversions":0,"AllConversionRate":null,"AllRevenue":0,"AllRevenuePerConversion":null,"Revenue":0,"RevenuePerConversion":null,"RevenuePerAssist":null,"HistoricalQualityScore":7,"HistoricalExpectedCtr":2,"HistoricalAdRelevance":2,"HistoricalLandingPageExperience":3},"emitted_at":1675189822883}
-{"stream":"keyword_performance_report_weekly","data":{"AccountId":180278106,"CampaignId":413444833,"AdGroupId":1352400325389092,"KeywordId":84525593559627,"AdId":84525295496190,"TimePeriod":"2021-06-13","CurrencyCode":"USD","DeliveredMatchType":"Exact","AdDistribution":"Search","DeviceType":"Smartphone","Language":"English","Network":"Syndicated search partners","DeviceOS":"iOS","TopVsOther":"Syndicated search partners - Top","BidMatchType":"Broad","Keyword":"big data integration tools","KeywordStatus":"Active","Impressions":2,"Clicks":0,"Ctr":0,"CurrentMaxCpc":0.11,"Spend":0,"CostPerConversion":null,"QualityScore":0,"ExpectedCtr":"--","AdRelevance":0,"LandingPageExperience":0,"QualityImpact":0,"Assists":0,"ReturnOnAdSpend":null,"CostPerAssist":null,"CustomParameters":null,"FinalAppUrl":null,"Mainline1Bid":null,"MainlineBid":null,"FirstPageBid":null,"FinalUrlSuffix":null,"ViewThroughConversions":0,"ViewThroughConversionsQualified":null,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"Conversions":0,"ConversionRate":null,"ConversionsQualified":0,"AverageCpc":0,"AveragePosition":0,"AverageCpm":0,"AllConversions":0,"AllConversionRate":null,"AllRevenue":0,"AllRevenuePerConversion":null,"Revenue":0,"RevenuePerConversion":null,"RevenuePerAssist":null},"emitted_at":1675189841809}
-{"stream":"keyword_performance_report_monthly","data":{"AccountId":180278106,"CampaignId":413444833,"AdGroupId":1352400325389092,"KeywordId":84525593559627,"AdId":84525295496190,"TimePeriod":"2021-06-01","CurrencyCode":"USD","DeliveredMatchType":"Exact","AdDistribution":"Search","DeviceType":"Computer","Language":"English","Network":"Bing and Yahoo! search","DeviceOS":"Windows","TopVsOther":"Bing and Yahoo! search - Top","BidMatchType":"Broad","Keyword":"big data integration tools","KeywordStatus":"Active","Impressions":1,"Clicks":0,"Ctr":0,"CurrentMaxCpc":0.11,"Spend":0,"CostPerConversion":null,"QualityScore":0,"ExpectedCtr":"--","AdRelevance":0,"LandingPageExperience":0,"QualityImpact":0,"Assists":0,"ReturnOnAdSpend":null,"CostPerAssist":null,"CustomParameters":null,"FinalAppUrl":null,"Mainline1Bid":null,"MainlineBid":null,"FirstPageBid":null,"FinalUrlSuffix":null,"ViewThroughConversions":0,"ViewThroughConversionsQualified":null,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"Conversions":0,"ConversionRate":null,"ConversionsQualified":0,"AverageCpc":0,"AveragePosition":0,"AverageCpm":0,"AllConversions":0,"AllConversionRate":null,"AllRevenue":0,"AllRevenuePerConversion":null,"Revenue":0,"RevenuePerConversion":null,"RevenuePerAssist":null},"emitted_at":1675189856551}
+{"stream": "campaign_performance_report_daily", "data": {"AccountId": 180278106, "CampaignId": 413444833, "TimePeriod": "2021-08-03", "CurrencyCode": "USD", "AdDistribution": "Search", "DeviceType": "Tablet", "Network": "Syndicated search partners", "DeliveredMatchType": "Exact", "DeviceOS": "Android", "TopVsOther": "Syndicated search partners - Other", "BidMatchType": "Broad", "AccountName": "Daxtarity Inc.", "CampaignName": "Test 2", "CampaignType": "Search & content", "CampaignStatus": "Paused", "Impressions": 1, "Clicks": 0, "Ctr": 0.0, "Spend": 0.0, "CostPerConversion": null, "QualityScore": 0.0, "AdRelevance": 0.0, "LandingPageExperience": 0.0, "PhoneImpressions": 0, "PhoneCalls": 0, "Ptr": null, "Assists": 0, "ReturnOnAdSpend": null, "CostPerAssist": null, "CustomParameters": null, "ViewThroughConversions": 0, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "AllConversions": 0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "LowQualityClicks": 0, "LowQualityClicksPercent": null, "LowQualityImpressions": 0, "LowQualitySophisticatedClicks": 0, "LowQualityConversions": 0, "LowQualityConversionRate": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null, "BudgetName": null, "BudgetStatus": null, "BudgetAssociationStatus": "Current", "HistoricalQualityScore": 8.0, "HistoricalExpectedCtr": 2.0, "HistoricalAdRelevance": 3.0, "HistoricalLandingPageExperience": 3.0}, "emitted_at": 1679950951582}
+{"stream": "campaign_performance_report_weekly", "data": {"AccountId": 180278106, "CampaignId": 413444833, "TimePeriod": "2021-08-01", "CurrencyCode": "USD", "AdDistribution": "Search", "DeviceType": "Tablet", "Network": "Syndicated search partners", "DeliveredMatchType": "Broad", "DeviceOS": "Android", "TopVsOther": "Syndicated search partners - Top", "BidMatchType": "Broad", "AccountName": "Daxtarity Inc.", "CampaignName": "Test 2", "CampaignType": "Search & content", "CampaignStatus": "Paused", "Impressions": 1, "Clicks": 0, "Ctr": 0.0, "Spend": 0.0, "CostPerConversion": null, "QualityScore": 0.0, "AdRelevance": 0.0, "LandingPageExperience": 0.0, "PhoneImpressions": 0, "PhoneCalls": 0, "Ptr": null, "Assists": 0, "ReturnOnAdSpend": null, "CostPerAssist": null, "CustomParameters": null, "ViewThroughConversions": 0, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "AllConversions": 0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "LowQualityClicks": 0, "LowQualityClicksPercent": null, "LowQualityImpressions": 1, "LowQualitySophisticatedClicks": 0, "LowQualityConversions": 0, "LowQualityConversionRate": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null, "BudgetName": null, "BudgetStatus": null, "BudgetAssociationStatus": "Current", "HistoricalQualityScore": 8.0, "HistoricalExpectedCtr": 2.0, "HistoricalAdRelevance": 3.0, "HistoricalLandingPageExperience": 3.0}, "emitted_at": 1679950998409}
+{"stream": "campaign_performance_report_monthly", "data": {"AccountId": 180278106, "CampaignId": 413444833, "TimePeriod": "2021-08-01", "CurrencyCode": "USD", "AdDistribution": "Search", "DeviceType": "Tablet", "Network": "Syndicated search partners", "DeliveredMatchType": "Broad", "DeviceOS": "Android", "TopVsOther": "Syndicated search partners - Top", "BidMatchType": "Broad", "AccountName": "Daxtarity Inc.", "CampaignName": "Test 2", "CampaignType": "Search & content", "CampaignStatus": "Paused", "Impressions": 1, "Clicks": 0, "Ctr": 0.0, "Spend": 0.0, "CostPerConversion": null, "QualityScore": 0.0, "AdRelevance": 0.0, "LandingPageExperience": 0.0, "PhoneImpressions": 0, "PhoneCalls": 0, "Ptr": null, "Assists": 0, "ReturnOnAdSpend": null, "CostPerAssist": null, "CustomParameters": null, "ViewThroughConversions": 0, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "AllConversions": 0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "LowQualityClicks": 0, "LowQualityClicksPercent": null, "LowQualityImpressions": 1, "LowQualitySophisticatedClicks": 0, "LowQualityConversions": 0, "LowQualityConversionRate": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null, "BudgetName": null, "BudgetStatus": null, "BudgetAssociationStatus": "Current", "HistoricalQualityScore": 8.0, "HistoricalExpectedCtr": 2.0, "HistoricalAdRelevance": 3.0, "HistoricalLandingPageExperience": 3.0}, "emitted_at": 1679951112193}
+{"stream": "keyword_performance_report_daily", "data": {"AccountId": 180278106, "CampaignId": 413444833, "AdGroupId": 1352400325389092, "KeywordId": 84525593559629, "AdId": 84525295496190, "TimePeriod": "2021-08-03", "CurrencyCode": "USD", "DeliveredMatchType": "Broad", "AdDistribution": "Search", "DeviceType": "Smartphone", "Language": "English", "Network": "Syndicated search partners", "DeviceOS": "Android", "TopVsOther": "Syndicated search partners - Top", "BidMatchType": "Broad", "AccountName": "Daxtarity Inc.", "CampaignName": "Test 2", "AdGroupName": "Airbyte", "Keyword": "data integration tools", "KeywordStatus": "Active", "Impressions": 1, "Clicks": 0, "Ctr": 0.0, "CurrentMaxCpc": 0.11, "Spend": 0.0, "CostPerConversion": null, "QualityScore": 0.0, "ExpectedCtr": "--", "AdRelevance": 0.0, "LandingPageExperience": 0.0, "QualityImpact": 0.0, "Assists": 0, "ReturnOnAdSpend": null, "CostPerAssist": null, "CustomParameters": null, "FinalAppUrl": null, "Mainline1Bid": null, "MainlineBid": null, "FirstPageBid": null, "FinalUrlSuffix": null, "ViewThroughConversions": 0, "ViewThroughConversionsQualified": null, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "AllConversions": 0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null, "HistoricalQualityScore": 8.0, "HistoricalExpectedCtr": 2.0, "HistoricalAdRelevance": 3.0, "HistoricalLandingPageExperience": 3.0}, "emitted_at": 1679951505600}
+{"stream": "keyword_performance_report_weekly", "data": {"AccountId": 180278106, "CampaignId": 413444833, "AdGroupId": 1352400325389092, "KeywordId": 84525593559629, "AdId": 84525295496190, "TimePeriod": "2021-08-01", "CurrencyCode": "USD", "DeliveredMatchType": "Broad", "AdDistribution": "Search", "DeviceType": "Tablet", "Language": "English", "Network": "Syndicated search partners", "DeviceOS": "Android", "TopVsOther": "Syndicated search partners - Top", "BidMatchType": "Broad", "AccountName": "Daxtarity Inc.", "CampaignName": "Test 2", "AdGroupName": "Airbyte", "Keyword": "data integration tools", "KeywordStatus": "Active", "Impressions": 1, "Clicks": 0, "Ctr": 0.0, "CurrentMaxCpc": 0.11, "Spend": 0.0, "CostPerConversion": null, "QualityScore": 0.0, "ExpectedCtr": "--", "AdRelevance": 0.0, "LandingPageExperience": 0.0, "QualityImpact": 0.0, "Assists": 0, "ReturnOnAdSpend": null, "CostPerAssist": null, "CustomParameters": null, "FinalAppUrl": null, "Mainline1Bid": null, "MainlineBid": null, "FirstPageBid": null, "FinalUrlSuffix": null, "ViewThroughConversions": 0, "ViewThroughConversionsQualified": null, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "AllConversions": 0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null}, "emitted_at": 1679951543951}
+{"stream": "keyword_performance_report_monthly", "data": {"AccountId": 180278106, "CampaignId": 413444833, "AdGroupId": 1352400325389092, "KeywordId": 84525593559629, "AdId": 84525295496190, "TimePeriod": "2021-08-01", "CurrencyCode": "USD", "DeliveredMatchType": "Broad", "AdDistribution": "Search", "DeviceType": "Tablet", "Language": "English", "Network": "Syndicated search partners", "DeviceOS": "Android", "TopVsOther": "Syndicated search partners - Top", "BidMatchType": "Broad", "AccountName": "Daxtarity Inc.", "CampaignName": "Test 2", "AdGroupName": "Airbyte", "Keyword": "data integration tools", "KeywordStatus": "Active", "Impressions": 1, "Clicks": 0, "Ctr": 0.0, "CurrentMaxCpc": 0.11, "Spend": 0.0, "CostPerConversion": null, "QualityScore": 0.0, "ExpectedCtr": "--", "AdRelevance": 0.0, "LandingPageExperience": 0.0, "QualityImpact": 0.0, "Assists": 0, "ReturnOnAdSpend": null, "CostPerAssist": null, "CustomParameters": null, "FinalAppUrl": null, "Mainline1Bid": null, "MainlineBid": null, "FirstPageBid": null, "FinalUrlSuffix": null, "ViewThroughConversions": 0, "ViewThroughConversionsQualified": null, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "AllConversions": 0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null}, "emitted_at": 1679951588461}
\ No newline at end of file
diff --git a/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/account_performance_report.json b/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/account_performance_report.json
index 00cbde7e9e55..08a727b5048e 100644
--- a/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/account_performance_report.json
+++ b/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/account_performance_report.json
@@ -31,6 +31,12 @@
"BidMatchType": {
"type": ["null", "string"]
},
+ "AccountName": {
+ "type": ["null", "string"]
+ },
+ "AccountNumber": {
+ "type": ["null", "string"]
+ },
"PhoneImpressions": {
"type": ["null", "integer"]
},
diff --git a/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/ad_group_performance_report.json b/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/ad_group_performance_report.json
index 5338d978a162..b0e952bb0aec 100644
--- a/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/ad_group_performance_report.json
+++ b/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/ad_group_performance_report.json
@@ -41,6 +41,21 @@
"Language": {
"type": ["null", "string"]
},
+ "AccountName": {
+ "type": ["null", "string"]
+ },
+ "CampaignName": {
+ "type": ["null", "string"]
+ },
+ "CampaignType": {
+ "type": ["null", "string"]
+ },
+ "AdGroupName": {
+ "type": ["null", "string"]
+ },
+ "AdGroupType": {
+ "type": ["null", "string"]
+ },
"Impressions": {
"type": ["null", "integer"]
},
diff --git a/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/ad_performance_report.json b/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/ad_performance_report.json
index 4f015eeb9046..44945b40758e 100644
--- a/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/ad_performance_report.json
+++ b/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/ad_performance_report.json
@@ -44,6 +44,18 @@
"DeliveredMatchType": {
"type": ["null", "string"]
},
+ "AccountName": {
+ "type": ["null", "string"]
+ },
+ "CampaignName": {
+ "type": ["null", "string"]
+ },
+ "CampaignType": {
+ "type": ["null", "string"]
+ },
+ "AdGroupName": {
+ "type": ["null", "string"]
+ },
"Impressions": {
"type": ["null", "integer"]
},
diff --git a/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/campaign_performance_report.json b/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/campaign_performance_report.json
index 00c8072471f8..c6959227ddb3 100644
--- a/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/campaign_performance_report.json
+++ b/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/campaign_performance_report.json
@@ -35,6 +35,15 @@
"BidMatchType": {
"type": ["null", "string"]
},
+ "AccountName": {
+ "type": ["null", "string"]
+ },
+ "CampaignName": {
+ "type": ["null", "string"]
+ },
+ "CampaignType": {
+ "type": ["null", "string"]
+ },
"CampaignStatus": {
"type": ["null", "string"]
},
diff --git a/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/keyword_performance_report.json b/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/keyword_performance_report.json
index b7ec91ee647e..c4312b10b05e 100644
--- a/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/keyword_performance_report.json
+++ b/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/schemas/keyword_performance_report.json
@@ -51,6 +51,15 @@
"BidMatchType": {
"type": ["null", "string"]
},
+ "AccountName": {
+ "type": ["null", "string"]
+ },
+ "CampaignName": {
+ "type": ["null", "string"]
+ },
+ "AdGroupName": {
+ "type": ["null", "string"]
+ },
"KeywordStatus": {
"type": ["null", "string"]
},
diff --git a/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/source.py b/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/source.py
index 376570459479..949005f8ebd5 100644
--- a/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/source.py
+++ b/airbyte-integrations/connectors/source-bing-ads/source_bing_ads/source.py
@@ -367,6 +367,9 @@ class CampaignPerformanceReport(ReportsMixin, BingAdsStream):
report_columns = [
*primary_key,
+ "AccountName",
+ "CampaignName",
+ "CampaignType",
"CampaignStatus",
"Impressions",
"Clicks",
@@ -451,6 +454,10 @@ class AdPerformanceReport(ReportsMixin, BingAdsStream):
report_columns = [
*primary_key,
+ "AccountName",
+ "CampaignName",
+ "CampaignType",
+ "AdGroupName",
"Impressions",
"Clicks",
"Ctr",
@@ -519,6 +526,11 @@ class AdGroupPerformanceReport(ReportsMixin, BingAdsStream):
report_columns = [
*primary_key,
+ "AccountName",
+ "CampaignName",
+ "CampaignType",
+ "AdGroupName",
+ "AdGroupType",
"Impressions",
"Clicks",
"Ctr",
@@ -602,6 +614,9 @@ class KeywordPerformanceReport(ReportsMixin, BingAdsStream):
report_columns = [
*primary_key,
+ "AccountName",
+ "CampaignName",
+ "AdGroupName",
"Keyword",
"KeywordStatus",
"Impressions",
@@ -679,6 +694,8 @@ class AccountPerformanceReport(ReportsMixin, BingAdsStream):
report_columns = [
*primary_key,
+ "AccountName",
+ "AccountNumber",
"PhoneImpressions",
"PhoneCalls",
"Clicks",
diff --git a/connectors.md b/connectors.md
index 46bb1bb0dcdc..bb2b6e9bba4b 100644
--- a/connectors.md
+++ b/connectors.md
@@ -28,7 +28,7 @@
| **BambooHR** | | Source | airbyte/source-bamboo-hr:0.2.2 | alpha | [docs](https://docs.airbyte.com/integrations/sources/bamboo-hr) | [connectors/source/bamboo-hr](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/bamboo-hr) | [source-bamboo-hr](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-bamboo-hr) | `90916976-a132-4ce9-8bce-82a03dd58788` |
| **BigCommerce** | | Source | airbyte/source-bigcommerce:0.1.10 | alpha | [docs](https://docs.airbyte.com/integrations/sources/bigcommerce) | [connectors/source/bigcommerce](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/bigcommerce) | [source-bigcommerce](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-bigcommerce) | `59c5501b-9f95-411e-9269-7143c939adbd` |
| **BigQuery** | | Source | airbyte/source-bigquery:0.2.3 | alpha | [docs](https://docs.airbyte.com/integrations/sources/bigquery) | [connectors/source/bigquery](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/bigquery) | [source-bigquery](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-bigquery) | `bfd1ddf8-ae8a-4620-b1d7-55597d2ba08c` |
-| **Bing Ads** | | Source | airbyte/source-bing-ads:0.1.18 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/bing-ads) | [connectors/source/bing-ads](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/bing-ads) | [source-bing-ads](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-bing-ads) | `47f25999-dd5e-4636-8c39-e7cea2453331` |
+| **Bing Ads** | | Source | airbyte/source-bing-ads:0.1.19 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/bing-ads) | [connectors/source/bing-ads](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/bing-ads) | [source-bing-ads](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-bing-ads) | `47f25999-dd5e-4636-8c39-e7cea2453331` |
| **Braintree** | | Source | airbyte/source-braintree:0.1.4 | alpha | [docs](https://docs.airbyte.com/integrations/sources/braintree) | [connectors/source/braintree](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/braintree) | [source-braintree](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-braintree) | `63cea06f-1c75-458d-88fe-ad48c7cb27fd` |
| **Braze** | x | Source | airbyte/source-braze:0.1.3 | alpha | [docs](https://docs.airbyte.io/integrations/sources/braze) | [connectors/source/braze](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/braze) | [source-braze](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-braze) | `68b9c98e-0747-4c84-b05b-d30b47686725` |
| **Breezometer** | | Source | airbyte/source-breezometer:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/breezometer) | [connectors/source/breezometer](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/breezometer) | [source-breezometer](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-breezometer) | `7c37685e-8512-4901-addf-9afbef6c0de9` |
diff --git a/docs/integrations/sources/bing-ads.md b/docs/integrations/sources/bing-ads.md
index f0b194357686..f045738ff787 100644
--- a/docs/integrations/sources/bing-ads.md
+++ b/docs/integrations/sources/bing-ads.md
@@ -102,6 +102,7 @@ The Bing Ads API limits the number of requests for all Microsoft Advertising cli
## Changelog
| Version | Date | Pull Request | Subject |
|:--------|:-----------|:---------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------|
+| 0.1.19 | 2023-03-08 | [23868](https://github.com/airbytehq/airbyte/pull/23868) | Add dimensional-type columns for reports. |
| 0.1.18 | 2023-01-30 | [22073](https://github.com/airbytehq/airbyte/pull/22073) | Fix null values in the `Keyword` column of `keyword_performance_report` streams |
| 0.1.17 | 2022-12-10 | [20005](https://github.com/airbytehq/airbyte/pull/20005) | Add `Keyword` to `keyword_performance_report` stream |
| 0.1.16 | 2022-10-12 | [17873](https://github.com/airbytehq/airbyte/pull/17873) | Fix: added missing campaign types in (Audience, Shopping and DynamicSearchAds) in campaigns stream |
From 3d0fb857f31e865fa6d6955d3152b7cf93d8aeee Mon Sep 17 00:00:00 2001
From: Denys Davydov
Date: Fri, 14 Apr 2023 21:22:26 +0300
Subject: [PATCH 074/187] Source Facebook Marketing: fix data retention period
validation (#25204)
* #1678 source Facebook Marketing: fix data retention period validation
* #1678 source fb marketing: add validation for the date range in the future
* #1678 source fb marketing: another fix
* auto-bump connector version
---------
Co-authored-by: Octavia Squidington III
---
.../src/main/resources/seed/oss_catalog.json | 2 +-
.../resources/seed/source_definitions.yaml | 2 +-
.../src/main/resources/seed/source_specs.yaml | 2 +-
.../source-facebook-marketing/Dockerfile | 2 +-
.../source-facebook-marketing/setup.py | 6 +---
.../source_facebook_marketing/source.py | 2 ++
.../source_facebook_marketing/utils.py | 5 ++++
.../unit_tests/test_source.py | 8 ++++++
.../unit_tests/test_utils.py | 28 +++++++++++--------
connectors.md | 2 +-
.../sources/facebook-marketing.md | 1 +
11 files changed, 38 insertions(+), 22 deletions(-)
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index 1ca63e7d4a52..e886e79407ea 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -12073,7 +12073,7 @@
"sourceDefinitionId": "e7778cfc-e97c-4458-9ecb-b4f2bba8946c",
"name": "Facebook Marketing",
"dockerRepository": "airbyte/source-facebook-marketing",
- "dockerImageTag": "0.3.2",
+ "dockerImageTag": "0.3.3",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/facebook-marketing",
"icon": "facebook.svg",
"sourceType": "api",
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
index 5a7fcd2b1832..a64030f93044 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
@@ -562,7 +562,7 @@
- name: Facebook Marketing
sourceDefinitionId: e7778cfc-e97c-4458-9ecb-b4f2bba8946c
dockerRepository: airbyte/source-facebook-marketing
- dockerImageTag: 0.3.2
+ dockerImageTag: 0.3.3
documentationUrl: https://docs.airbyte.com/integrations/sources/facebook-marketing
icon: facebook.svg
sourceType: api
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
index ea4d56af4adc..46b1b8047c3e 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
@@ -3882,7 +3882,7 @@
supportsNormalization: false
supportsDBT: false
supported_destination_sync_modes: []
-- dockerImage: "airbyte/source-facebook-marketing:0.3.2"
+- dockerImage: "airbyte/source-facebook-marketing:0.3.3"
spec:
documentationUrl: "https://docs.airbyte.com/integrations/sources/facebook-marketing"
changelogUrl: "https://docs.airbyte.com/integrations/sources/facebook-marketing"
diff --git a/airbyte-integrations/connectors/source-facebook-marketing/Dockerfile b/airbyte-integrations/connectors/source-facebook-marketing/Dockerfile
index 944183f962bc..7ea538b4a6f3 100644
--- a/airbyte-integrations/connectors/source-facebook-marketing/Dockerfile
+++ b/airbyte-integrations/connectors/source-facebook-marketing/Dockerfile
@@ -13,5 +13,5 @@ ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
-LABEL io.airbyte.version=0.3.2
+LABEL io.airbyte.version=0.3.3
LABEL io.airbyte.name=airbyte/source-facebook-marketing
diff --git a/airbyte-integrations/connectors/source-facebook-marketing/setup.py b/airbyte-integrations/connectors/source-facebook-marketing/setup.py
index f9862fcc489d..dd1383898080 100644
--- a/airbyte-integrations/connectors/source-facebook-marketing/setup.py
+++ b/airbyte-integrations/connectors/source-facebook-marketing/setup.py
@@ -12,11 +12,7 @@
"pendulum>=2,<3",
]
-TEST_REQUIREMENTS = [
- "pytest~=6.1",
- "pytest-mock~=3.6",
- "requests_mock~=1.8",
-]
+TEST_REQUIREMENTS = ["pytest~=6.1", "pytest-mock~=3.6", "requests_mock~=1.8", "freezegun"]
setup(
name="source_facebook_marketing",
diff --git a/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/source.py b/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/source.py
index 1d973e85f434..148554e7b336 100644
--- a/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/source.py
+++ b/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/source.py
@@ -59,6 +59,8 @@ def check_connection(self, logger: logging.Logger, config: Mapping[str, Any]) ->
try:
config = self._validate_and_transform(config)
+ if config.end_date > pendulum.now():
+ return False, "Date range can not be in the future."
if config.end_date < config.start_date:
return False, "end_date must be equal or after start_date."
diff --git a/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/utils.py b/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/utils.py
index a7478ddca90f..b0a52abf4a77 100644
--- a/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/utils.py
+++ b/airbyte-integrations/connectors/source-facebook-marketing/source_facebook_marketing/utils.py
@@ -20,6 +20,11 @@ def validate_start_date(start_date: DateTime) -> DateTime:
now = pendulum.now(tz=start_date.tzinfo)
today = now.replace(microsecond=0, second=0, minute=0, hour=0)
retention_date = today.subtract(months=DATA_RETENTION_PERIOD)
+ if retention_date.day != today.day:
+ # `.subtract(months=37)` can be erroneous, for instance:
+ # 2023-03-31 - 37 month = 2020-02-29 which is incorrect, should be 2020-03-01
+ # that's why we're adjusting the date to the 1st day of the next month
+ retention_date = retention_date.replace(month=retention_date.month + 1, day=1)
if start_date > now:
message = f"The start date cannot be in the future. Set start date to today's date - {today}."
diff --git a/airbyte-integrations/connectors/source-facebook-marketing/unit_tests/test_source.py b/airbyte-integrations/connectors/source-facebook-marketing/unit_tests/test_source.py
index 41db8154ce26..bf1ca1222718 100644
--- a/airbyte-integrations/connectors/source-facebook-marketing/unit_tests/test_source.py
+++ b/airbyte-integrations/connectors/source-facebook-marketing/unit_tests/test_source.py
@@ -58,6 +58,14 @@ def test_check_connection_ok(self, api, config, logger_mock):
api.assert_called_once_with(account_id="123", access_token="TOKEN")
logger_mock.info.assert_called_once_with(f"Select account {api.return_value.account}")
+ def test_check_connection_future_date_range(self, api, config, logger_mock):
+ config["start_date"] = "2219-10-10T00:00:00"
+ config["end_date"] = "2219-10-11T00:00:00"
+ assert SourceFacebookMarketing().check_connection(logger_mock, config=config) == (
+ False,
+ "Date range can not be in the future.",
+ )
+
def test_check_connection_end_date_before_start_date(self, api, config, logger_mock):
config["start_date"] = "2019-10-10T00:00:00"
config["end_date"] = "2019-10-09T00:00:00"
diff --git a/airbyte-integrations/connectors/source-facebook-marketing/unit_tests/test_utils.py b/airbyte-integrations/connectors/source-facebook-marketing/unit_tests/test_utils.py
index 76f134ce6d5d..69e82932d763 100644
--- a/airbyte-integrations/connectors/source-facebook-marketing/unit_tests/test_utils.py
+++ b/airbyte-integrations/connectors/source-facebook-marketing/unit_tests/test_utils.py
@@ -2,43 +2,47 @@
# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
#
+import freezegun
import pendulum
import pytest
from source_facebook_marketing.utils import DATA_RETENTION_PERIOD, validate_end_date, validate_start_date
+TODAY = pendulum.local(2023, 3, 31)
+
@pytest.mark.parametrize(
"field_name, date, expected_date, expected_messages",
[
(
"start_date",
- pendulum.today().subtract(months=DATA_RETENTION_PERIOD - 1),
- pendulum.today().subtract(months=DATA_RETENTION_PERIOD - 1),
+ TODAY.subtract(months=DATA_RETENTION_PERIOD - 1),
+ TODAY.subtract(months=DATA_RETENTION_PERIOD - 1),
[],
),
(
"start_date",
- pendulum.today().subtract(months=DATA_RETENTION_PERIOD + 1),
- pendulum.today().subtract(months=DATA_RETENTION_PERIOD),
+ pendulum.local(2019, 1, 1),
+ pendulum.local(2020, 3, 1),
[
f"The start date cannot be beyond 37 months from the current date. "
- f"Set start date to {pendulum.today().subtract(months=DATA_RETENTION_PERIOD)}."
- ],
+ f"Set start date to {pendulum.local(2020, 3, 1)}."
+ ]
),
(
"start_date",
- pendulum.today() + pendulum.duration(months=1),
- pendulum.today(),
- [f"The start date cannot be in the future. Set start date to today's date - {pendulum.today()}."],
+ TODAY + pendulum.duration(months=1),
+ TODAY,
+ [f"The start date cannot be in the future. Set start date to today's date - {TODAY}."],
),
(
"end_date",
- pendulum.today().subtract(months=DATA_RETENTION_PERIOD),
- pendulum.today(),
- [f"The end date must be after start date. Set end date to {pendulum.today()}."],
+ TODAY.subtract(months=DATA_RETENTION_PERIOD),
+ TODAY,
+ [f"The end date must be after start date. Set end date to {TODAY}."],
),
],
)
+@freezegun.freeze_time("2023-03-31")
def test_date_validators(caplog, field_name, date, expected_date, expected_messages):
if field_name == "start_date":
assert validate_start_date(date) == expected_date
diff --git a/connectors.md b/connectors.md
index bb2b6e9bba4b..206eb9bbc519 100644
--- a/connectors.md
+++ b/connectors.md
@@ -69,7 +69,7 @@
| **EmailOctopus** | | Source | airbyte/source-emailoctopus:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/emailoctopus) | [connectors/source/emailoctopus](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/emailoctopus) | [source-emailoctopus](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-emailoctopus) | `46b25e70-c980-4590-a811-8deaf50ee09f` |
| **Everhour** | | Source | airbyte/source-everhour:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/everhour) | [connectors/source/everhour](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/everhour) | [source-everhour](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-everhour) | `6babfc42-c734-4ef6-a817-6eca15f0f9b7` |
| **Exchange Rates Api** | | Source | airbyte/source-exchange-rates:1.2.8 | alpha | [docs](https://docs.airbyte.com/integrations/sources/exchangeratesapi) | [connectors/source/exchange-rates](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/exchange-rates) | [source-exchange-rates](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-exchange-rates) | `e2b40e36-aa0e-4bed-b41b-bcea6fa348b1` |
-| **Facebook Marketing** | | Source | airbyte/source-facebook-marketing:0.3.2 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/facebook-marketing) | [connectors/source/facebook-marketing](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/facebook-marketing) | [source-facebook-marketing](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-facebook-marketing) | `e7778cfc-e97c-4458-9ecb-b4f2bba8946c` |
+| **Facebook Marketing** | | Source | airbyte/source-facebook-marketing:0.3.3 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/facebook-marketing) | [connectors/source/facebook-marketing](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/facebook-marketing) | [source-facebook-marketing](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-facebook-marketing) | `e7778cfc-e97c-4458-9ecb-b4f2bba8946c` |
| **Facebook Pages** | | Source | airbyte/source-facebook-pages:0.2.4 | beta | [docs](https://docs.airbyte.com/integrations/sources/facebook-pages) | [connectors/source/facebook-pages](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/facebook-pages) | [source-facebook-pages](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-facebook-pages) | `010eb12f-837b-4685-892d-0a39f76a98f5` |
| **Fastbill** | | Source | airbyte/source-fastbill:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/fastbill) | [connectors/source/fastbill](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/fastbill) | [source-fastbill](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-fastbill) | `eb3e9c1c-0467-4eb7-a172-5265e04ccd0a` |
| **Fauna** | | Source | airbyte/source-fauna:0.1.1 | alpha | [docs](https://docs.airbyte.com/integrations/sources/fauna) | [connectors/source/fauna](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/fauna) | [source-fauna](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-fauna) | `3825db3e-c94b-42ac-bd53-b5a9507ace2b` |
diff --git a/docs/integrations/sources/facebook-marketing.md b/docs/integrations/sources/facebook-marketing.md
index 69cc523dbf9a..dbfade05c295 100644
--- a/docs/integrations/sources/facebook-marketing.md
+++ b/docs/integrations/sources/facebook-marketing.md
@@ -136,6 +136,7 @@ Please be informed that the connector uses the `lookback_window` parameter to pe
| Version | Date | Pull Request | Subject |
|:--------|:-----------|:---------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| 0.3.3 | 2023-04-14 | [00000](https://github.com/airbytehq/airbyte/pull/00000) | Fix data retention period validation |
| 0.3.2 | 2023-04-08 | [25003](https://github.com/airbytehq/airbyte/pull/25003) | Don't fetch `thumbnail_data_url` if it's None |
| 0.3.1 | 2023-03-27 | [24600](https://github.com/airbytehq/airbyte/pull/24600) | Reduce request record limit when retrying second page or further |
| 0.3.0 | 2023-03-16 | [19141](https://github.com/airbytehq/airbyte/pull/19141) | Added Level parameter to custom Ads Insights |
From b59c04762f7c425b818a4ea50f01efcc5b26abd3 Mon Sep 17 00:00:00 2001
From: Tim Roes
Date: Fri, 14 Apr 2023 21:00:06 +0200
Subject: [PATCH 075/187] Add OSS getting started redirect (#25213)
---
docusaurus/docusaurus.config.js | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/docusaurus/docusaurus.config.js b/docusaurus/docusaurus.config.js
index 996a3fc1434a..8be741b38a7b 100644
--- a/docusaurus/docusaurus.config.js
+++ b/docusaurus/docusaurus.config.js
@@ -71,6 +71,10 @@ const config = {
from: "/category/managing-airbyte-cloud",
to: "/category/using-airbyte-cloud",
},
+ {
+ from: "/category/airbyte-open-source-quick-start",
+ to: "/category/getting-started"
+ },
{
from: "/cloud/dbt-cloud-integration",
to: "/cloud/managing-airbyte-cloud/dbt-cloud-integration",
From 6a8b35be6743a69af96c00a8be190b3c25b43e40 Mon Sep 17 00:00:00 2001
From: Ben Church
Date: Fri, 14 Apr 2023 12:08:42 -0700
Subject: [PATCH 076/187] Add is_optional flag to connector tests (#25211)
---
.../ci_connector_ops/pipelines/contexts.py | 5 +++++
.../ci_connector_ops/pipelines/github.py | 13 ++++++++++---
.../pipelines/tests/java_connectors.py | 1 -
3 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/tools/ci_connector_ops/ci_connector_ops/pipelines/contexts.py b/tools/ci_connector_ops/ci_connector_ops/pipelines/contexts.py
index 09dd70ac95b7..089a8ff31300 100644
--- a/tools/ci_connector_ops/ci_connector_ops/pipelines/contexts.py
+++ b/tools/ci_connector_ops/ci_connector_ops/pipelines/contexts.py
@@ -67,6 +67,7 @@ def __init__(
gha_workflow_run_url: Optional[str] = None,
pipeline_start_timestamp: Optional[int] = None,
ci_context: Optional[str] = None,
+ is_ci_optional: bool = False,
):
"""Initialize a pipeline context.
@@ -88,6 +89,7 @@ def __init__(
self.created_at = datetime.utcnow()
self.ci_context = ci_context
self.state = ContextState.INITIALIZED
+ self.is_ci_optional = is_ci_optional
self.logger = logging.getLogger(self.pipeline_name)
self.dagger_client = None
@@ -134,6 +136,7 @@ def github_commit_status(self) -> dict:
"context": self.pipeline_name,
"should_send": self.is_pr,
"logger": self.logger,
+ "is_optional": self.is_ci_optional,
}
def get_repo_dir(self, subdir: str = ".", exclude: Optional[List[str]] = None, include: Optional[List[str]] = None) -> Directory:
@@ -267,6 +270,8 @@ def __init__(
gha_workflow_run_url=gha_workflow_run_url,
pipeline_start_timestamp=pipeline_start_timestamp,
ci_context=ci_context,
+ # TODO: remove this once stable and our default pipeline
+ is_ci_optional=True,
)
@property
diff --git a/tools/ci_connector_ops/ci_connector_ops/pipelines/github.py b/tools/ci_connector_ops/ci_connector_ops/pipelines/github.py
index c82e7fdd8dc4..003657abb5e0 100644
--- a/tools/ci_connector_ops/ci_connector_ops/pipelines/github.py
+++ b/tools/ci_connector_ops/ci_connector_ops/pipelines/github.py
@@ -29,13 +29,13 @@ def safe_log(logger: Optional[Logger], message: str, level: str = "info") -> Non
def update_commit_status_check(
- sha: str, state: str, target_url: str, description: str, context: str, should_send=True, logger: Logger = None
+ sha: str, state: str, target_url: str, description: str, context: str, is_optional=False, should_send=True, logger: Logger = None
):
"""Call the GitHub API to create commit status check.
Args:
sha (str): Hash of the commit for which you want to create a status check.
- state (str): The check state (success, failure, pendint)
+ state (str): The check state (success, failure, pending)
target_url (str): The URL to attach to the commit check for details.
description (str): Description of the check that is run.
context (str): Name of the Check context e.g: source-pokeapi tests
@@ -56,10 +56,17 @@ def update_commit_status_check(
console.print(e)
return
+ # If the check is optional, we don't want to fail the build if it fails.
+ # Instead, we want to mark it as a warning.
+ # Unfortunately, Github doesn't have a warning state, so we use success instead.
+ if is_optional and state == "failure":
+ state = "success"
+ description = f"[WARNING] optional check failed {context}: {description}"
+
airbyte_repo.get_commit(sha=sha).create_status(
state=state,
target_url=target_url,
description=description,
context=context,
)
- safe_log(logger, f"Created {state} status for commit {sha} on Github in {context} context.")
+ safe_log(logger, f"Created {state} status for commit {sha} on Github in {context} context with desc: {description}.")
diff --git a/tools/ci_connector_ops/ci_connector_ops/pipelines/tests/java_connectors.py b/tools/ci_connector_ops/ci_connector_ops/pipelines/tests/java_connectors.py
index b69bbdd2576e..4c2c555eec18 100644
--- a/tools/ci_connector_ops/ci_connector_ops/pipelines/tests/java_connectors.py
+++ b/tools/ci_connector_ops/ci_connector_ops/pipelines/tests/java_connectors.py
@@ -161,7 +161,6 @@ def _get_gradle_command(self, extra_options: Tuple[str] = ("--no-daemon", "--sca
return command
async def _run(self) -> StepResult:
-
connector_under_test = (
environments.with_gradle(
self.context, self.build_include, docker_service_name=self.docker_service_name, bind_to_docker_host=self.BIND_TO_DOCKER_HOST
From ca0f96001b75be4dae3061629cb8275209026ad2 Mon Sep 17 00:00:00 2001
From: Tim Roes
Date: Fri, 14 Apr 2023 22:05:10 +0200
Subject: [PATCH 077/187] Run doc deploys on docosaurus changes (#25215)
Co-authored-by: Topher Lubaway
---
.github/workflows/deploy-docs-site.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/deploy-docs-site.yml b/.github/workflows/deploy-docs-site.yml
index 8e4d24540180..de0a86587ef2 100644
--- a/.github/workflows/deploy-docs-site.yml
+++ b/.github/workflows/deploy-docs-site.yml
@@ -6,6 +6,7 @@ on:
- master
paths:
- "docs/**"
+ - "docusaurus/**"
pull_request:
types:
@@ -15,6 +16,7 @@ on:
- synchronize
paths:
- "docs/**"
+ - "docusaurus/**"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
From 650ca35f202fd50a53f337ac987af312413def0f Mon Sep 17 00:00:00 2001
From: Alexandre Girard
Date: Fri, 14 Apr 2023 14:05:22 -0700
Subject: [PATCH 078/187] Fix manifest_declarative_source + add unit tests
(#25217)
* Fix + unit test
* Add a test with pagination
* Add a test with partition router
* Make sure _fetch_next_page is called with the right arguments
* Automated Commit - Formatting Changes
* pagination with partitions
* refactor
* clean up
* format
---------
Co-authored-by: girarda
---
.../manifest_declarative_source.py | 2 +-
.../test_manifest_declarative_source.py | 432 +++++++++++++++++-
2 files changed, 432 insertions(+), 2 deletions(-)
diff --git a/airbyte-cdk/python/airbyte_cdk/sources/declarative/manifest_declarative_source.py b/airbyte-cdk/python/airbyte_cdk/sources/declarative/manifest_declarative_source.py
index 82fbb1dfb36d..1dcaccbfa4f4 100644
--- a/airbyte-cdk/python/airbyte_cdk/sources/declarative/manifest_declarative_source.py
+++ b/airbyte-cdk/python/airbyte_cdk/sources/declarative/manifest_declarative_source.py
@@ -130,7 +130,7 @@ def read(
yield from super().read(logger, config, catalog, state)
def should_log_slice_message(self, logger: logging.Logger):
- return self._emit_connector_builder_messages or super(self).should_log_slice_message(logger)
+ return self._emit_connector_builder_messages or super().should_log_slice_message(logger)
def _configure_logger_level(self, logger: logging.Logger):
"""
diff --git a/airbyte-cdk/python/unit_tests/sources/declarative/test_manifest_declarative_source.py b/airbyte-cdk/python/unit_tests/sources/declarative/test_manifest_declarative_source.py
index 1a87ad823535..100cf29ec4e9 100644
--- a/airbyte-cdk/python/unit_tests/sources/declarative/test_manifest_declarative_source.py
+++ b/airbyte-cdk/python/unit_tests/sources/declarative/test_manifest_declarative_source.py
@@ -2,15 +2,30 @@
# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
#
+import json
import logging
import os
import sys
-from unittest.mock import patch
+from typing import Any, List, Mapping
+from unittest.mock import call, patch
import pytest
+import requests
import yaml
+from airbyte_cdk.models import (
+ AirbyteLogMessage,
+ AirbyteMessage,
+ AirbyteStream,
+ ConfiguredAirbyteCatalog,
+ ConfiguredAirbyteStream,
+ DestinationSyncMode,
+ Level,
+ SyncMode,
+ Type,
+)
from airbyte_cdk.sources.declarative.declarative_stream import DeclarativeStream
from airbyte_cdk.sources.declarative.manifest_declarative_source import ManifestDeclarativeSource
+from airbyte_cdk.sources.streams.http import HttpStream
from jsonschema.exceptions import ValidationError
logger = logging.getLogger("airbyte")
@@ -727,3 +742,418 @@ def test_given_debug_when_read_then_set_log_level(self, declarative_source_read)
list(source.read(debug_logger, {}, {}, {}))
assert debug_logger.isEnabledFor(logging.DEBUG)
+
+
+def request_log_message(request: dict) -> AirbyteMessage:
+ return AirbyteMessage(type=Type.LOG, log=AirbyteLogMessage(level=Level.INFO, message=f"request:{json.dumps(request)}"))
+
+
+def response_log_message(response: dict) -> AirbyteMessage:
+ return AirbyteMessage(type=Type.LOG, log=AirbyteLogMessage(level=Level.INFO, message=f"response:{json.dumps(response)}"))
+
+
+def _create_request():
+ url = "https://example.com/api"
+ headers = {'Content-Type': 'application/json'}
+ return requests.Request('POST', url, headers=headers, json={"key": "value"}).prepare()
+
+
+def _create_response(body):
+ response = requests.Response()
+ response.status_code = 200
+ response._content = bytes(json.dumps(body), "utf-8")
+ response.headers["Content-Type"] = "application/json"
+ return response
+
+
+def _create_page(response_body):
+ return _create_request(), _create_response(response_body)
+
+
+@pytest.mark.parametrize("test_name, manifest, pages, expected_records, expected_calls",[
+ ("test_read_manifest_no_pagination_no_partitions",
+ {
+ "version": "0.34.2",
+ "type": "DeclarativeSource",
+ "check": {
+ "type": "CheckStream",
+ "stream_names": [
+ "Rates"
+ ]
+ },
+ "streams": [
+ {
+ "type": "DeclarativeStream",
+ "name": "Rates",
+ "primary_key": [],
+ "schema_loader": {
+ "type": "InlineSchemaLoader",
+ "schema": {
+ "$schema": "http://json-schema.org/schema#",
+ "properties": {
+ "ABC": {
+ "type": "number"
+ },
+ "AED": {
+ "type": "number"
+ },
+ },
+ "type": "object"
+ }
+ },
+ "retriever": {
+ "type": "SimpleRetriever",
+ "requester": {
+ "type": "HttpRequester",
+ "url_base": "https://api.apilayer.com",
+ "path": "/exchangerates_data/latest",
+ "http_method": "GET",
+ "request_parameters": {},
+ "request_headers": {},
+ "request_body_json": {},
+ "authenticator": {
+ "type": "ApiKeyAuthenticator",
+ "header": "apikey",
+ "api_token": "{{ config['api_key'] }}"
+ }
+ },
+ "record_selector": {
+ "type": "RecordSelector",
+ "extractor": {
+ "type": "DpathExtractor",
+ "field_path": [
+ "rates"
+ ]
+ }
+ },
+ "paginator": {
+ "type": "NoPagination"
+ }
+ }
+ }
+ ],
+ "spec": {
+ "connection_specification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": [
+ "api_key"
+ ],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "airbyte_secret": True
+ }
+ },
+ "additionalProperties": True
+ },
+ "documentation_url": "https://example.org",
+ "type": "Spec"
+ }
+ },
+ (_create_page({"rates": [{"ABC": 0}, {"AED": 1}],"_metadata": {"next": "next"}}), _create_page({"rates": [{"USD": 2}],"_metadata": {"next": "next"}})) * 10,
+ [{"ABC": 0}, {"AED": 1}],
+ [call({}, {}, None)]),
+ ("test_read_with_pagination_no_partitions",
+ {
+ "version": "0.34.2",
+ "type": "DeclarativeSource",
+ "check": {
+ "type": "CheckStream",
+ "stream_names": [
+ "Rates"
+ ]
+ },
+ "streams": [
+ {
+ "type": "DeclarativeStream",
+ "name": "Rates",
+ "primary_key": [],
+ "schema_loader": {
+ "type": "InlineSchemaLoader",
+ "schema": {
+ "$schema": "http://json-schema.org/schema#",
+ "properties": {
+ "ABC": {
+ "type": "number"
+ },
+ "AED": {
+ "type": "number"
+ },
+ "USD": {
+ "type": "number"
+ },
+ },
+ "type": "object"
+ }
+ },
+ "retriever": {
+ "type": "SimpleRetriever",
+ "requester": {
+ "type": "HttpRequester",
+ "url_base": "https://api.apilayer.com",
+ "path": "/exchangerates_data/latest",
+ "http_method": "GET",
+ "request_parameters": {},
+ "request_headers": {},
+ "request_body_json": {},
+ "authenticator": {
+ "type": "ApiKeyAuthenticator",
+ "header": "apikey",
+ "api_token": "{{ config['api_key'] }}"
+ }
+ },
+ "record_selector": {
+ "type": "RecordSelector",
+ "extractor": {
+ "type": "DpathExtractor",
+ "field_path": [
+ "rates"
+ ]
+ }
+ },
+ "paginator": {
+ "type": "DefaultPaginator",
+ "page_size": 2,
+ "page_size_option": {"inject_into": "request_parameter", "field_name": "page_size"},
+ "page_token_option": {"inject_into": "path", "type": "RequestPath"},
+ "pagination_strategy": {"type": "CursorPagination", "cursor_value": "{{ response._metadata.next }}", "page_size": 2},
+ },
+ }
+ }
+ ],
+ "spec": {
+ "connection_specification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": [
+ "api_key"
+ ],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "airbyte_secret": True
+ }
+ },
+ "additionalProperties": True
+ },
+ "documentation_url": "https://example.org",
+ "type": "Spec"
+ }
+ },
+ (_create_page({"rates": [{"ABC": 0}, {"AED": 1}],"_metadata": {"next": "next"}}), _create_page({"rates": [{"USD": 2}],"_metadata": {}})) * 10,
+ [{"ABC": 0}, {"AED": 1}, {"USD": 2}],
+ [call({}, {}, None), call({}, {}, {"next_page_token": "next"})]),
+ (
+ "test_no_pagination_with_partition_router",
+ {
+ "version": "0.34.2",
+ "type": "DeclarativeSource",
+ "check": {
+ "type": "CheckStream",
+ "stream_names": [
+ "Rates"
+ ]
+ },
+ "streams": [
+ {
+ "type": "DeclarativeStream",
+ "name": "Rates",
+ "primary_key": [],
+ "schema_loader": {
+ "type": "InlineSchemaLoader",
+ "schema": {
+ "$schema": "http://json-schema.org/schema#",
+ "properties": {
+ "ABC": {
+ "type": "number"
+ },
+ "AED": {
+ "type": "number"
+ },
+ "partition": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "retriever": {
+ "type": "SimpleRetriever",
+ "requester": {
+ "type": "HttpRequester",
+ "url_base": "https://api.apilayer.com",
+ "path": "/exchangerates_data/latest",
+ "http_method": "GET",
+ "request_parameters": {},
+ "request_headers": {},
+ "request_body_json": {},
+ "authenticator": {
+ "type": "ApiKeyAuthenticator",
+ "header": "apikey",
+ "api_token": "{{ config['api_key'] }}"
+ }
+ },
+ "partition_router": {
+ "type": "ListPartitionRouter",
+ "values": ["0", "1"],
+ "cursor_field": "partition"
+ },
+ "record_selector": {
+ "type": "RecordSelector",
+ "extractor": {
+ "type": "DpathExtractor",
+ "field_path": [
+ "rates"
+ ]
+ }
+ },
+ "paginator": {
+ "type": "NoPagination"
+ }
+ }
+ }
+ ],
+ "spec": {
+ "connection_specification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": [
+ "api_key"
+ ],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "airbyte_secret": True
+ }
+ },
+ "additionalProperties": True
+ },
+ "documentation_url": "https://example.org",
+ "type": "Spec"
+ }
+ },
+ (_create_page({"rates": [{"ABC": 0, "partition": 0}, {"AED": 1, "partition": 0}], "_metadata": {"next": "next"}}),
+ _create_page({"rates": [{"ABC": 2, "partition": 1}], "_metadata": {"next": "next"}})),
+ [{"ABC": 0, "partition": 0}, {"AED": 1, "partition": 0}, {"ABC": 2, "partition": 1}],
+ [call({"partition": "0"}, {}, None), call({"partition": "1"}, {}, None)]
+ ),
+ ("test_with_pagination_and_partition_router",
+ {
+ "version": "0.34.2",
+ "type": "DeclarativeSource",
+ "check": {
+ "type": "CheckStream",
+ "stream_names": [
+ "Rates"
+ ]
+ },
+ "streams": [
+ {
+ "type": "DeclarativeStream",
+ "name": "Rates",
+ "primary_key": [],
+ "schema_loader": {
+ "type": "InlineSchemaLoader",
+ "schema": {
+ "$schema": "http://json-schema.org/schema#",
+ "properties": {
+ "ABC": {
+ "type": "number"
+ },
+ "AED": {
+ "type": "number"
+ },
+ "partition": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "retriever": {
+ "type": "SimpleRetriever",
+ "requester": {
+ "type": "HttpRequester",
+ "url_base": "https://api.apilayer.com",
+ "path": "/exchangerates_data/latest",
+ "http_method": "GET",
+ "request_parameters": {},
+ "request_headers": {},
+ "request_body_json": {},
+ "authenticator": {
+ "type": "ApiKeyAuthenticator",
+ "header": "apikey",
+ "api_token": "{{ config['api_key'] }}"
+ }
+ },
+ "partition_router": {
+ "type": "ListPartitionRouter",
+ "values": ["0", "1"],
+ "cursor_field": "partition"
+ },
+ "record_selector": {
+ "type": "RecordSelector",
+ "extractor": {
+ "type": "DpathExtractor",
+ "field_path": [
+ "rates"
+ ]
+ }
+ },
+ "paginator": {
+ "type": "DefaultPaginator",
+ "page_size": 2,
+ "page_size_option": {"inject_into": "request_parameter", "field_name": "page_size"},
+ "page_token_option": {"inject_into": "path", "type": "RequestPath"},
+ "pagination_strategy": {"type": "CursorPagination", "cursor_value": "{{ response._metadata.next }}", "page_size": 2},
+ },
+ }
+ }
+ ],
+ "spec": {
+ "connection_specification": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": [
+ "api_key"
+ ],
+ "properties": {
+ "api_key": {
+ "type": "string",
+ "title": "API Key",
+ "airbyte_secret": True
+ }
+ },
+ "additionalProperties": True
+ },
+ "documentation_url": "https://example.org",
+ "type": "Spec"
+ }
+ },
+ (
+ _create_page({"rates": [{"ABC": 0, "partition": 0}, {"AED": 1, "partition": 0}], "_metadata": {"next": "next"}}),
+ _create_page({"rates": [{"USD": 3, "partition": 0}], "_metadata": {}}),
+ _create_page({"rates": [{"ABC": 2, "partition": 1}], "_metadata": {}}),
+ ),
+ [{"ABC": 0, "partition": 0}, {"AED": 1, "partition": 0}, {"USD": 3, "partition": 0}, {"ABC": 2, "partition": 1}],
+ [call({"partition": "0"}, {}, None), call({"partition": "0"}, {}, {"next_page_token": "next"}), call({"partition": "1"}, {}, None),]
+ )
+])
+def test_read_manifest_declarative_source(test_name, manifest, pages, expected_records, expected_calls):
+ _stream_name = "Rates"
+ with patch.object(HttpStream, "_fetch_next_page", side_effect=pages) as mock_http_stream:
+ output_data = [message.record.data for message in _run_read(manifest, _stream_name)]
+ assert expected_records == output_data
+ mock_http_stream.assert_has_calls(expected_calls)
+
+
+def _run_read(manifest: Mapping[str, Any], stream_name: str) -> List[AirbyteMessage]:
+ source = ManifestDeclarativeSource(source_config=manifest)
+ catalog = ConfiguredAirbyteCatalog(streams=[
+ ConfiguredAirbyteStream(stream=AirbyteStream(name=stream_name, json_schema={}, supported_sync_modes=[SyncMode.full_refresh]), sync_mode=SyncMode.full_refresh, destination_sync_mode=DestinationSyncMode.append)
+ ])
+ return list(source.read(logger, {}, catalog, {}))
From b3a25a75399c0b7bab3ce15aa42bd76b35c9c51c Mon Sep 17 00:00:00 2001
From: girarda
Date: Fri, 14 Apr 2023 21:11:36 +0000
Subject: [PATCH 079/187] =?UTF-8?q?=F0=9F=A4=96=20Bump=20patch=20version?=
=?UTF-8?q?=20of=20Airbyte=20CDK?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
airbyte-cdk/python/.bumpversion.cfg | 2 +-
airbyte-cdk/python/CHANGELOG.md | 3 +++
airbyte-cdk/python/Dockerfile | 4 ++--
airbyte-cdk/python/setup.py | 2 +-
4 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/airbyte-cdk/python/.bumpversion.cfg b/airbyte-cdk/python/.bumpversion.cfg
index 54afb9d55dba..93d79e4c4ebe 100644
--- a/airbyte-cdk/python/.bumpversion.cfg
+++ b/airbyte-cdk/python/.bumpversion.cfg
@@ -1,5 +1,5 @@
[bumpversion]
-current_version = 0.34.2
+current_version = 0.34.3
commit = False
[bumpversion:file:setup.py]
diff --git a/airbyte-cdk/python/CHANGELOG.md b/airbyte-cdk/python/CHANGELOG.md
index 9ffeb23fa827..ae61f05f5477 100644
--- a/airbyte-cdk/python/CHANGELOG.md
+++ b/airbyte-cdk/python/CHANGELOG.md
@@ -1,5 +1,8 @@
# Changelog
+## 0.34.3
+low-code: fix typo in ManifestDeclarativeSource
+
## 0.34.2
Emit slice log messages when running the connector builder
diff --git a/airbyte-cdk/python/Dockerfile b/airbyte-cdk/python/Dockerfile
index e14beda07b01..d6ad6f60838a 100644
--- a/airbyte-cdk/python/Dockerfile
+++ b/airbyte-cdk/python/Dockerfile
@@ -10,7 +10,7 @@ RUN apk --no-cache upgrade \
&& apk --no-cache add tzdata build-base
# install airbyte-cdk
-RUN pip install --prefix=/install airbyte-cdk==0.34.2
+RUN pip install --prefix=/install airbyte-cdk==0.34.3
# build a clean environment
FROM base
@@ -32,5 +32,5 @@ ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
# needs to be the same as CDK
-LABEL io.airbyte.version=0.34.2
+LABEL io.airbyte.version=0.34.3
LABEL io.airbyte.name=airbyte/source-declarative-manifest
diff --git a/airbyte-cdk/python/setup.py b/airbyte-cdk/python/setup.py
index ef162934137c..44d80940c9b3 100644
--- a/airbyte-cdk/python/setup.py
+++ b/airbyte-cdk/python/setup.py
@@ -17,7 +17,7 @@
name="airbyte-cdk",
# The version of the airbyte-cdk package is used at runtime to validate manifests. That validation must be
# updated if our semver format changes such as using release candidate versions.
- version="0.34.2",
+ version="0.34.3",
description="A framework for writing Airbyte Connectors.",
long_description=README,
long_description_content_type="text/markdown",
From e2ad907d05e68e4f279fafd5b8ceef4c83bdb404 Mon Sep 17 00:00:00 2001
From: Jimmy Ma
Date: Fri, 14 Apr 2023 14:29:14 -0700
Subject: [PATCH 080/187] Document the config for docker workspace cleanup
(#25210)
---
docs/operator-guides/configuring-airbyte.md | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/docs/operator-guides/configuring-airbyte.md b/docs/operator-guides/configuring-airbyte.md
index 9e3f32439f6a..e334793323a9 100644
--- a/docs/operator-guides/configuring-airbyte.md
+++ b/docs/operator-guides/configuring-airbyte.md
@@ -111,6 +111,11 @@ Set to empty values, e.g. "" to disable basic auth. **Be sure to change these va
4. `MAX_DISCOVER_WORKERS` - Define the maximum number of Discover workers each Airbyte Worker container can support. Defaults to 5.
5. `SENTRY_DSN` - Define the [DSN](https://docs.sentry.io/product/sentry-basics/dsn-explainer/) of necessary Sentry instance. Defaults to empty. Integration with Sentry is explained [here](./sentry-integration.md)
+#### Data Retention
+
+1. `TEMPORAL_HISTORY_RETENTION_IN_DAYS` - Define the retention period of the job history in Temporal, defaults to 30 days. When running in docker,
+ this same value is applied to the log retention.
+
### Docker-Only
1. `WORKSPACE_DOCKER_MOUNT` - Defines the name of the Airbyte docker volume.
From eab748f433303f90d91314bce6b729265d600b56 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Mon, 17 Apr 2023 23:29:49 +0530
Subject: [PATCH 081/187] delete privacy streams, refactor webhooks
---
.../integration_tests/configured_catalog.json | 18 ---------
.../source-yotpo/source_yotpo/manifest.yaml | 39 +------------------
.../source_yotpo/schemas/privacy_data.json | 11 ------
.../source_yotpo/schemas/privacy_user.json | 14 -------
.../source_yotpo/schemas/webhooks.json | 38 +++++++-----------
docs/integrations/sources/yotpo.md | 2 -
6 files changed, 16 insertions(+), 106 deletions(-)
delete mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json
delete mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index 2d7be78bcee3..6bbc5aec3ab5 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -1,23 +1,5 @@
{
"streams": [
- {
- "stream": {
- "name": "privacy_data",
- "json_schema": {},
- "supported_sync_modes": ["full_refresh"]
- },
- "sync_mode": "full_refresh",
- "destination_sync_mode": "overwrite"
- },
- {
- "stream": {
- "name": "privacy_user",
- "json_schema": {},
- "supported_sync_modes": ["full_refresh"]
- },
- "sync_mode": "full_refresh",
- "destination_sync_mode": "overwrite"
- },
{
"stream": {
"name": "reviews",
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index aaa1e147f66f..f1eaf0233310 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -29,40 +29,7 @@ definitions:
request_parameters:
utoken: "{{ config['access_token'] }}"
email: "{{ config['email'] }}"
-
- privacy_data_stream:
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["response"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/privacy_stream_requester"
- name: "privacy_data"
- $parameters:
- path: "/data/exists"
- privacy_user_stream:
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["status"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/privacy_stream_requester"
- name: "privacy_user"
- $parameters:
- path: "/data"
reviews_stream:
type: DeclarativeStream
@@ -138,7 +105,7 @@ definitions:
type: RecordSelector
extractor:
type: DpathExtractor
- field_path: ["response"]
+ field_path: ["response", "webhooks"]
paginator:
type: NoPagination
requester:
@@ -148,8 +115,6 @@ definitions:
path: "/apps/{{ config['app_key'] }}/webhooks"
streams:
- - "#/definitions/privacy_data_stream"
- - "#/definitions/privacy_user_stream"
- "#/definitions/reviews_stream"
- "#/definitions/reviews_bottomline_stream"
- "#/definitions/top_reviews_stream"
@@ -158,8 +123,6 @@ streams:
check:
type: CheckStream
stream_names:
- - "privacy_data"
- - "privacy_user"
- "reviews"
- "reviews_bottomline"
- "top_reviews"
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json
deleted file mode 100644
index 3d6ecf69ffac..000000000000
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_data.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Privacy Data",
- "additionalProperties": true,
- "type": "object",
- "properties": {
- "has_data": {
- "type": ["null", "boolean"]
- }
- }
-}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json
deleted file mode 100644
index 3603d55f04da..000000000000
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/privacy_user.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Privacy User",
- "additionalProperties": true,
- "type": "object",
- "properties": {
- "code": {
- "type": ["null", "number"]
- },
- "message": {
- "type": ["null", "string"]
- }
- }
-}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json
index e4fc677f852e..b93f4e074aea 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhooks.json
@@ -2,30 +2,22 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Webhooks Schema",
"additionalProperties": true,
- "type": "object",
+ "type": ["null", "object"],
"properties": {
- "webhooks": {
- "type": ["null", "array"],
- "items": {
- "type": ["null", "object"],
- "properties": {
- "id": {
- "type": ["null", "number"]
- },
- "webhook_event_id": {
- "type": ["null", "number"]
- },
- "webhook_event_name": {
- "type": ["null", "string"]
- },
- "url": {
- "type": ["null", "string"]
- },
- "version": {
- "type": ["null", "number"]
- }
- }
- }
+ "id": {
+ "type": ["null", "number"]
+ },
+ "webhook_event_id": {
+ "type": ["null", "number"]
+ },
+ "webhook_event_name": {
+ "type": ["null", "string"]
+ },
+ "url": {
+ "type": ["null", "string"]
+ },
+ "version": {
+ "type": ["null", "number"]
}
}
}
diff --git a/docs/integrations/sources/yotpo.md b/docs/integrations/sources/yotpo.md
index d4a6a19e42d1..21c25765ecac 100644
--- a/docs/integrations/sources/yotpo.md
+++ b/docs/integrations/sources/yotpo.md
@@ -49,8 +49,6 @@ The Yotpo source connector supports the following [sync modes](https://docs.airb
## Supported Streams
-- privacy_data
-- privacy_user
- reviews
- reviews_bottomline
- top_reviews
From 8c987073595b0315227290f857de2adbc25c9d6d Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Mon, 17 Apr 2023 23:44:52 +0530
Subject: [PATCH 082/187] add pagination
---
.../source-yotpo/source_yotpo/manifest.yaml | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index f1eaf0233310..5c494f907fbb 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -41,7 +41,18 @@ definitions:
type: DpathExtractor
field_path: ["reviews"]
paginator:
- type: NoPagination
+ type: "DefaultPaginator"
+ page_size_option:
+ type: "RequestOption"
+ inject_into: "request_parameter"
+ field_name: "per_page"
+ pagination_strategy:
+ type: "PageIncrement"
+ page_size: 5
+ page_token_option:
+ type: "RequestOption"
+ inject_into: "request_parameter"
+ field_name: "page"
requester:
$ref: "#/definitions/yotpo_stream_requester"
incremental_sync:
From e9026bf20c2d710fd0364f245d818b0cae7e33a6 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Tue, 18 Apr 2023 15:55:34 +0530
Subject: [PATCH 083/187] add streams raw_data, email_analytics
---
.../source-yotpo/acceptance-test-config.yml | 4 +-
.../integration_tests/configured_catalog.json | 18 +++++
.../source-yotpo/source_yotpo/manifest.yaml | 47 +++++++++++-
.../source_yotpo/schemas/email_analytics.json | 18 +++++
.../source_yotpo/schemas/raw_data.json | 71 +++++++++++++++++++
5 files changed, 155 insertions(+), 3 deletions(-)
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/email_analytics.json
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/raw_data.json
diff --git a/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml b/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
index ecfcc4f72b63..a3b095b9bde1 100644
--- a/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
+++ b/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
@@ -18,7 +18,9 @@ acceptance_tests:
tests:
- config_path: "secrets/config.json"
configured_catalog_path: "integration_tests/configured_catalog.json"
- empty_streams: []
+ empty_streams:
+ - name: "raw_data"
+ bypass_reason: "Sandbox account cannot seed the endpoint"
expect_records:
path: "integration_tests/expected_records.jsonl"
extra_fields: no
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index 6bbc5aec3ab5..83e04cee3701 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -1,5 +1,23 @@
{
"streams": [
+ {
+ "stream": {
+ "name": "email_analytics",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
+ {
+ "stream": {
+ "name": "raw_data",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
{
"stream": {
"name": "reviews",
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index 5c494f907fbb..7eece70ccc58 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -29,7 +29,13 @@ definitions:
request_parameters:
utoken: "{{ config['access_token'] }}"
email: "{{ config['email'] }}"
-
+
+ analytics_stream_requester:
+ type: HttpRequester
+ url_base: "https://api.yotpo.com/analytics/v1"
+ http_method: "GET"
+ request_parameters:
+ utoken: "{{ config['access_token'] }}"
reviews_stream:
type: DeclarativeStream
@@ -73,6 +79,40 @@ definitions:
$parameters:
path: "/apps/{{ config['app_key'] }}/reviews"
+ email_analytics_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["date_series_points"]
+ paginator:
+ type: NoPagination
+ requester:
+ $ref: "#/definitions/analytics_stream_requester"
+ name: "email_analytics"
+ $parameters:
+ path: "/emails/{{ config['app_key'] }}/emails_sent?token={{ config['access_token'] }}"
+
+ raw_data_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["records"]
+ paginator:
+ type: NoPagination
+ requester:
+ $ref: "#/definitions/analytics_stream_requester"
+ name: "raw_data"
+ $parameters:
+ path: "/emails/{{ config['app_key'] }}/export/raw_data?token={{ config['access_token'] }}"
+
reviews_bottomline_stream:
type: DeclarativeStream
retriever:
@@ -90,7 +130,6 @@ definitions:
$parameters:
path: "/products/{{ config['app_key'] }}/yotpo_site_reviews/bottomline"
-
top_reviews_stream:
type: DeclarativeStream
retriever:
@@ -126,6 +165,8 @@ definitions:
path: "/apps/{{ config['app_key'] }}/webhooks"
streams:
+ - "#/definitions/email_analytics_stream"
+ - "#/definitions/raw_data_stream"
- "#/definitions/reviews_stream"
- "#/definitions/reviews_bottomline_stream"
- "#/definitions/top_reviews_stream"
@@ -134,6 +175,8 @@ streams:
check:
type: CheckStream
stream_names:
+ - "email_analytics"
+ - "raw_data"
- "reviews"
- "reviews_bottomline"
- "top_reviews"
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/email_analytics.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/email_analytics.json
new file mode 100644
index 000000000000..5c28d57a89a3
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/email_analytics.json
@@ -0,0 +1,18 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Email Analytics",
+ "additionalProperties": true,
+ "type": "object",
+ "properties": {
+ "since": {
+ "type": ["null", "string"]
+ },
+ "until": {
+ "type": ["null", "string"]
+ },
+ "values": {
+ "type": ["null", "object"],
+ "properties": {}
+ }
+ }
+}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/raw_data.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/raw_data.json
new file mode 100644
index 000000000000..ff2feeac9183
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/raw_data.json
@@ -0,0 +1,71 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Raw Data Schema",
+ "additionalProperties": true,
+ "type": "object",
+ "properties": {
+ "email_address": {
+ "type": ["null", "string"]
+ },
+ "order_id": {
+ "type": ["null", "string"]
+ },
+ "order_timestamp": {
+ "type": ["null", "string"]
+ },
+ "product_id": {
+ "type": ["null", "string"]
+ },
+ "sku": {
+ "type": ["null", "number"]
+ },
+ "email_type": {
+ "type": ["null", "string"]
+ },
+ "reminder_num": {
+ "type": ["null", "number"]
+ },
+ "trr_bundle_id": {
+ "type": ["null", "string"]
+ },
+ "trr_bundle_subject": {
+ "type": ["null", "string"]
+ },
+ "review_type": {
+ "type": ["null", "string"]
+ },
+ "coupon_code": {
+ "type": ["null", "number"]
+ },
+ "email_sent_timestamp": {
+ "type": ["null", "string"]
+ },
+ "opened_timestamp": {
+ "type": ["null", "string"]
+ },
+ "clicked_through_timestamp": {
+ "type": ["null", "string"]
+ },
+ "content_creation_timestamp": {
+ "type": ["null", "string"]
+ },
+ "platform": {
+ "type": ["null", "string"]
+ },
+ "invalid_address_timestamp": {
+ "type": ["null", "string"]
+ },
+ "failed_timestamp": {
+ "type": ["null", "string"]
+ },
+ "unsubscribed_timestamp": {
+ "type": ["null", "string"]
+ },
+ "marked_spam_timestamp": {
+ "type": ["null", "string"]
+ },
+ "arrived_early_timestamp": {
+ "type": ["null", "string"]
+ }
+ }
+}
From 1fd54c23202a53bb619dcc16581fa69fdd6d02f4 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Tue, 18 Apr 2023 16:11:31 +0530
Subject: [PATCH 084/187] add streams unsubscribers, webhook_events
---
.../source-yotpo/acceptance-test-config.yml | 2 +
.../integration_tests/configured_catalog.json | 18 +++++++++
.../source-yotpo/source_yotpo/manifest.yaml | 38 +++++++++++++++++++
.../source_yotpo/schemas/unsubscribers.json | 20 ++++++++++
.../source_yotpo/schemas/webhook_events.json | 14 +++++++
docs/integrations/sources/yotpo.md | 4 ++
6 files changed, 96 insertions(+)
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/unsubscribers.json
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhook_events.json
diff --git a/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml b/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
index a3b095b9bde1..3d6623e9ee52 100644
--- a/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
+++ b/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
@@ -21,6 +21,8 @@ acceptance_tests:
empty_streams:
- name: "raw_data"
bypass_reason: "Sandbox account cannot seed the endpoint"
+ - name: "unsubscribers"
+ bypass_reason: "Sandbox account cannot seed the endpoint"
expect_records:
path: "integration_tests/expected_records.jsonl"
extra_fields: no
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index 83e04cee3701..5daffc44a90d 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -45,6 +45,15 @@
"sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
},
+ {
+ "stream": {
+ "name": "unsubscribers",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
{
"stream": {
"name": "webhooks",
@@ -53,6 +62,15 @@
},
"sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
+ },
+ {
+ "stream": {
+ "name": "webhook_events",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
}
]
}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index 7eece70ccc58..408fb61ed8b8 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -147,6 +147,40 @@ definitions:
$parameters:
path: "/apps/{{ config['app_key'] }}/top_reviews"
+ unsubscribers_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["response", "unsubscribers"]
+ paginator:
+ type: NoPagination
+ requester:
+ $ref: "#/definitions/yotpo_stream_plain_requester"
+ name: "unsubscribers"
+ $parameters:
+ path: "/apps/{{ config['app_key'] }}/unsubscribers?utoken={{ config['access_token'] }}"
+
+ webhook_events_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["response", "webhook_events"]
+ paginator:
+ type: NoPagination
+ requester:
+ $ref: "#/definitions/yotpo_stream_plain_requester"
+ name: "webhook_events"
+ $parameters:
+ path: "/webhook_events?utoken={{ config['access_token'] }}"
+
webhooks_stream:
type: DeclarativeStream
retriever:
@@ -171,6 +205,8 @@ streams:
- "#/definitions/reviews_bottomline_stream"
- "#/definitions/top_reviews_stream"
- "#/definitions/webhooks_stream"
+ - "#/definitions/unsubscribers_stream"
+ - "#/definitions/webhook_events_stream"
check:
type: CheckStream
@@ -180,4 +216,6 @@ check:
- "reviews"
- "reviews_bottomline"
- "top_reviews"
+ - "unsubscribers"
- "webhooks"
+ - "webhook_events"
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/unsubscribers.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/unsubscribers.json
new file mode 100644
index 000000000000..e3426d28a71f
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/unsubscribers.json
@@ -0,0 +1,20 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Unsubscribers Schema",
+ "additionalProperties": true,
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": ["null", "number"]
+ },
+ "user_email": {
+ "type": ["null", "string"]
+ },
+ "email_type_id": {
+ "type": ["null", "number"]
+ },
+ "unsubscribed_by_name": {
+ "type": ["null", "string"]
+ }
+ }
+}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhook_events.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhook_events.json
new file mode 100644
index 000000000000..58ff83078426
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/webhook_events.json
@@ -0,0 +1,14 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Webhook events Schema",
+ "additionalProperties": true,
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": ["null", "string"]
+ },
+ "description": {
+ "type": ["null", "string"]
+ }
+ }
+}
diff --git a/docs/integrations/sources/yotpo.md b/docs/integrations/sources/yotpo.md
index 21c25765ecac..eb9d657b4224 100644
--- a/docs/integrations/sources/yotpo.md
+++ b/docs/integrations/sources/yotpo.md
@@ -49,10 +49,14 @@ The Yotpo source connector supports the following [sync modes](https://docs.airb
## Supported Streams
+- email_analytics
+- raw_data
- reviews
- reviews_bottomline
- top_reviews
+- unsubscribers
- webhooks
+- webhook_events
## API method example
From 0c663b50dedc6c945d4d16387ae2a79b374f282c Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Sat, 22 Apr 2023 11:25:24 +0530
Subject: [PATCH 085/187] Fix pagination
---
.../connectors/source-yotpo/source_yotpo/manifest.yaml | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index 408fb61ed8b8..f950261ad2b0 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -1,7 +1,6 @@
version: "0.29.0"
definitions:
-
yotpo_stream_requester:
type: HttpRequester
url_base: "https://api.yotpo.com/v1"
@@ -51,14 +50,14 @@ definitions:
page_size_option:
type: "RequestOption"
inject_into: "request_parameter"
- field_name: "per_page"
+ field_name: "count"
pagination_strategy:
- type: "PageIncrement"
- page_size: 5
+ type: "OffsetIncrement"
+ page_size: 1
page_token_option:
type: "RequestOption"
- inject_into: "request_parameter"
field_name: "page"
+ inject_into: "request_parameter"
requester:
$ref: "#/definitions/yotpo_stream_requester"
incremental_sync:
From 0797e1c995368d23f9c880820d1c524d217a322a Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Sat, 22 Apr 2023 15:18:14 +0530
Subject: [PATCH 086/187] revert doc
---
docs/integrations/sources/yotpo.md | 2 --
1 file changed, 2 deletions(-)
diff --git a/docs/integrations/sources/yotpo.md b/docs/integrations/sources/yotpo.md
index eb9d657b4224..037b1c09de38 100644
--- a/docs/integrations/sources/yotpo.md
+++ b/docs/integrations/sources/yotpo.md
@@ -52,8 +52,6 @@ The Yotpo source connector supports the following [sync modes](https://docs.airb
- email_analytics
- raw_data
- reviews
-- reviews_bottomline
-- top_reviews
- unsubscribers
- webhooks
- webhook_events
From c7f8d9675197cbb3da0718a25f26af6047b407d3 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Sat, 22 Apr 2023 22:16:58 +0530
Subject: [PATCH 087/187] Merge branch 'yotpo' of
https://github.com/btkcodedev/airbyte into yotpo
---
.../integration_tests/configured_catalog.json | 18 ----
.../source-yotpo/source_yotpo/manifest.yaml | 102 ++++++------------
.../schemas/reviews_bottomline.json | 19 ----
.../source_yotpo/schemas/top_reviews.json | 27 -----
4 files changed, 34 insertions(+), 132 deletions(-)
delete mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
delete mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index 5daffc44a90d..4f5228e40e1d 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -27,24 +27,6 @@
"sync_mode": "incremental",
"destination_sync_mode": "append"
},
- {
- "stream": {
- "name": "reviews_bottomline",
- "json_schema": {},
- "supported_sync_modes": ["full_refresh"]
- },
- "sync_mode": "full_refresh",
- "destination_sync_mode": "overwrite"
- },
- {
- "stream": {
- "name": "top_reviews",
- "json_schema": {},
- "supported_sync_modes": ["full_refresh"]
- },
- "sync_mode": "full_refresh",
- "destination_sync_mode": "overwrite"
- },
{
"stream": {
"name": "unsubscribers",
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index f950261ad2b0..fe8bf6b187c4 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -21,6 +21,20 @@ definitions:
type: BearerAuthenticator
api_token: "{{ config['access_token'] }}"
+ yotpo_paginator:
+ type: "DefaultPaginator"
+ page_size_option:
+ type: "RequestOption"
+ inject_into: "request_parameter"
+ field_name: "count"
+ pagination_strategy:
+ type: "OffsetIncrement"
+ page_size: 1
+ page_token_option:
+ type: "RequestOption"
+ field_name: "page"
+ inject_into: "request_parameter"
+
privacy_stream_requester:
type: HttpRequester
url_base: "https://api.yotpo.com/privacy"
@@ -46,18 +60,7 @@ definitions:
type: DpathExtractor
field_path: ["reviews"]
paginator:
- type: "DefaultPaginator"
- page_size_option:
- type: "RequestOption"
- inject_into: "request_parameter"
- field_name: "count"
- pagination_strategy:
- type: "OffsetIncrement"
- page_size: 1
- page_token_option:
- type: "RequestOption"
- field_name: "page"
- inject_into: "request_parameter"
+ $ref: "#/definitions/yotpo_paginator"
requester:
$ref: "#/definitions/yotpo_stream_requester"
incremental_sync:
@@ -79,6 +82,9 @@ definitions:
path: "/apps/{{ config['app_key'] }}/reviews"
email_analytics_stream:
+ name: "email_analytics"
+ $parameters:
+ path: "/emails/{{ config['app_key'] }}/emails_sent"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -91,45 +97,12 @@ definitions:
type: NoPagination
requester:
$ref: "#/definitions/analytics_stream_requester"
- name: "email_analytics"
- $parameters:
- path: "/emails/{{ config['app_key'] }}/emails_sent?token={{ config['access_token'] }}"
+
raw_data_stream:
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["records"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/analytics_stream_requester"
name: "raw_data"
$parameters:
- path: "/emails/{{ config['app_key'] }}/export/raw_data?token={{ config['access_token'] }}"
-
- reviews_bottomline_stream:
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["response"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/yotpo_stream_plain_requester"
- name: "reviews_bottomline"
- $parameters:
- path: "/products/{{ config['app_key'] }}/yotpo_site_reviews/bottomline"
-
- top_reviews_stream:
+ path: "/emails/{{ config['app_key'] }}/export/raw_data"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -137,16 +110,16 @@ definitions:
type: RecordSelector
extractor:
type: DpathExtractor
- field_path: ["reviews"]
+ field_path: ["records"]
paginator:
type: NoPagination
requester:
- $ref: "#/definitions/yotpo_stream_plain_requester"
- name: "top_reviews"
- $parameters:
- path: "/apps/{{ config['app_key'] }}/top_reviews"
+ $ref: "#/definitions/analytics_stream_requester"
unsubscribers_stream:
+ name: "unsubscribers"
+ $parameters:
+ path: "/apps/{{ config['app_key'] }}/unsubscribers"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -156,14 +129,14 @@ definitions:
type: DpathExtractor
field_path: ["response", "unsubscribers"]
paginator:
- type: NoPagination
+ $ref: "#/definitions/yotpo_paginator"
requester:
$ref: "#/definitions/yotpo_stream_plain_requester"
- name: "unsubscribers"
- $parameters:
- path: "/apps/{{ config['app_key'] }}/unsubscribers?utoken={{ config['access_token'] }}"
webhook_events_stream:
+ name: "webhook_events"
+ $parameters:
+ path: "/webhook_events?utoken={{ config['access_token'] }}"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -173,14 +146,14 @@ definitions:
type: DpathExtractor
field_path: ["response", "webhook_events"]
paginator:
- type: NoPagination
+ $ref: "#/definitions/yotpo_paginator"
requester:
$ref: "#/definitions/yotpo_stream_plain_requester"
- name: "webhook_events"
- $parameters:
- path: "/webhook_events?utoken={{ config['access_token'] }}"
webhooks_stream:
+ name: "webhooks"
+ $parameters:
+ path: "/apps/{{ config['app_key'] }}/webhooks"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -190,19 +163,14 @@ definitions:
type: DpathExtractor
field_path: ["response", "webhooks"]
paginator:
- type: NoPagination
+ $ref: "#/definitions/yotpo_paginator"
requester:
$ref: "#/definitions/yotpo_stream_plain_requester"
- name: "webhooks"
- $parameters:
- path: "/apps/{{ config['app_key'] }}/webhooks"
streams:
- "#/definitions/email_analytics_stream"
- "#/definitions/raw_data_stream"
- "#/definitions/reviews_stream"
- - "#/definitions/reviews_bottomline_stream"
- - "#/definitions/top_reviews_stream"
- "#/definitions/webhooks_stream"
- "#/definitions/unsubscribers_stream"
- "#/definitions/webhook_events_stream"
@@ -213,8 +181,6 @@ check:
- "email_analytics"
- "raw_data"
- "reviews"
- - "reviews_bottomline"
- - "top_reviews"
- "unsubscribers"
- "webhooks"
- "webhook_events"
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
deleted file mode 100644
index 796cda50d838..000000000000
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Reviews Bottomline",
- "additionalProperties": true,
- "type": "object",
- "properties": {
- "bottomline": {
- "type": "object",
- "properties": {
- "average_score": {
- "type": ["null", "number"]
- },
- "total_reviews": {
- "type": ["null", "number"]
- }
- }
- }
- }
-}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
deleted file mode 100644
index a9048548d365..000000000000
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Top Reviews Schema",
- "additionalProperties": true,
- "type": "object",
- "properties": {
- "image_url": {
- "type": ["null", "string"]
- },
- "score": {
- "type": ["null", "number"]
- },
- "title": {
- "type": ["null", "string"]
- },
- "content": {
- "type": ["null", "string"]
- },
- "product_url": {
- "type": ["null", "string"]
- },
- "created_at": {
- "type": ["null", "string"],
- "format": "date-time"
- }
- }
-}
From b6db4d682829398efedba10d0f1da3f211220824 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Sat, 22 Apr 2023 22:17:03 +0530
Subject: [PATCH 088/187] Revert "remove top_reviews and reviews_bottomline,
Make common paginator"
This reverts commit 6615288b6d2441d9fdde2d927a5eb77b5d788442.
---
.../integration_tests/configured_catalog.json | 18 ++++
.../source-yotpo/source_yotpo/manifest.yaml | 102 ++++++++++++------
.../schemas/reviews_bottomline.json | 19 ++++
.../source_yotpo/schemas/top_reviews.json | 27 +++++
docs/integrations/sources/yotpo.md | 2 +
5 files changed, 134 insertions(+), 34 deletions(-)
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
create mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index 4f5228e40e1d..5daffc44a90d 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -27,6 +27,24 @@
"sync_mode": "incremental",
"destination_sync_mode": "append"
},
+ {
+ "stream": {
+ "name": "reviews_bottomline",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
+ {
+ "stream": {
+ "name": "top_reviews",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
{
"stream": {
"name": "unsubscribers",
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index fe8bf6b187c4..f950261ad2b0 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -21,20 +21,6 @@ definitions:
type: BearerAuthenticator
api_token: "{{ config['access_token'] }}"
- yotpo_paginator:
- type: "DefaultPaginator"
- page_size_option:
- type: "RequestOption"
- inject_into: "request_parameter"
- field_name: "count"
- pagination_strategy:
- type: "OffsetIncrement"
- page_size: 1
- page_token_option:
- type: "RequestOption"
- field_name: "page"
- inject_into: "request_parameter"
-
privacy_stream_requester:
type: HttpRequester
url_base: "https://api.yotpo.com/privacy"
@@ -60,7 +46,18 @@ definitions:
type: DpathExtractor
field_path: ["reviews"]
paginator:
- $ref: "#/definitions/yotpo_paginator"
+ type: "DefaultPaginator"
+ page_size_option:
+ type: "RequestOption"
+ inject_into: "request_parameter"
+ field_name: "count"
+ pagination_strategy:
+ type: "OffsetIncrement"
+ page_size: 1
+ page_token_option:
+ type: "RequestOption"
+ field_name: "page"
+ inject_into: "request_parameter"
requester:
$ref: "#/definitions/yotpo_stream_requester"
incremental_sync:
@@ -82,9 +79,6 @@ definitions:
path: "/apps/{{ config['app_key'] }}/reviews"
email_analytics_stream:
- name: "email_analytics"
- $parameters:
- path: "/emails/{{ config['app_key'] }}/emails_sent"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -97,12 +91,11 @@ definitions:
type: NoPagination
requester:
$ref: "#/definitions/analytics_stream_requester"
-
+ name: "email_analytics"
+ $parameters:
+ path: "/emails/{{ config['app_key'] }}/emails_sent?token={{ config['access_token'] }}"
raw_data_stream:
- name: "raw_data"
- $parameters:
- path: "/emails/{{ config['app_key'] }}/export/raw_data"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -115,11 +108,45 @@ definitions:
type: NoPagination
requester:
$ref: "#/definitions/analytics_stream_requester"
+ name: "raw_data"
+ $parameters:
+ path: "/emails/{{ config['app_key'] }}/export/raw_data?token={{ config['access_token'] }}"
- unsubscribers_stream:
- name: "unsubscribers"
+ reviews_bottomline_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["response"]
+ paginator:
+ type: NoPagination
+ requester:
+ $ref: "#/definitions/yotpo_stream_plain_requester"
+ name: "reviews_bottomline"
+ $parameters:
+ path: "/products/{{ config['app_key'] }}/yotpo_site_reviews/bottomline"
+
+ top_reviews_stream:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: ["reviews"]
+ paginator:
+ type: NoPagination
+ requester:
+ $ref: "#/definitions/yotpo_stream_plain_requester"
+ name: "top_reviews"
$parameters:
- path: "/apps/{{ config['app_key'] }}/unsubscribers"
+ path: "/apps/{{ config['app_key'] }}/top_reviews"
+
+ unsubscribers_stream:
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -129,14 +156,14 @@ definitions:
type: DpathExtractor
field_path: ["response", "unsubscribers"]
paginator:
- $ref: "#/definitions/yotpo_paginator"
+ type: NoPagination
requester:
$ref: "#/definitions/yotpo_stream_plain_requester"
+ name: "unsubscribers"
+ $parameters:
+ path: "/apps/{{ config['app_key'] }}/unsubscribers?utoken={{ config['access_token'] }}"
webhook_events_stream:
- name: "webhook_events"
- $parameters:
- path: "/webhook_events?utoken={{ config['access_token'] }}"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -146,14 +173,14 @@ definitions:
type: DpathExtractor
field_path: ["response", "webhook_events"]
paginator:
- $ref: "#/definitions/yotpo_paginator"
+ type: NoPagination
requester:
$ref: "#/definitions/yotpo_stream_plain_requester"
+ name: "webhook_events"
+ $parameters:
+ path: "/webhook_events?utoken={{ config['access_token'] }}"
webhooks_stream:
- name: "webhooks"
- $parameters:
- path: "/apps/{{ config['app_key'] }}/webhooks"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -163,14 +190,19 @@ definitions:
type: DpathExtractor
field_path: ["response", "webhooks"]
paginator:
- $ref: "#/definitions/yotpo_paginator"
+ type: NoPagination
requester:
$ref: "#/definitions/yotpo_stream_plain_requester"
+ name: "webhooks"
+ $parameters:
+ path: "/apps/{{ config['app_key'] }}/webhooks"
streams:
- "#/definitions/email_analytics_stream"
- "#/definitions/raw_data_stream"
- "#/definitions/reviews_stream"
+ - "#/definitions/reviews_bottomline_stream"
+ - "#/definitions/top_reviews_stream"
- "#/definitions/webhooks_stream"
- "#/definitions/unsubscribers_stream"
- "#/definitions/webhook_events_stream"
@@ -181,6 +213,8 @@ check:
- "email_analytics"
- "raw_data"
- "reviews"
+ - "reviews_bottomline"
+ - "top_reviews"
- "unsubscribers"
- "webhooks"
- "webhook_events"
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
new file mode 100644
index 000000000000..796cda50d838
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
@@ -0,0 +1,19 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Reviews Bottomline",
+ "additionalProperties": true,
+ "type": "object",
+ "properties": {
+ "bottomline": {
+ "type": "object",
+ "properties": {
+ "average_score": {
+ "type": ["null", "number"]
+ },
+ "total_reviews": {
+ "type": ["null", "number"]
+ }
+ }
+ }
+ }
+}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
new file mode 100644
index 000000000000..a9048548d365
--- /dev/null
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
@@ -0,0 +1,27 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Top Reviews Schema",
+ "additionalProperties": true,
+ "type": "object",
+ "properties": {
+ "image_url": {
+ "type": ["null", "string"]
+ },
+ "score": {
+ "type": ["null", "number"]
+ },
+ "title": {
+ "type": ["null", "string"]
+ },
+ "content": {
+ "type": ["null", "string"]
+ },
+ "product_url": {
+ "type": ["null", "string"]
+ },
+ "created_at": {
+ "type": ["null", "string"],
+ "format": "date-time"
+ }
+ }
+}
diff --git a/docs/integrations/sources/yotpo.md b/docs/integrations/sources/yotpo.md
index 037b1c09de38..eb9d657b4224 100644
--- a/docs/integrations/sources/yotpo.md
+++ b/docs/integrations/sources/yotpo.md
@@ -52,6 +52,8 @@ The Yotpo source connector supports the following [sync modes](https://docs.airb
- email_analytics
- raw_data
- reviews
+- reviews_bottomline
+- top_reviews
- unsubscribers
- webhooks
- webhook_events
From a737e7dde8c0cc497b6055dee654c09f16893e0f Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Sun, 23 Apr 2023 01:26:28 +0530
Subject: [PATCH 089/187] remove streams top_reviews, reviews_bottomline
---
.../integration_tests/configured_catalog.json | 18 ---------
.../source-yotpo/source_yotpo/manifest.yaml | 38 -------------------
docs/integrations/sources/yotpo.md | 2 -
3 files changed, 58 deletions(-)
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
index 5daffc44a90d..4f5228e40e1d 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/configured_catalog.json
@@ -27,24 +27,6 @@
"sync_mode": "incremental",
"destination_sync_mode": "append"
},
- {
- "stream": {
- "name": "reviews_bottomline",
- "json_schema": {},
- "supported_sync_modes": ["full_refresh"]
- },
- "sync_mode": "full_refresh",
- "destination_sync_mode": "overwrite"
- },
- {
- "stream": {
- "name": "top_reviews",
- "json_schema": {},
- "supported_sync_modes": ["full_refresh"]
- },
- "sync_mode": "full_refresh",
- "destination_sync_mode": "overwrite"
- },
{
"stream": {
"name": "unsubscribers",
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index f950261ad2b0..bd4393f0f51a 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -112,40 +112,6 @@ definitions:
$parameters:
path: "/emails/{{ config['app_key'] }}/export/raw_data?token={{ config['access_token'] }}"
- reviews_bottomline_stream:
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["response"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/yotpo_stream_plain_requester"
- name: "reviews_bottomline"
- $parameters:
- path: "/products/{{ config['app_key'] }}/yotpo_site_reviews/bottomline"
-
- top_reviews_stream:
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["reviews"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/yotpo_stream_plain_requester"
- name: "top_reviews"
- $parameters:
- path: "/apps/{{ config['app_key'] }}/top_reviews"
-
unsubscribers_stream:
type: DeclarativeStream
retriever:
@@ -201,8 +167,6 @@ streams:
- "#/definitions/email_analytics_stream"
- "#/definitions/raw_data_stream"
- "#/definitions/reviews_stream"
- - "#/definitions/reviews_bottomline_stream"
- - "#/definitions/top_reviews_stream"
- "#/definitions/webhooks_stream"
- "#/definitions/unsubscribers_stream"
- "#/definitions/webhook_events_stream"
@@ -213,8 +177,6 @@ check:
- "email_analytics"
- "raw_data"
- "reviews"
- - "reviews_bottomline"
- - "top_reviews"
- "unsubscribers"
- "webhooks"
- "webhook_events"
diff --git a/docs/integrations/sources/yotpo.md b/docs/integrations/sources/yotpo.md
index eb9d657b4224..037b1c09de38 100644
--- a/docs/integrations/sources/yotpo.md
+++ b/docs/integrations/sources/yotpo.md
@@ -52,8 +52,6 @@ The Yotpo source connector supports the following [sync modes](https://docs.airb
- email_analytics
- raw_data
- reviews
-- reviews_bottomline
-- top_reviews
- unsubscribers
- webhooks
- webhook_events
From 479504e17c8d3124951adb9884c4093b9c7baff9 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Sun, 23 Apr 2023 09:33:16 +0530
Subject: [PATCH 090/187] make common base and extractor
---
.../source-yotpo/source_yotpo/manifest.yaml | 39 ++++++++++++-------
1 file changed, 24 insertions(+), 15 deletions(-)
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index bd4393f0f51a..edaca95b3326 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -1,6 +1,10 @@
version: "0.29.0"
definitions:
+ yotpo_extractor:
+ type: DpathExtractor
+ field_path: ["reviews"]
+
yotpo_stream_requester:
type: HttpRequester
url_base: "https://api.yotpo.com/v1"
@@ -36,30 +40,35 @@ definitions:
request_parameters:
utoken: "{{ config['access_token'] }}"
- reviews_stream:
+ yotpo_paginator:
+ type: "DefaultPaginator"
+ page_size_option:
+ type: "RequestOption"
+ inject_into: "request_parameter"
+ field_name: "count"
+ pagination_strategy:
+ type: "OffsetIncrement"
+ page_size: 1
+ page_token_option:
+ type: "RequestOption"
+ field_name: "page"
+ inject_into: "request_parameter"
+
+ yotpo_base:
type: DeclarativeStream
retriever:
type: SimpleRetriever
record_selector:
type: RecordSelector
extractor:
- type: DpathExtractor
- field_path: ["reviews"]
+ $ref: "#/definitions/yotpo_extractor"
paginator:
- type: "DefaultPaginator"
- page_size_option:
- type: "RequestOption"
- inject_into: "request_parameter"
- field_name: "count"
- pagination_strategy:
- type: "OffsetIncrement"
- page_size: 1
- page_token_option:
- type: "RequestOption"
- field_name: "page"
- inject_into: "request_parameter"
+ $ref: "#/definitions/yotpo_paginator"
requester:
$ref: "#/definitions/yotpo_stream_requester"
+
+ reviews_stream:
+ $ref: "#/definitions/yotpo_base"
incremental_sync:
type: DatetimeBasedCursor
cursor_field: "updated_at"
From b8a0e49b624d878e0f88c43fff366e579192d657 Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Sun, 23 Apr 2023 12:25:50 +0530
Subject: [PATCH 091/187] refactor, Checkpoint for full test passed
---
.../integration_tests/abnormal_state.json | 2 +-
.../integration_tests/expected_records.jsonl | 2 +-
.../integration_tests/sample_state.json | 2 +-
.../source-yotpo/source_yotpo/manifest.yaml | 34 +++++++++----------
.../schemas/reviews_bottomline.json | 19 -----------
.../source_yotpo/schemas/top_reviews.json | 27 ---------------
6 files changed, 19 insertions(+), 67 deletions(-)
delete mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
delete mode 100644 airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/abnormal_state.json
index d79c484ff6b4..c044edae2326 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/abnormal_state.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/abnormal_state.json
@@ -2,7 +2,7 @@
{
"type": "STREAM",
"stream": {
- "stream_state": { "updated_at": "2099-04-12T18:13:36.000Z" },
+ "stream_state": { "created_at": "2099-04-12T18:13:36.000Z" },
"stream_descriptor": { "name": "reviews" }
}
}
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl
index b4a93e4c2d9f..b1a5d4649bc6 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/expected_records.jsonl
@@ -1 +1 @@
-{"stream": "reviews", "data":{"id":460312221,"title":"Great Phone","content":"It’s really good","score":5,"votes_up":0,"votes_down":0,"created_at":"2023-04-12T18:13:47.000Z","updated_at":"2023-04-17T17:10:34.000Z","sentiment":0.960069,"sku":"13","name":"John S.","email":"john@shop.com","reviewer_type":"anonymous_user","deleted":false,"archived":false,"escalated":false,"is_incentivized":false}, "emitted_at": 1679051186833}
+{"stream": "reviews", "data":{"id":463555946,"title":"Great Phone","content":"It’s really good","score":5,"votes_up":0,"votes_down":0,"created_at":"2023-04-23T06:14:19.000Z","updated_at":"2023-04-23T06:16:57.000Z","sentiment":0.960069,"sku":"23","name":"John S.","email":"moles57397@snowlash.com","reviewer_type":"verified_reviewer","deleted":false,"archived":false,"escalated":false,"is_incentivized":false}, "emitted_at": 1679051186823}
diff --git a/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_state.json b/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_state.json
index e572e343696f..0c018bd01cfc 100644
--- a/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_state.json
+++ b/airbyte-integrations/connectors/source-yotpo/integration_tests/sample_state.json
@@ -2,7 +2,7 @@
{
"type": "STREAM",
"stream": {
- "stream_state": { "updated_at": "2023-04-12T18:13:36.000Z" },
+ "stream_state": { "created_at": "2023-04-12T18:13:36.000Z" },
"stream_descriptor": { "name": "reviews" }
}
}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index edaca95b3326..92bfe6504ccc 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -3,7 +3,7 @@ version: "0.29.0"
definitions:
yotpo_extractor:
type: DpathExtractor
- field_path: ["reviews"]
+ field_path: ["{{ parameters['extractorPath'] }}"]
yotpo_stream_requester:
type: HttpRequester
@@ -25,14 +25,6 @@ definitions:
type: BearerAuthenticator
api_token: "{{ config['access_token'] }}"
- privacy_stream_requester:
- type: HttpRequester
- url_base: "https://api.yotpo.com/privacy"
- http_method: "GET"
- request_parameters:
- utoken: "{{ config['access_token'] }}"
- email: "{{ config['email'] }}"
-
analytics_stream_requester:
type: HttpRequester
url_base: "https://api.yotpo.com/analytics/v1"
@@ -68,10 +60,14 @@ definitions:
$ref: "#/definitions/yotpo_stream_requester"
reviews_stream:
+ $parameters:
+ extractorPath: "reviews"
+ paginatorAvailability: "true"
+ path: "/apps/{{ config['app_key'] }}/reviews"
$ref: "#/definitions/yotpo_base"
incremental_sync:
type: DatetimeBasedCursor
- cursor_field: "updated_at"
+ cursor_field: "created_at"
datetime_format: "%Y-%m-%dT%H:%M:%S.%f%z"
cursor_granularity: "PT0.000001S"
lookback_window: "P31D"
@@ -84,10 +80,12 @@ definitions:
step: "P1M"
name: "reviews"
primary_key: "id"
- $parameters:
- path: "/apps/{{ config['app_key'] }}/reviews"
email_analytics_stream:
+ $parameters:
+ extractorPath: "date_series_points"
+ paginatorAvailability: "false"
+ path: "/emails/{{ config['app_key'] }}/emails_sent"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -101,10 +99,12 @@ definitions:
requester:
$ref: "#/definitions/analytics_stream_requester"
name: "email_analytics"
- $parameters:
- path: "/emails/{{ config['app_key'] }}/emails_sent?token={{ config['access_token'] }}"
raw_data_stream:
+ $parameters:
+ extractorPath: "records"
+ paginatorAvailability: "false"
+ path: "/emails/{{ config['app_key'] }}/export/raw_data"
type: DeclarativeStream
retriever:
type: SimpleRetriever
@@ -118,8 +118,6 @@ definitions:
requester:
$ref: "#/definitions/analytics_stream_requester"
name: "raw_data"
- $parameters:
- path: "/emails/{{ config['app_key'] }}/export/raw_data?token={{ config['access_token'] }}"
unsubscribers_stream:
type: DeclarativeStream
@@ -136,7 +134,7 @@ definitions:
$ref: "#/definitions/yotpo_stream_plain_requester"
name: "unsubscribers"
$parameters:
- path: "/apps/{{ config['app_key'] }}/unsubscribers?utoken={{ config['access_token'] }}"
+ path: "/apps/{{ config['app_key'] }}/unsubscribers"
webhook_events_stream:
type: DeclarativeStream
@@ -153,7 +151,7 @@ definitions:
$ref: "#/definitions/yotpo_stream_plain_requester"
name: "webhook_events"
$parameters:
- path: "/webhook_events?utoken={{ config['access_token'] }}"
+ path: "/webhook_events"
webhooks_stream:
type: DeclarativeStream
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
deleted file mode 100644
index 796cda50d838..000000000000
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/reviews_bottomline.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Reviews Bottomline",
- "additionalProperties": true,
- "type": "object",
- "properties": {
- "bottomline": {
- "type": "object",
- "properties": {
- "average_score": {
- "type": ["null", "number"]
- },
- "total_reviews": {
- "type": ["null", "number"]
- }
- }
- }
- }
-}
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json b/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
deleted file mode 100644
index a9048548d365..000000000000
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/schemas/top_reviews.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Top Reviews Schema",
- "additionalProperties": true,
- "type": "object",
- "properties": {
- "image_url": {
- "type": ["null", "string"]
- },
- "score": {
- "type": ["null", "number"]
- },
- "title": {
- "type": ["null", "string"]
- },
- "content": {
- "type": ["null", "string"]
- },
- "product_url": {
- "type": ["null", "string"]
- },
- "created_at": {
- "type": ["null", "string"],
- "format": "date-time"
- }
- }
-}
From 65ad3b1317dbe51d65ec1d409975b2c531b7c3fe Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Mon, 24 Apr 2023 00:06:30 +0530
Subject: [PATCH 092/187] refactor base, requester, paginator
---
.../source-yotpo/acceptance-test-config.yml | 4 +
.../source-yotpo/source_yotpo/manifest.yaml | 121 ++++++------------
2 files changed, 41 insertions(+), 84 deletions(-)
diff --git a/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml b/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
index 3d6623e9ee52..1d6d15b88725 100644
--- a/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
+++ b/airbyte-integrations/connectors/source-yotpo/acceptance-test-config.yml
@@ -23,6 +23,10 @@ acceptance_tests:
bypass_reason: "Sandbox account cannot seed the endpoint"
- name: "unsubscribers"
bypass_reason: "Sandbox account cannot seed the endpoint"
+ - name: "webhooks"
+ bypass_reason: "Sandbox account cannot seed the endpoint"
+ - name: "webhook_events"
+ bypass_reason: "Sandbox account cannot seed the endpoint"
expect_records:
path: "integration_tests/expected_records.jsonl"
extra_fields: no
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index 92bfe6504ccc..64fdf9e9e908 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -7,27 +7,7 @@ definitions:
yotpo_stream_requester:
type: HttpRequester
- url_base: "https://api.yotpo.com/v1"
- http_method: "GET"
- request_parameters:
- utoken: "{{ config['access_token'] }}"
- authenticator:
- type: BearerAuthenticator
- api_token: "{{ config['access_token'] }}"
-
- yotpo_stream_plain_requester:
- type: HttpRequester
- url_base: "https://api.yotpo.com"
- http_method: "GET"
- request_parameters:
- utoken: "{{ config['access_token'] }}"
- authenticator:
- type: BearerAuthenticator
- api_token: "{{ config['access_token'] }}"
-
- analytics_stream_requester:
- type: HttpRequester
- url_base: "https://api.yotpo.com/analytics/v1"
+ url_base: "{{ parameters['requesterUrl'] }}"
http_method: "GET"
request_parameters:
utoken: "{{ config['access_token'] }}"
@@ -59,11 +39,25 @@ definitions:
requester:
$ref: "#/definitions/yotpo_stream_requester"
+ yotpo_base_without_pagination:
+ type: DeclarativeStream
+ retriever:
+ type: SimpleRetriever
+ record_selector:
+ type: RecordSelector
+ extractor:
+ $ref: "#/definitions/yotpo_extractor"
+ paginator:
+ type: NoPagination
+ requester:
+ $ref: "#/definitions/yotpo_stream_requester"
+
reviews_stream:
$parameters:
extractorPath: "reviews"
paginatorAvailability: "true"
path: "/apps/{{ config['app_key'] }}/reviews"
+ requesterUrl: "https://api.yotpo.com/v1"
$ref: "#/definitions/yotpo_base"
incremental_sync:
type: DatetimeBasedCursor
@@ -86,18 +80,8 @@ definitions:
extractorPath: "date_series_points"
paginatorAvailability: "false"
path: "/emails/{{ config['app_key'] }}/emails_sent"
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["date_series_points"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/analytics_stream_requester"
+ requesterUrl: "https://api.yotpo.com/analytics/v1"
+ $ref: "#/definitions/yotpo_base_without_pagination"
name: "email_analytics"
raw_data_stream:
@@ -105,70 +89,39 @@ definitions:
extractorPath: "records"
paginatorAvailability: "false"
path: "/emails/{{ config['app_key'] }}/export/raw_data"
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["records"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/analytics_stream_requester"
+ requesterUrl: "https://api.yotpo.com/analytics/v1"
+ $ref: "#/definitions/yotpo_base_without_pagination"
name: "raw_data"
unsubscribers_stream:
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["response", "unsubscribers"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/yotpo_stream_plain_requester"
- name: "unsubscribers"
$parameters:
+ extractorPath: |
+ "response", "unsubscribers"
+ paginatorAvailability: "true"
+ requesterUrl: "https://api.yotpo.com"
path: "/apps/{{ config['app_key'] }}/unsubscribers"
+ $ref: "#/definitions/yotpo_base"
+ name: "unsubscribers"
webhook_events_stream:
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["response", "webhook_events"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/yotpo_stream_plain_requester"
- name: "webhook_events"
$parameters:
+ extractorPath: |
+ "response", "webhook_events"
+ paginatorAvailability: "false"
+ requesterUrl: "https://api.yotpo.com"
path: "/webhook_events"
+ $ref: "#/definitions/yotpo_base_without_pagination"
+ name: "webhook_events"
webhooks_stream:
- type: DeclarativeStream
- retriever:
- type: SimpleRetriever
- record_selector:
- type: RecordSelector
- extractor:
- type: DpathExtractor
- field_path: ["response", "webhooks"]
- paginator:
- type: NoPagination
- requester:
- $ref: "#/definitions/yotpo_stream_plain_requester"
- name: "webhooks"
$parameters:
+ extractorPath: |
+ "response", "webhooks"
+ paginatorAvailability: "false"
+ requesterUrl: "https://api.yotpo.com"
path: "/apps/{{ config['app_key'] }}/webhooks"
+ $ref: "#/definitions/yotpo_base_without_pagination"
+ name: "webhooks"
streams:
- "#/definitions/email_analytics_stream"
From 57a681cd15ca7433411002212aaa4b3a5ab72f9a Mon Sep 17 00:00:00 2001
From: btkcodedev
Date: Mon, 24 Apr 2023 00:07:33 +0530
Subject: [PATCH 093/187] remove extra paginator property
---
.../connectors/source-yotpo/source_yotpo/manifest.yaml | 6 ------
1 file changed, 6 deletions(-)
diff --git a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
index 64fdf9e9e908..518ebaf4bbca 100644
--- a/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
+++ b/airbyte-integrations/connectors/source-yotpo/source_yotpo/manifest.yaml
@@ -55,7 +55,6 @@ definitions:
reviews_stream:
$parameters:
extractorPath: "reviews"
- paginatorAvailability: "true"
path: "/apps/{{ config['app_key'] }}/reviews"
requesterUrl: "https://api.yotpo.com/v1"
$ref: "#/definitions/yotpo_base"
@@ -78,7 +77,6 @@ definitions:
email_analytics_stream:
$parameters:
extractorPath: "date_series_points"
- paginatorAvailability: "false"
path: "/emails/{{ config['app_key'] }}/emails_sent"
requesterUrl: "https://api.yotpo.com/analytics/v1"
$ref: "#/definitions/yotpo_base_without_pagination"
@@ -87,7 +85,6 @@ definitions:
raw_data_stream:
$parameters:
extractorPath: "records"
- paginatorAvailability: "false"
path: "/emails/{{ config['app_key'] }}/export/raw_data"
requesterUrl: "https://api.yotpo.com/analytics/v1"
$ref: "#/definitions/yotpo_base_without_pagination"
@@ -97,7 +94,6 @@ definitions:
$parameters:
extractorPath: |
"response", "unsubscribers"
- paginatorAvailability: "true"
requesterUrl: "https://api.yotpo.com"
path: "/apps/{{ config['app_key'] }}/unsubscribers"
$ref: "#/definitions/yotpo_base"
@@ -107,7 +103,6 @@ definitions:
$parameters:
extractorPath: |
"response", "webhook_events"
- paginatorAvailability: "false"
requesterUrl: "https://api.yotpo.com"
path: "/webhook_events"
$ref: "#/definitions/yotpo_base_without_pagination"
@@ -117,7 +112,6 @@ definitions:
$parameters:
extractorPath: |
"response", "webhooks"
- paginatorAvailability: "false"
requesterUrl: "https://api.yotpo.com"
path: "/apps/{{ config['app_key'] }}/webhooks"
$ref: "#/definitions/yotpo_base_without_pagination"
From 9f05a279a35c382c9f5a2461772308772e829b40 Mon Sep 17 00:00:00 2001
From: Akash Kulkarni <113392464+akashkulk@users.noreply.github.com>
Date: Sun, 16 Apr 2023 15:38:10 -0700
Subject: [PATCH 094/187] Cleanup some logging in connectors (#25227)
---
.../integrations/source/jdbc/AbstractJdbcSource.java | 2 +-
.../integrations/source/postgres/PostgresSource.java | 4 ++--
.../source/relationaldb/state/CursorManager.java | 7 +++++--
3 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/airbyte-integrations/connectors/source-jdbc/src/main/java/io/airbyte/integrations/source/jdbc/AbstractJdbcSource.java b/airbyte-integrations/connectors/source-jdbc/src/main/java/io/airbyte/integrations/source/jdbc/AbstractJdbcSource.java
index a6fbd6c721f1..54c90053a960 100644
--- a/airbyte-integrations/connectors/source-jdbc/src/main/java/io/airbyte/integrations/source/jdbc/AbstractJdbcSource.java
+++ b/airbyte-integrations/connectors/source-jdbc/src/main/java/io/airbyte/integrations/source/jdbc/AbstractJdbcSource.java
@@ -179,7 +179,7 @@ protected List>> discoverInternal(final JdbcData
.map(f -> {
final Datatype datatype = sourceOperations.getDatabaseFieldType(f);
final JsonSchemaType jsonType = getAirbyteType(datatype);
- LOGGER.info("Table {} column {} (type {}[{}], nullable {}) -> {}",
+ LOGGER.debug("Table {} column {} (type {}[{}], nullable {}) -> {}",
fields.get(0).get(INTERNAL_TABLE_NAME).asText(),
f.get(INTERNAL_COLUMN_NAME).asText(),
f.get(INTERNAL_COLUMN_TYPE_NAME).asText(),
diff --git a/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java b/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java
index 0cd24929addd..964f286a20b0 100644
--- a/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java
+++ b/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java
@@ -240,11 +240,11 @@ public List>> discoverRawTables(final JdbcDa
// process explicitly selected (from UI) schemas
final List>> internals = new ArrayList<>();
for (final String schema : schemas) {
- LOGGER.info("Checking schema: {}", schema);
+ LOGGER.debug("Checking schema: {}", schema);
final List>> tables = super.discoverInternal(database, schema);
internals.addAll(tables);
for (final TableInfo> table : tables) {
- LOGGER.info("Found table: {}.{}", table.getNameSpace(), table.getName());
+ LOGGER.debug("Found table: {}.{}", table.getNameSpace(), table.getName());
}
}
return internals;
diff --git a/airbyte-integrations/connectors/source-relational-db/src/main/java/io/airbyte/integrations/source/relationaldb/state/CursorManager.java b/airbyte-integrations/connectors/source-relational-db/src/main/java/io/airbyte/integrations/source/relationaldb/state/CursorManager.java
index 9abad55dd46c..158c8f6f62d5 100644
--- a/airbyte-integrations/connectors/source-relational-db/src/main/java/io/airbyte/integrations/source/relationaldb/state/CursorManager.java
+++ b/airbyte-integrations/connectors/source-relational-db/src/main/java/io/airbyte/integrations/source/relationaldb/state/CursorManager.java
@@ -163,8 +163,11 @@ protected CursorInfo createCursorInfoForStream(final AirbyteStreamNameNamespaceP
if (stateOptional.map(cursorFieldFunction).equals(streamOptional.map(ConfiguredAirbyteStream::getCursorField))) {
cursor = stateOptional.map(cursorFunction).orElse(null);
cursorRecordCount = stateOptional.map(cursorRecordCountFunction).orElse(0L);
- LOGGER.info("Found matching cursor in state. Stream: {}. Cursor Field: {} Value: {} Count: {}",
- pair, cursorField, cursor, cursorRecordCount);
+ // If a matching cursor is found in the state, and it's value is null - this indicates a CDC stream and we shouldn't log anything.
+ if (cursor != null) {
+ LOGGER.info("Found matching cursor in state. Stream: {}. Cursor Field: {} Value: {} Count: {}",
+ pair, cursorField, cursor, cursorRecordCount);
+ }
// if cursor field in catalog and state are different.
} else {
cursor = null;
From 7fc4bd8ad78eaffe615292816f61b7373b65b6a1 Mon Sep 17 00:00:00 2001
From: Ivica Taseski
Date: Mon, 17 Apr 2023 17:44:51 +0200
Subject: [PATCH 095/187] =?UTF-8?q?=F0=9F=8E=89=20New=20Source:=20Teradata?=
=?UTF-8?q?=20(#24221)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* add teradata template
* add teradata environment client
* add teradata source connector
* add docs
* fix lowercase letter
* fix compilation error & config test
* fix timestamp
* generate seed
---------
Co-authored-by: Prateek Mukhedkar <123108018+prateekmukhedkar@users.noreply.github.com>
---
.../resources/seed/source_definitions.yaml | 11 +
.../src/main/resources/seed/source_specs.yaml | 174 ++++++++++++++++
airbyte-integrations/builds.md | 27 +--
.../jdbc/test/JdbcSourceAcceptanceTest.java | 27 ++-
.../connectors/source-teradata/Dockerfile | 21 ++
.../connectors/source-teradata/README.md | 69 +++++++
.../acceptance-test-config.yml | 8 +
.../source-teradata/acceptance-test-docker.sh | 15 ++
.../connectors/source-teradata/build.gradle | 30 +++
.../integration_tests/acceptance.py | 16 ++
.../source/teradata/TeradataSource.java | 176 ++++++++++++++++
.../teradata/TeradataSourceOperations.java | 114 +++++++++++
.../source/teradata/envclient/Headers.java | 18 ++
.../envclient/TeradataHttpClient.java | 137 +++++++++++++
.../dto/CreateEnvironmentRequest.java | 13 ++
.../dto/DeleteEnvironmentRequest.java | 8 +
.../envclient/dto/EnvironmentResponse.java | 55 +++++
.../envclient/dto/GetEnvironmentRequest.java | 8 +
.../source/teradata/envclient/dto/Region.java | 33 +++
.../envclient/exception/BaseException.java | 36 ++++
.../exception/Error4xxException.java | 13 ++
.../exception/Error5xxException.java | 13 ++
.../src/main/resources/spec.json | 192 +++++++++++++++++
.../TeradataSourceAcceptanceTest.java | 170 +++++++++++++++
.../resources/dummy_config.json | 5 +
.../resources/expected_spec.json | 193 ++++++++++++++++++
.../TeradataJdbcSourceAcceptanceTest.java | 147 +++++++++++++
docs/integrations/sources/teradata.md | 66 ++++++
28 files changed, 1776 insertions(+), 19 deletions(-)
create mode 100644 airbyte-integrations/connectors/source-teradata/Dockerfile
create mode 100644 airbyte-integrations/connectors/source-teradata/README.md
create mode 100644 airbyte-integrations/connectors/source-teradata/acceptance-test-config.yml
create mode 100644 airbyte-integrations/connectors/source-teradata/acceptance-test-docker.sh
create mode 100644 airbyte-integrations/connectors/source-teradata/build.gradle
create mode 100644 airbyte-integrations/connectors/source-teradata/integration_tests/acceptance.py
create mode 100644 airbyte-integrations/connectors/source-teradata/src/main/java/io/airbyte/integrations/source/teradata/TeradataSource.java
create mode 100644 airbyte-integrations/connectors/source-teradata/src/main/java/io/airbyte/integrations/source/teradata/TeradataSourceOperations.java
create mode 100644 airbyte-integrations/connectors/source-teradata/src/main/java/io/airbyte/integrations/source/teradata/envclient/Headers.java
create mode 100644 airbyte-integrations/connectors/source-teradata/src/main/java/io/airbyte/integrations/source/teradata/envclient/TeradataHttpClient.java
create mode 100644 airbyte-integrations/connectors/source-teradata/src/main/java/io/airbyte/integrations/source/teradata/envclient/dto/CreateEnvironmentRequest.java
create mode 100644 airbyte-integrations/connectors/source-teradata/src/main/java/io/airbyte/integrations/source/teradata/envclient/dto/DeleteEnvironmentRequest.java
create mode 100644 airbyte-integrations/connectors/source-teradata/src/main/java/io/airbyte/integrations/source/teradata/envclient/dto/EnvironmentResponse.java
create mode 100644 airbyte-integrations/connectors/source-teradata/src/main/java/io/airbyte/integrations/source/teradata/envclient/dto/GetEnvironmentRequest.java
create mode 100644 airbyte-integrations/connectors/source-teradata/src/main/java/io/airbyte/integrations/source/teradata/envclient/dto/Region.java
create mode 100644 airbyte-integrations/connectors/source-teradata/src/main/java/io/airbyte/integrations/source/teradata/envclient/exception/BaseException.java
create mode 100644 airbyte-integrations/connectors/source-teradata/src/main/java/io/airbyte/integrations/source/teradata/envclient/exception/Error4xxException.java
create mode 100644 airbyte-integrations/connectors/source-teradata/src/main/java/io/airbyte/integrations/source/teradata/envclient/exception/Error5xxException.java
create mode 100644 airbyte-integrations/connectors/source-teradata/src/main/resources/spec.json
create mode 100644 airbyte-integrations/connectors/source-teradata/src/test-integration/java/io/airbyte/integrations/source/teradata/TeradataSourceAcceptanceTest.java
create mode 100644 airbyte-integrations/connectors/source-teradata/src/test-integration/resources/dummy_config.json
create mode 100644 airbyte-integrations/connectors/source-teradata/src/test-integration/resources/expected_spec.json
create mode 100644 airbyte-integrations/connectors/source-teradata/src/test/java/io/airbyte/integrations/source/teradata/TeradataJdbcSourceAcceptanceTest.java
create mode 100644 docs/integrations/sources/teradata.md
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
index a64030f93044..844cdde8aa7c 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
@@ -2061,6 +2061,17 @@
allowedHosts:
hosts:
- api.tempo.io
+- name: Teradata
+ sourceDefinitionId: aa8ba6fd-4875-d94e-fc8d-4e1e09aa2503
+ dockerRepository: airbyte/source-teradata
+ dockerImageTag: 0.1.0
+ documentationUrl: https://docs.airbyte.com/integrations/sources/teradata
+ icon: teradata.svg
+ sourceType: database
+ releaseStage: alpha
+ allowedHosts:
+ hosts:
+ - "${host}"
- name: TiDB
sourceDefinitionId: 0dad1a35-ccf8-4d03-b73e-6788c00b13ae
dockerRepository: airbyte/source-tidb
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
index 46b1b8047c3e..0424a3217e76 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
@@ -15429,6 +15429,180 @@
supportsNormalization: false
supportsDBT: false
supported_destination_sync_modes: []
+- dockerImage: "airbyte/source-teradata:0.1.0"
+ spec:
+ documentationUrl: "https://docs.airbyte.com/integrations/sources/teradata"
+ connectionSpecification:
+ $schema: "http://json-schema.org/draft-07/schema#"
+ title: "Teradata Source Spec"
+ type: "object"
+ required:
+ - "host"
+ - "database"
+ - "username"
+ properties:
+ host:
+ title: "Host"
+ description: "Hostname of the database."
+ type: "string"
+ order: 0
+ port:
+ title: "Port"
+ description: "Port of the database."
+ type: "integer"
+ minimum: 0
+ maximum: 65536
+ default: 3306
+ examples:
+ - "3306"
+ order: 1
+ database:
+ title: "Database"
+ description: "Name of the database."
+ type: "string"
+ order: 2
+ username:
+ title: "Username"
+ description: "Username to use to access the database."
+ type: "string"
+ order: 3
+ password:
+ title: "Password"
+ description: "Password associated with the username."
+ type: "string"
+ airbyte_secret: true
+ order: 4
+ jdbc_url_params:
+ title: "JDBC URL params"
+ description: "Additional properties to pass to the JDBC URL string when\
+ \ connecting to the database formatted as 'key=value' pairs separated\
+ \ by the symbol '&'. (example: key1=value1&key2=value2&key3=value3)"
+ type: "string"
+ order: 5
+ replication_method:
+ title: "Replication method"
+ description: "Replication method to use for extracting data from the database.\
+ \ STANDARD replication requires no setup on the DB side but will not be\
+ \ able to represent deletions incrementally. CDC uses the Binlog to detect\
+ \ inserts, updates, and deletes. This needs to be configured on the source\
+ \ database itself."
+ type: "string"
+ order: 6
+ default: "STANDARD"
+ enum:
+ - "STANDARD"
+ - "CDC"
+ ssl:
+ title: "SSL Connection"
+ description: "Encrypt data using SSL. When activating SSL, please select\
+ \ one of the connection modes."
+ type: "boolean"
+ default: false
+ order: 7
+ ssl_mode:
+ title: "SSL Modes"
+ description: "SSL connection modes. \n disable - Chose this mode\
+ \ to disable encryption of communication between Airbyte and destination\
+ \ database\n allow - Chose this mode to enable encryption only\
+ \ when required by the destination database\n prefer - Chose this\
+ \ mode to allow unencrypted connection only if the destination database\
+ \ does not support encryption\n require - Chose this mode to always\
+ \ require encryption. If the destination database server does not support\
+ \ encryption, connection will fail\n verify-ca - Chose this mode\
+ \ to always require encryption and to verify that the destination database\
+ \ server has a valid SSL certificate\n verify-full - This is the\
+ \ most secure mode. Chose this mode to always require encryption and to\
+ \ verify the identity of the destination database server\n See more information\
+ \ - in the docs."
+ type: "object"
+ order: 8
+ oneOf:
+ - title: "disable"
+ additionalProperties: true
+ description: "Disable SSL."
+ required:
+ - "mode"
+ properties:
+ mode:
+ type: "string"
+ const: "disable"
+ order: 0
+ - title: "allow"
+ additionalProperties: true
+ description: "Allow SSL mode."
+ required:
+ - "mode"
+ properties:
+ mode:
+ type: "string"
+ const: "allow"
+ order: 0
+ - title: "prefer"
+ additionalProperties: true
+ description: "Prefer SSL mode."
+ required:
+ - "mode"
+ properties:
+ mode:
+ type: "string"
+ const: "prefer"
+ order: 0
+ - title: "require"
+ additionalProperties: true
+ description: "Require SSL mode."
+ required:
+ - "mode"
+ properties:
+ mode:
+ type: "string"
+ const: "require"
+ order: 0
+ - title: "verify-ca"
+ additionalProperties: true
+ description: "Verify-ca SSL mode."
+ required:
+ - "mode"
+ - "ssl_ca_certificate"
+ properties:
+ mode:
+ type: "string"
+ const: "verify-ca"
+ order: 0
+ ssl_ca_certificate:
+ type: "string"
+ title: "CA certificate"
+ description: "Specifies the file name of a PEM file that contains\
+ \ Certificate Authority (CA) certificates for use with SSLMODE=verify-ca.\n\
+ \ See more information - in the docs."
+ airbyte_secret: true
+ multiline: true
+ order: 1
+ - title: "verify-full"
+ additionalProperties: true
+ description: "Verify-full SSL mode."
+ required:
+ - "mode"
+ - "ssl_ca_certificate"
+ properties:
+ mode:
+ type: "string"
+ const: "verify-full"
+ order: 0
+ ssl_ca_certificate:
+ type: "string"
+ title: "CA certificate"
+ description: "Specifies the file name of a PEM file that contains\
+ \ Certificate Authority (CA) certificates for use with SSLMODE=verify-full.\n\
+ \ See more information - in the docs."
+ airbyte_secret: true
+ multiline: true
+ order: 1
+ supportsNormalization: false
+ supportsDBT: false
+ supported_destination_sync_modes: []
- dockerImage: "airbyte/source-tidb:0.2.4"
spec:
documentationUrl: "https://docs.airbyte.com/integrations/sources/tidb"
diff --git a/airbyte-integrations/builds.md b/airbyte-integrations/builds.md
index 1a1d75ef7d90..647584fd328d 100644
--- a/airbyte-integrations/builds.md
+++ b/airbyte-integrations/builds.md
@@ -3,8 +3,8 @@
# Sources
-| name | status |
-|:-------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| name | status |
+|:-------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 3PL Central | [![source-amazon-seller-partner](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-tplcentral%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-tplcentral) |
| Adjust | [![source-adjust](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-adjust%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-adjust) |
| Airtable | [![source-airtable](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-airtable%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-airtable) |
@@ -12,7 +12,7 @@
| Amazon Seller Partner | [![source-amazon-seller-partner](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-amazon-seller-partner%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-amazon-seller-partner) |
| Amplitude | [![source-amplitude](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-amplitude%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-amplitude) |
| Apify Dataset | [![source-amplitude](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-apify-dataset%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-apify-dataset) |
-| AppsFlyer | [![source-appsflyer](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-appsflyer%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-appsflyer-singer) |
+| AppsFlyer | [![source-appsflyer](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-appsflyer%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-appsflyer-singer) |
| App Store | [![source-appstore-singer](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-appstore-singer%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-appstore-singer) |
| Asana | [![source-asana](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-asana%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-asana) |
| Ashby | [![source-ashby](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-ashby%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-ashby) |
@@ -61,7 +61,7 @@
| IBM Db2 | [![source-db2](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-db2%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-db2) |
| Insightly | [![source-insightly](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-insightly%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-insightly) |
| Instagram | [![source-instagram](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-instagram%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-instagram) |
-| Intercom | [![source-intercom](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-intercom%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-intercom) |
+| Intercom | [![source-intercom](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-intercom%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-intercom) |
| Iterable | [![source-iterable](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-iterable%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-iterable) |
| Jira | [![source-jira](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-jira%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-jira) |
| LinkedIn Ads | [![source-linkedin-ads](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-linkedin-ads%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-linkedin-ads) |
@@ -103,7 +103,7 @@
| Posthog | [![source-posthog](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-posthog%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-posthog) |
| PrestaShop | [![source-prestashop](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-prestashop%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-prestashop) |
| Primetric | [![source-primetric](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-primetric%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-primetric) |
-| PyPI | [![source-public-apis](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fsource-pypi%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-pypi) |
+| PyPI | [![source-public-apis](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fsource-pypi%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-pypi) |
| Public APIs | [![source-public-apis](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-public-apis%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-public-apis) |
| CockroachDb | [![source-cockroachdb](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-cockroachdb%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-cockroachdb) |
| Confluence | [![source-confluence](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-confluence%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-confluence) |
@@ -139,9 +139,9 @@
| US Census | [![source-us-census](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-us-census%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-us-census) |
| Vitally | [![source-vitally](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-vitally%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-vitally) |
| Visma e-conomics | [![source-visma-economic](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-visma-economic%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-us-census) |
-| Waiteraid | [![source-waiteraid](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-waiteraid%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-waiteraid) |
+| Waiteraid | [![source-waiteraid](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-waiteraid%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-waiteraid) |
| Whisky Hunter | [![source-whisky-hunter](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-whisky-hunter%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-whisky-hunter) |
-| Workramp | [![source-workramp](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-workramp%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-workramp) |
+| Workramp | [![source-workramp](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-workramp%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-workramp) |
| Wrike | [![source-wrike](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-wrike%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-wrike) |
| YouTube Analytics | [![source-youtube-analytics](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-youtube-analytics%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-youtube-analytics) |
| Weatherstack | [![source-weatherstack](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-weatherstack%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-weatherstack) |
@@ -152,11 +152,12 @@
| Zendesk Talk | [![source-zendesk-talk](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-zendesk-talk%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-zendesk-talk) |
| Zoom | [![source-zoom-singer](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-zoom-singer%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-zoom-singer) |
| Zuora | [![source-zuora](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fsource-zuora%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/source-zuora) |
+| Teradata | (Not Setup) |
# Destinations
-| name | status |
-|:---------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| name | status |
+|:---------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Azure Blob Storage | [![destination-azure-blob-storage](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-azure-blob-storage%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-azure-blob-storage) |
| BigQuery | [![destination-bigquery](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-bigquery%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-bigquery) |
| BigQuery Denormalized | [![destination-bigquery-denormalized](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-bigquery-denormalized%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-bigquery-denormalized) |
@@ -164,13 +165,13 @@
| Cassandra | [![destination-cassandra](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-cassandra%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-cassandra) |
| Databricks | [![destination-databricks](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-databricks%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-databricks) |
| Dev Null | [![destination-dev-null](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-dev-null%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-dev-null) |
-| Elasticsearch | [![destination-elasticsearch](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-elasticsearch%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-elasticsearch) |
+| Elasticsearch | [![destination-elasticsearch](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-elasticsearch%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-elasticsearch) |
| End-to-End Testing | [![destination-e2e-test](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-e2e-test%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-e2e-test) |
| Exasol | [![destination-exasol](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-exasol%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-exasol) |
| Google Cloud Storage (GCS) | [![destination-gcs](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-gcs%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-gcs) |
| Google Firestore | [![destination-firestore](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-firestore%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-firestore) |
| Google PubSub | [![destination-pubsub](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-pubsub%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-pubsub) |
-| Google Sheets | [![destination-google-sheets](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-google-sheets%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-google-sheets) | |
+| Google Sheets | [![destination-google-sheets](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-google-sheets%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-google-sheets) |
| Apache Iceberg | [![destination-iceberg](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-iceberg%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-iceberg) |
| Kafka | [![destination-kafka](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-kafka%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-kafka) |
| Keen (Chargify) | [![destination-keen](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-keen%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-keen) |
@@ -184,7 +185,7 @@
| Oracle | [![destination-oracle](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-oracle%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-oracle) |
| Postgres | [![destination-postgres](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-postgres%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-postgres) |
| Pulsar | [![destination-pulsar](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-pulsar%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-pulsar) |
-| R2 | [![destination-r2](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-r2%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-r2) |
+| R2 | [![destination-r2](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-r2%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-r2) |
| Redshift | [![destination-redshift](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-redshift%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-redshift) |
| Rockset | [![destination-rockset](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-rockset%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-rockset) |
| S3 | [![destination-s3](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-s3%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-s3) |
@@ -192,4 +193,4 @@
| SFTP-JSON | [![destination-sftp-json](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-sftp-json%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-sftp-json) |
| Snowflake | [![destination-snowflake](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-snowflake%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-snowflake) |
| Teradata | [![destination-teradata](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-teradata%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-teradata) |
-| TiDB | [![destination-tidb](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-tidb%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-tidb) |
\ No newline at end of file
+| TiDB | [![destination-tidb](https://img.shields.io/endpoint?url=https%3A%2F%2Fdnsgjos7lj2fu.cloudfront.net%2Ftests%2Fsummary%2Fconnectors%2Fdestination-tidb%2Fbadge.json)](https://dnsgjos7lj2fu.cloudfront.net/tests/summary/connectors/destination-tidb) |
diff --git a/airbyte-integrations/connectors/source-jdbc/src/testFixtures/java/io/airbyte/integrations/source/jdbc/test/JdbcSourceAcceptanceTest.java b/airbyte-integrations/connectors/source-jdbc/src/testFixtures/java/io/airbyte/integrations/source/jdbc/test/JdbcSourceAcceptanceTest.java
index f922d27b1db2..bba9eca3db41 100644
--- a/airbyte-integrations/connectors/source-jdbc/src/testFixtures/java/io/airbyte/integrations/source/jdbc/test/JdbcSourceAcceptanceTest.java
+++ b/airbyte-integrations/connectors/source-jdbc/src/testFixtures/java/io/airbyte/integrations/source/jdbc/test/JdbcSourceAcceptanceTest.java
@@ -389,7 +389,8 @@ protected AirbyteCatalog filterOutOtherSchemas(final AirbyteCatalog catalog) {
@Test
void testDiscoverWithMultipleSchemas() throws Exception {
// clickhouse and mysql do not have a concept of schemas, so this test does not make sense for them.
- if (getDriverClass().toLowerCase().contains("mysql") || getDriverClass().toLowerCase().contains("clickhouse")) {
+ String driverClass = getDriverClass().toLowerCase();
+ if (driverClass.contains("mysql") || driverClass.contains("clickhouse") || driverClass.contains("teradata")) {
return;
}
@@ -836,10 +837,11 @@ protected void incrementalCursorCheck(
// See https://github.com/airbytehq/airbyte/issues/14732 for rationale and details.
@Test
- void testIncrementalWithConcurrentInsertion() throws Exception {
+ public void testIncrementalWithConcurrentInsertion() throws Exception {
+ final String driverName = getDriverClass().toLowerCase();
final String namespace = getDefaultNamespace();
final String fullyQualifiedTableName = getFullyQualifiedTableName(TABLE_NAME_AND_TIMESTAMP);
- final String columnDefinition = String.format("name VARCHAR(200) NOT NULL, timestamp %s NOT NULL", COL_TIMESTAMP_TYPE);
+ final String columnDefinition = String.format("name VARCHAR(200) NOT NULL, %s %s NOT NULL", COL_TIMESTAMP, COL_TIMESTAMP_TYPE);
// 1st sync
database.execute(ctx -> {
@@ -877,7 +879,12 @@ void testIncrementalWithConcurrentInsertion() throws Exception {
.filter(r -> r.getType() == Type.RECORD)
.map(r -> r.getRecord().getData().get(COL_NAME).asText())
.toList();
- assertEquals(List.of("a", "b"), firstSyncNames);
+ // teradata doesn't make insertion order guarantee when equal ordering value
+ if (driverName.contains("teradata")) {
+ assertThat(List.of("a", "b"), Matchers.containsInAnyOrder(firstSyncNames.toArray()));
+ } else {
+ assertEquals(List.of("a", "b"), firstSyncNames);
+ }
// 2nd sync
database.execute(ctx -> {
@@ -927,7 +934,14 @@ void testIncrementalWithConcurrentInsertion() throws Exception {
.filter(r -> r.getType() == Type.RECORD)
.map(r -> r.getRecord().getData().get(COL_NAME).asText())
.toList();
- assertEquals(List.of("c", "d", "e", "f"), thirdSyncExpectedNames);
+
+ // teradata doesn't make insertion order guarantee when equal ordering value
+ if (driverName.contains("teradata")) {
+ assertThat(List.of("c", "d", "e", "f"), Matchers.containsInAnyOrder(thirdSyncExpectedNames.toArray()));
+ } else {
+ assertEquals(List.of("c", "d", "e", "f"), thirdSyncExpectedNames);
+ }
+
}
private JsonNode getStateData(final AirbyteMessage airbyteMessage, final String streamName) {
@@ -1158,7 +1172,8 @@ private String getDefaultSchemaName() {
protected String getDefaultNamespace() {
// mysql does not support schemas. it namespaces using database names instead.
- if (getDriverClass().toLowerCase().contains("mysql") || getDriverClass().toLowerCase().contains("clickhouse")) {
+ if (getDriverClass().toLowerCase().contains("mysql") || getDriverClass().toLowerCase().contains("clickhouse") ||
+ getDriverClass().toLowerCase().contains("teradata")) {
return config.get(JdbcUtils.DATABASE_KEY).asText();
} else {
return SCHEMA_NAME;
diff --git a/airbyte-integrations/connectors/source-teradata/Dockerfile b/airbyte-integrations/connectors/source-teradata/Dockerfile
new file mode 100644
index 000000000000..eec3a3ac0810
--- /dev/null
+++ b/airbyte-integrations/connectors/source-teradata/Dockerfile
@@ -0,0 +1,21 @@
+FROM airbyte/integration-base-java:dev AS build
+
+WORKDIR /airbyte
+
+ENV APPLICATION source-teradata
+
+COPY build/distributions/${APPLICATION}*.tar ${APPLICATION}.tar
+
+RUN tar xf ${APPLICATION}.tar --strip-components=1 && rm -rf ${APPLICATION}.tar
+
+FROM airbyte/integration-base-java:dev
+
+WORKDIR /airbyte
+
+ENV APPLICATION source-teradata
+
+COPY --from=build /airbyte /airbyte
+
+# Airbyte's build system uses these labels to know what to name and tag the docker images produced by this Dockerfile.
+LABEL io.airbyte.version=0.1.0
+LABEL io.airbyte.name=airbyte/source-teradata
diff --git a/airbyte-integrations/connectors/source-teradata/README.md b/airbyte-integrations/connectors/source-teradata/README.md
new file mode 100644
index 000000000000..ad9a67489aa1
--- /dev/null
+++ b/airbyte-integrations/connectors/source-teradata/README.md
@@ -0,0 +1,69 @@
+# Source Teradata
+
+This is the repository for the Teradata source connector in Java.
+For information about how to use this connector within Airbyte, see [the User Documentation](https://docs.airbyte.com/integrations/sources/teradata).
+
+## Local development
+
+#### Building via Gradle
+From the Airbyte repository root, run:
+```
+./gradlew :airbyte-integrations:connectors:source-teradata:build
+```
+
+#### Create credentials
+**If you are a community contributor**, generate the necessary credentials and place them in `secrets/config.json` conforming to the spec file in `src/main/resources/spec.json`.
+Note that the `secrets` directory is git-ignored by default, so there is no danger of accidentally checking in sensitive information.
+
+**If you are an Airbyte core member**, follow the [instructions](https://docs.airbyte.com/connector-development#using-credentials-in-ci) to set up the credentials.
+
+### Locally running the connector docker image
+
+#### Build
+Build the connector image via Gradle:
+```
+./gradlew :airbyte-integrations:connectors:source-teradata:airbyteDocker
+```
+When building via Gradle, the docker image name and tag, respectively, are the values of the `io.airbyte.name` and `io.airbyte.version` `LABEL`s in
+the Dockerfile.
+
+#### Run
+Then run any of the connector commands as follows:
+```
+docker run --rm airbyte/source-teradata:dev spec
+docker run --rm -v $(pwd)/secrets:/secrets airbyte/source-teradata:dev check --config /secrets/config.json
+docker run --rm -v $(pwd)/secrets:/secrets airbyte/source-teradata:dev discover --config /secrets/config.json
+docker run --rm -v $(pwd)/secrets:/secrets -v $(pwd)/integration_tests:/integration_tests airbyte/source-teradata:dev read --config /secrets/config.json --catalog /integration_tests/configured_catalog.json
+```
+
+## Testing
+We use `JUnit` for Java tests.
+
+### Unit and Integration Tests
+Place unit tests under `src/test/...`
+Place integration tests in `src/test-integration/...`
+
+#### Acceptance Tests
+Airbyte has a standard test suite that all source connectors must pass. Implement the `TODO`s in
+`src/test-integration/java/io/airbyte/integrations/sources/TeradataSourceAcceptanceTest.java`.
+
+### Using gradle to run tests
+All commands should be run from airbyte project root.
+To run unit tests:
+```
+./gradlew :airbyte-integrations:connectors:source-teradata:unitTest
+```
+To run acceptance and custom integration tests:
+```
+./gradlew :airbyte-integrations:connectors:source-teradata:integrationTest
+```
+
+## Dependency Management
+
+### Publishing a new version of the connector
+You've checked out the repo, implemented a million dollar feature, and you're ready to share your changes with the world. Now what?
+1. Make sure your changes are passing unit and integration tests.
+1. Bump the connector version in `Dockerfile` -- just increment the value of the `LABEL io.airbyte.version` appropriately (we use [SemVer](https://semver.org/)).
+1. Create a Pull Request.
+1. Pat yourself on the back for being an awesome contributor.
+1. Someone from Airbyte will take a look at your PR and iterate with you to merge it into master.
diff --git a/airbyte-integrations/connectors/source-teradata/acceptance-test-config.yml b/airbyte-integrations/connectors/source-teradata/acceptance-test-config.yml
new file mode 100644
index 000000000000..49f39cead0ef
--- /dev/null
+++ b/airbyte-integrations/connectors/source-teradata/acceptance-test-config.yml
@@ -0,0 +1,8 @@
+# See [Connector Acceptance Tests](https://docs.airbyte.com/connector-development/testing-connectors/connector-acceptance-tests-reference)
+# for more information about how to configure these tests
+connector_image: airbyte/source-teradata:dev
+acceptance_tests:
+ spec:
+ tests:
+ - spec_path: "src/test-integration/resources/expected_spec.json"
+ config_path: "secrets/config.json"
diff --git a/airbyte-integrations/connectors/source-teradata/acceptance-test-docker.sh b/airbyte-integrations/connectors/source-teradata/acceptance-test-docker.sh
new file mode 100644
index 000000000000..394835b93b09
--- /dev/null
+++ b/airbyte-integrations/connectors/source-teradata/acceptance-test-docker.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env sh
+
+# Build latest connector image
+docker build . -t $(cat acceptance-test-config.yml | grep "connector_image" | head -n 1 | cut -d: -f2-)
+
+# Pull latest acctest image
+docker pull airbyte/connector-acceptance-test:latest
+
+# Run
+docker run --rm -it \
+ -v /var/run/docker.sock:/var/run/docker.sock \
+ -v /tmp:/tmp \
+ -v $(pwd):/test_input \
+ airbyte/connector-acceptance-test \
+ --acceptance-test-config /test_input
diff --git a/airbyte-integrations/connectors/source-teradata/build.gradle b/airbyte-integrations/connectors/source-teradata/build.gradle
new file mode 100644
index 000000000000..47b083feee8a
--- /dev/null
+++ b/airbyte-integrations/connectors/source-teradata/build.gradle
@@ -0,0 +1,30 @@
+plugins {
+ id 'application'
+ id 'airbyte-docker'
+ id 'airbyte-integration-test-java'
+ id 'airbyte-connector-acceptance-test'
+}
+
+application {
+ mainClass = 'io.airbyte.integrations.source.teradata.TeradataSource'
+}
+
+dependencies {
+ implementation project(':airbyte-db:db-lib')
+ implementation project(':airbyte-integrations:bases:base-java')
+ implementation libs.airbyte.protocol
+ implementation project(':airbyte-integrations:connectors:source-jdbc')
+ implementation project(':airbyte-integrations:connectors:source-relational-db')
+
+ implementation 'com.teradata.jdbc:terajdbc:20.00.00.06'
+
+ testImplementation testFixtures(project(':airbyte-integrations:connectors:source-jdbc'))
+
+ testImplementation 'org.apache.commons:commons-lang3:3.11'
+
+ integrationTestJavaImplementation project(':airbyte-integrations:connectors:source-teradata')
+ integrationTestJavaImplementation project(':airbyte-integrations:bases:standard-source-test')
+
+ implementation files(project(':airbyte-integrations:bases:base-java').airbyteDocker.outputs)
+ integrationTestJavaImplementation files(project(':airbyte-integrations:bases:base-java').airbyteDocker.outputs)
+}
diff --git a/airbyte-integrations/connectors/source-teradata/integration_tests/acceptance.py b/airbyte-integrations/connectors/source-teradata/integration_tests/acceptance.py
new file mode 100644
index 000000000000..9e6409236281
--- /dev/null
+++ b/airbyte-integrations/connectors/source-teradata/integration_tests/acceptance.py
@@ -0,0 +1,16 @@
+#
+# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
+#
+
+
+import pytest
+
+pytest_plugins = ("connector_acceptance_test.plugin",)
+
+
+@pytest.fixture(scope="session", autouse=True)
+def connector_setup():
+ """This fixture is a placeholder for external resources that acceptance test might require."""
+ # TODO: setup test dependencies if needed. otherwise remove the TODO comments
+ yield
+ # TODO: clean up test dependencies
diff --git a/airbyte-integrations/connectors/source-teradata/src/main/java/io/airbyte/integrations/source/teradata/TeradataSource.java b/airbyte-integrations/connectors/source-teradata/src/main/java/io/airbyte/integrations/source/teradata/TeradataSource.java
new file mode 100644
index 000000000000..a19a01509df5
--- /dev/null
+++ b/airbyte-integrations/connectors/source-teradata/src/main/java/io/airbyte/integrations/source/teradata/TeradataSource.java
@@ -0,0 +1,176 @@
+/*
+ * Copyright (c) 2023 Airbyte, Inc., all rights reserved.
+ */
+
+package io.airbyte.integrations.source.teradata;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.google.common.collect.ImmutableMap;
+import io.airbyte.commons.json.Jsons;
+import io.airbyte.commons.map.MoreMaps;
+import io.airbyte.db.factory.DataSourceFactory;
+import io.airbyte.db.jdbc.JdbcDatabase;
+import io.airbyte.db.jdbc.JdbcUtils;
+import io.airbyte.db.jdbc.StreamingJdbcDatabase;
+import io.airbyte.db.jdbc.streaming.AdaptiveStreamingQueryConfig;
+import io.airbyte.integrations.base.IntegrationRunner;
+import io.airbyte.integrations.base.Source;
+import io.airbyte.integrations.source.jdbc.AbstractJdbcSource;
+import io.airbyte.integrations.source.jdbc.JdbcDataSourceUtils;
+import io.airbyte.integrations.source.relationaldb.TableInfo;
+import io.airbyte.protocol.models.CommonField;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.UncheckedIOException;
+import java.nio.charset.StandardCharsets;
+import java.sql.JDBCType;
+import java.sql.SQLException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import javax.sql.DataSource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class TeradataSource extends AbstractJdbcSource implements Source {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(TeradataSource.class);
+
+ private static final int INTERMEDIATE_STATE_EMISSION_FREQUENCY = 10_000;
+
+ static final String DRIVER_CLASS = "com.teradata.jdbc.TeraDriver";
+
+ public static final String PARAM_MODE = "mode";
+ public static final String PARAM_SSL = "ssl";
+ public static final String PARAM_SSL_MODE = "ssl_mode";
+ public static final String PARAM_SSLMODE = "sslmode";
+ public static final String PARAM_SSLCA = "sslca";
+ public static final String REQUIRE = "require";
+
+ private static final String CA_CERTIFICATE = "ca.pem";
+
+ public TeradataSource() {
+ super(DRIVER_CLASS, AdaptiveStreamingQueryConfig::new, new TeradataSourceOperations());
+ }
+
+ public static void main(final String[] args) throws Exception {
+ final Source source = new TeradataSource();
+ LOGGER.info("starting source: {}", TeradataSource.class);
+ new IntegrationRunner(source).run(args);
+ LOGGER.info("completed source: {}", TeradataSource.class);
+ }
+
+ @Override
+ public JsonNode toDatabaseConfig(final JsonNode config) {
+ final String schema = config.get(JdbcUtils.DATABASE_KEY).asText();
+
+ final String host = config.has(JdbcUtils.PORT_KEY) ?
+ config.get(JdbcUtils.HOST_KEY).asText() + ":" + config.get(JdbcUtils.PORT_KEY).asInt() :
+ config.get(JdbcUtils.HOST_KEY).asText();
+
+ final String jdbcUrl = String.format("jdbc:teradata://%s/", host);
+
+ final ImmutableMap.Builder