From 98f61a65c63f251d8b230d12ff5ae0aae83d3876 Mon Sep 17 00:00:00 2001 From: Augustin Date: Thu, 29 Sep 2022 14:45:35 +0200 Subject: [PATCH] migrate GA source connectors to per-stream state (#17326) --- .../resources/seed/source_definitions.yaml | 22 +- .../src/main/resources/seed/source_specs.yaml | 24 +- .../connectors/source-amplitude/Dockerfile | 2 +- .../integration_tests/sample_state.json | 28 +- .../source-google-analytics-v4/Dockerfile | 2 +- .../integration_tests/abnormal_state.json | 100 ++++++- .../integration_tests/sample_state.json | 100 ++++++- .../source-google-sheets/Dockerfile | 2 +- .../connectors/source-harvest/Dockerfile | 2 +- .../integration_tests/abnormal_state.json | 282 ++++++++++++------ .../integration_tests/sample_state.json | 282 ++++++++++++------ .../integration_tests/abnormal_state.json | 172 +++++++---- .../connectors/source-intercom/Dockerfile | 2 +- .../integration_tests/abnormal_state.json | 60 ++-- .../integration_tests/sample_state.json | 60 ++-- .../connectors/source-linkedin-ads/Dockerfile | 2 +- .../integration_tests/abnormal_state.json | 60 +++- .../connectors/source-mailchimp/Dockerfile | 2 +- .../integration_tests/state.json | 30 +- .../connectors/source-surveymonkey/Dockerfile | 2 +- .../integration_tests/abnormal_state.json | 70 ++--- .../source-tiktok-marketing/Dockerfile | 2 +- .../integration_tests/abnormal_state.json | 128 +++++--- .../source-tiktok-marketing/setup.py | 2 +- .../connectors/source-zendesk-chat/Dockerfile | 2 +- .../unit_tests/test_source.py | 15 +- .../unit_tests/test_streams.py | 100 +++---- .../source-zendesk-support/Dockerfile | 2 +- .../integration_tests/abnormal_state.json | 108 +++++-- docs/integrations/sources/amplitude.md | 3 +- docs/integrations/sources/bing-ads.md | 30 +- docs/integrations/sources/google-ads.md | 2 +- .../google-analytics-universal-analytics.md | 31 +- docs/integrations/sources/google-sheets.md | 49 +-- docs/integrations/sources/harvest.md | 39 +-- docs/integrations/sources/intercom.md | 59 ++-- docs/integrations/sources/linkedin-ads.md | 15 +- docs/integrations/sources/mailchimp.md | 1 + docs/integrations/sources/surveymonkey.md | 23 +- docs/integrations/sources/tiktok-marketing.md | 11 +- docs/integrations/sources/zendesk-chat.md | 3 +- docs/integrations/sources/zendesk-support.md | 57 ++-- 42 files changed, 1310 insertions(+), 678 deletions(-) diff --git a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml index fb0336e0f2a5..4de7bb7d2a24 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -56,7 +56,7 @@ - name: Amplitude sourceDefinitionId: fa9f58c6-2d03-4237-aaa4-07d75e0c1396 dockerRepository: airbyte/source-amplitude - dockerImageTag: 0.1.13 + dockerImageTag: 0.1.14 documentationUrl: https://docs.airbyte.io/integrations/sources/amplitude icon: amplitude.svg sourceType: api @@ -378,7 +378,7 @@ - name: Google Analytics (Universal Analytics) sourceDefinitionId: eff3616a-f9c3-11eb-9a03-0242ac130003 dockerRepository: airbyte/source-google-analytics-v4 - dockerImageTag: 0.1.25 + dockerImageTag: 0.1.26 documentationUrl: https://docs.airbyte.com/integrations/sources/google-analytics-universal-analytics icon: google-analytics.svg sourceType: api @@ -410,7 +410,7 @@ - name: Google Sheets sourceDefinitionId: 71607ba1-c0ac-4799-8049-7f4b90dd50f7 dockerRepository: airbyte/source-google-sheets - dockerImageTag: 0.2.17 + dockerImageTag: 0.2.18 documentationUrl: https://docs.airbyte.io/integrations/sources/google-sheets icon: google-sheets.svg sourceType: file @@ -442,7 +442,7 @@ - name: Harvest sourceDefinitionId: fe2b4084-3386-4d3b-9ad6-308f61a6f1e6 dockerRepository: airbyte/source-harvest - dockerImageTag: 0.1.10 + dockerImageTag: 0.1.11 documentationUrl: https://docs.airbyte.io/integrations/sources/harvest icon: harvest.svg sourceType: api @@ -488,7 +488,7 @@ - name: Intercom sourceDefinitionId: d8313939-3782-41b0-be29-b3ca20d8dd3a dockerRepository: airbyte/source-intercom - dockerImageTag: 0.1.26 + dockerImageTag: 0.1.27 documentationUrl: https://docs.airbyte.io/integrations/sources/intercom icon: intercom.svg sourceType: api @@ -558,7 +558,7 @@ - name: LinkedIn Ads sourceDefinitionId: 137ece28-5434-455c-8f34-69dc3782f451 dockerRepository: airbyte/source-linkedin-ads - dockerImageTag: 0.1.9 + dockerImageTag: 0.1.10 documentationUrl: https://docs.airbyte.io/integrations/sources/linkedin-ads icon: linkedin.svg sourceType: api @@ -590,7 +590,7 @@ - name: Mailchimp sourceDefinitionId: b03a9f3e-22a5-11eb-adc1-0242ac120002 dockerRepository: airbyte/source-mailchimp - dockerImageTag: 0.2.14 + dockerImageTag: 0.2.15 documentationUrl: https://docs.airbyte.io/integrations/sources/mailchimp icon: mailchimp.svg sourceType: api @@ -1019,7 +1019,7 @@ - name: SurveyMonkey sourceDefinitionId: badc5925-0485-42be-8caa-b34096cb71b5 dockerRepository: airbyte/source-surveymonkey - dockerImageTag: 0.1.10 + dockerImageTag: 0.1.11 documentationUrl: https://docs.airbyte.io/integrations/sources/surveymonkey icon: surveymonkey.svg sourceType: api @@ -1051,7 +1051,7 @@ - name: TikTok Marketing sourceDefinitionId: 4bfac00d-ce15-44ff-95b9-9e3c3e8fbd35 dockerRepository: airbyte/source-tiktok-marketing - dockerImageTag: 0.1.15 + dockerImageTag: 0.1.16 documentationUrl: https://docs.airbyte.io/integrations/sources/tiktok-marketing icon: tiktok.svg sourceType: api @@ -1139,7 +1139,7 @@ - name: Zendesk Chat sourceDefinitionId: 40d24d0f-b8f9-4fe0-9e6c-b06c0f3f45e4 dockerRepository: airbyte/source-zendesk-chat - dockerImageTag: 0.1.9 + dockerImageTag: 0.1.10 documentationUrl: https://docs.airbyte.io/integrations/sources/zendesk-chat icon: zendesk.svg sourceType: api @@ -1155,7 +1155,7 @@ - name: Zendesk Support sourceDefinitionId: 79c1aa37-dae3-42ae-b333-d1c105477715 dockerRepository: airbyte/source-zendesk-support - dockerImageTag: 0.2.15 + dockerImageTag: 0.2.16 documentationUrl: https://docs.airbyte.io/integrations/sources/zendesk-support icon: zendesk.svg sourceType: api diff --git a/airbyte-config/init/src/main/resources/seed/source_specs.yaml b/airbyte-config/init/src/main/resources/seed/source_specs.yaml index 3086174d9085..200b1961abf6 100644 --- a/airbyte-config/init/src/main/resources/seed/source_specs.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_specs.yaml @@ -1105,7 +1105,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-amplitude:0.1.13" +- dockerImage: "airbyte/source-amplitude:0.1.14" spec: documentationUrl: "https://docs.airbyte.io/integrations/sources/amplitude" connectionSpecification: @@ -3769,7 +3769,7 @@ oauthFlowOutputParameters: - - "access_token" - - "refresh_token" -- dockerImage: "airbyte/source-google-analytics-v4:0.1.25" +- dockerImage: "airbyte/source-google-analytics-v4:0.1.26" spec: documentationUrl: "https://docs.airbyte.com/integrations/sources/google-analytics-universal-analytics" connectionSpecification: @@ -4257,12 +4257,12 @@ oauthFlowOutputParameters: - - "access_token" - - "refresh_token" -- dockerImage: "airbyte/source-google-sheets:0.2.17" +- dockerImage: "airbyte/source-google-sheets:0.2.18" spec: documentationUrl: "https://docs.airbyte.io/integrations/sources/google-sheets" connectionSpecification: $schema: "http://json-schema.org/draft-07/schema#" - title: "Stripe Source Spec" + title: "Google Sheets Source Spec" type: "object" required: - "spreadsheet_id" @@ -4443,7 +4443,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-harvest:0.1.10" +- dockerImage: "airbyte/source-harvest:0.1.11" spec: documentationUrl: "https://docs.airbyte.io/integrations/sources/harvest" connectionSpecification: @@ -4868,7 +4868,7 @@ oauthFlowInitParameters: [] oauthFlowOutputParameters: - - "access_token" -- dockerImage: "airbyte/source-intercom:0.1.26" +- dockerImage: "airbyte/source-intercom:0.1.27" spec: documentationUrl: "https://docs.airbyte.io/integrations/sources/intercom" connectionSpecification: @@ -5577,7 +5577,7 @@ path_in_connector_config: - "credentials" - "client_secret" -- dockerImage: "airbyte/source-linkedin-ads:0.1.9" +- dockerImage: "airbyte/source-linkedin-ads:0.1.10" spec: documentationUrl: "https://docs.airbyte.io/integrations/sources/linkedin-ads" connectionSpecification: @@ -5819,7 +5819,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-mailchimp:0.2.14" +- dockerImage: "airbyte/source-mailchimp:0.2.15" spec: documentationUrl: "https://docs.airbyte.io/integrations/sources/mailchimp" connectionSpecification: @@ -10792,7 +10792,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-surveymonkey:0.1.10" +- dockerImage: "airbyte/source-surveymonkey:0.1.11" spec: documentationUrl: "https://docs.airbyte.io/integrations/sources/surveymonkey" connectionSpecification: @@ -11070,7 +11070,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-tiktok-marketing:0.1.15" +- dockerImage: "airbyte/source-tiktok-marketing:0.1.16" spec: documentationUrl: "https://docs.airbyte.io/integrations/sources/tiktok-marketing" changelogUrl: "https://docs.airbyte.io/integrations/sources/tiktok-marketing" @@ -11625,7 +11625,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-zendesk-chat:0.1.9" +- dockerImage: "airbyte/source-zendesk-chat:0.1.10" spec: documentationUrl: "https://docs.airbyte.io/integrations/sources/zendesk-chat" connectionSpecification: @@ -11880,7 +11880,7 @@ path_in_connector_config: - "credentials" - "client_secret" -- dockerImage: "airbyte/source-zendesk-support:0.2.15" +- dockerImage: "airbyte/source-zendesk-support:0.2.16" spec: documentationUrl: "https://docs.airbyte.io/integrations/sources/zendesk-support" connectionSpecification: diff --git a/airbyte-integrations/connectors/source-amplitude/Dockerfile b/airbyte-integrations/connectors/source-amplitude/Dockerfile index 97feb3d7ed77..b58dea27445d 100644 --- a/airbyte-integrations/connectors/source-amplitude/Dockerfile +++ b/airbyte-integrations/connectors/source-amplitude/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.13 +LABEL io.airbyte.version=0.1.14 LABEL io.airbyte.name=airbyte/source-amplitude diff --git a/airbyte-integrations/connectors/source-amplitude/integration_tests/sample_state.json b/airbyte-integrations/connectors/source-amplitude/integration_tests/sample_state.json index cb907b53c2b9..889de1cd67a8 100644 --- a/airbyte-integrations/connectors/source-amplitude/integration_tests/sample_state.json +++ b/airbyte-integrations/connectors/source-amplitude/integration_tests/sample_state.json @@ -1,11 +1,23 @@ -{ - "events": { - "event_time": "2021-05-27 11:59:53.710000" +[ + { + "type": "STREAM", + "stream": { + "stream_state": { "event_time": "2021-05-27 11:59:53.710000" }, + "stream_descriptor": { "name": "events" } + } }, - "active_users": { - "date": "2021-05-27" + { + "type": "STREAM", + "stream": { + "stream_state": { "date": "2021-05-27" }, + "stream_descriptor": { "name": "active_users" } + } }, - "average_session_length": { - "date": "2021-05-27" + { + "type": "STREAM", + "stream": { + "stream_state": { "date": "2021-05-27" }, + "stream_descriptor": { "name": "average_session_length" } + } } -} +] diff --git a/airbyte-integrations/connectors/source-google-analytics-v4/Dockerfile b/airbyte-integrations/connectors/source-google-analytics-v4/Dockerfile index 1f225969a8ab..4ce0459699b3 100644 --- a/airbyte-integrations/connectors/source-google-analytics-v4/Dockerfile +++ b/airbyte-integrations/connectors/source-google-analytics-v4/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.1.25 +LABEL io.airbyte.version=0.1.26 LABEL io.airbyte.name=airbyte/source-google-analytics-v4 diff --git a/airbyte-integrations/connectors/source-google-analytics-v4/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-google-analytics-v4/integration_tests/abnormal_state.json index 0cb746bf6ba3..6886688610f5 100644 --- a/airbyte-integrations/connectors/source-google-analytics-v4/integration_tests/abnormal_state.json +++ b/airbyte-integrations/connectors/source-google-analytics-v4/integration_tests/abnormal_state.json @@ -1,14 +1,86 @@ -{ - "website_overview": { "ga_date": "2050-05-01" }, - "traffic_sources": { "ga_date": "2050-05-01" }, - "pages": { "ga_date": "2050-05-01" }, - "locations": { "ga_date": "2050-05-01" }, - "monthly_active_users": { "ga_date": "2050-05-01" }, - "four_weekly_active_users": { "ga_date": "2050-05-01" }, - "two_weekly_active_users": { "ga_date": "2050-05-01" }, - "weekly_active_users": { "ga_date": "2050-05-01" }, - "daily_active_users": { "ga_date": "2050-05-01" }, - "devices": { "ga_date": "2050-05-01" }, - "users_per_day": { "ga_date": "2050-05-01" }, - "new_users_per_day": { "ga_date": "2050-05-01" } -} +[ + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2050-05-01" }, + "stream_descriptor": { "name": "website_overview" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2050-05-01" }, + "stream_descriptor": { "name": "traffic_sources" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2050-05-01" }, + "stream_descriptor": { "name": "pages" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2050-05-01" }, + "stream_descriptor": { "name": "locations" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2050-05-01" }, + "stream_descriptor": { "name": "monthly_active_users" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2050-05-01" }, + "stream_descriptor": { "name": "four_weekly_active_users" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2050-05-01" }, + "stream_descriptor": { "name": "two_weekly_active_users" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2050-05-01" }, + "stream_descriptor": { "name": "weekly_active_users" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2050-05-01" }, + "stream_descriptor": { "name": "daily_active_users" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2050-05-01" }, + "stream_descriptor": { "name": "devices" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2050-05-01" }, + "stream_descriptor": { "name": "users_per_day" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2050-05-01" }, + "stream_descriptor": { "name": "new_users_per_day" } + } + } +] diff --git a/airbyte-integrations/connectors/source-google-analytics-v4/integration_tests/sample_state.json b/airbyte-integrations/connectors/source-google-analytics-v4/integration_tests/sample_state.json index d636881bc2a2..0c8625660e07 100644 --- a/airbyte-integrations/connectors/source-google-analytics-v4/integration_tests/sample_state.json +++ b/airbyte-integrations/connectors/source-google-analytics-v4/integration_tests/sample_state.json @@ -1,14 +1,86 @@ -{ - "website_overview": { "ga_date": "2021-02-11" }, - "traffic_sources": { "ga_date": "2021-02-11" }, - "pages": { "ga_date": "2021-02-11" }, - "locations": { "ga_date": "2021-02-11" }, - "monthly_active_users": { "ga_date": "2021-02-11" }, - "four_weekly_active_users": { "ga_date": "2021-02-11" }, - "two_weekly_active_users": { "ga_date": "2021-02-11" }, - "weekly_active_users": { "ga_date": "2021-02-11" }, - "daily_active_users": { "ga_date": "2021-02-11" }, - "devices": { "ga_date": "2021-02-11" }, - "users_per_day": { "ga_date": "2021-02-11" }, - "new_users_per_day": { "ga_date": "2021-02-11" } -} +[ + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2021-02-11" }, + "stream_descriptor": { "name": "website_overview" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2021-02-11" }, + "stream_descriptor": { "name": "traffic_sources" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2021-02-11" }, + "stream_descriptor": { "name": "pages" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2021-02-11" }, + "stream_descriptor": { "name": "locations" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2021-02-11" }, + "stream_descriptor": { "name": "monthly_active_users" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2021-02-11" }, + "stream_descriptor": { "name": "four_weekly_active_users" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2021-02-11" }, + "stream_descriptor": { "name": "two_weekly_active_users" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2021-02-11" }, + "stream_descriptor": { "name": "weekly_active_users" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2021-02-11" }, + "stream_descriptor": { "name": "daily_active_users" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2021-02-11" }, + "stream_descriptor": { "name": "devices" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2021-02-11" }, + "stream_descriptor": { "name": "users_per_day" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "ga_date": "2021-02-11" }, + "stream_descriptor": { "name": "new_users_per_day" } + } + } +] diff --git a/airbyte-integrations/connectors/source-google-sheets/Dockerfile b/airbyte-integrations/connectors/source-google-sheets/Dockerfile index 27819f8a245d..d211460288e9 100644 --- a/airbyte-integrations/connectors/source-google-sheets/Dockerfile +++ b/airbyte-integrations/connectors/source-google-sheets/Dockerfile @@ -34,5 +34,5 @@ COPY google_sheets_source ./google_sheets_source ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py" ENTRYPOINT ["python", "/airbyte/integration_code/main.py"] -LABEL io.airbyte.version=0.2.17 +LABEL io.airbyte.version=0.2.18 LABEL io.airbyte.name=airbyte/source-google-sheets diff --git a/airbyte-integrations/connectors/source-harvest/Dockerfile b/airbyte-integrations/connectors/source-harvest/Dockerfile index cd03eb7f3907..3c63ca2bef1b 100644 --- a/airbyte-integrations/connectors/source-harvest/Dockerfile +++ b/airbyte-integrations/connectors/source-harvest/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.10 +LABEL io.airbyte.version=0.1.11 LABEL io.airbyte.name=airbyte/source-harvest diff --git a/airbyte-integrations/connectors/source-harvest/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-harvest/integration_tests/abnormal_state.json index d5687c658eaf..cd404aa473ec 100644 --- a/airbyte-integrations/connectors/source-harvest/integration_tests/abnormal_state.json +++ b/airbyte-integrations/connectors/source-harvest/integration_tests/abnormal_state.json @@ -1,86 +1,198 @@ -{ - "contacts": { - "updated_at": "2217-06-26T21:20:07Z" - }, - "clients": { - "updated_at": "2217-06-26T21:20:07Z" - }, - "invoices": { - "updated_at": "2217-06-26T21:20:07Z" - }, - "invoice_messages": { - "updated_at": "2217-06-26T21:20:07Z" - }, - "invoice_payments": { - "updated_at": "2217-06-26T21:20:07Z" - }, - "invoice_item_categories": { - "updated_at": "2217-06-26T21:20:07Z" - }, - "estimates": { - "updated_at": "2217-06-26T21:20:07Z" - }, - "estimate_messages": { - "updated_at": "2217-06-26T21:20:07Z" - }, - "estimate_item_categories": { - "updated_at": "2217-06-26T21:20:07Z" - }, - "expenses": { - "updated_at": "2217-06-26T21:20:07Z" - }, - "expense_categories": { - "updated_at": "2217-06-26T21:20:07Z" - }, - "tasks": { - "updated_at": "2217-06-26T21:20:07Z" - }, - "time_entries": { - "updated_at": "2217-06-26T21:20:07Z" - }, - "user_assignments": { - "updated_at": "2217-06-26T21:20:07Z" - }, - "task_assignments": { - "updated_at": "2217-06-26T21:20:07Z" - }, - "projects": { - "updated_at": "2217-06-26T21:20:07Z" - }, - "roles": { - "updated_at": "2217-06-26T21:20:07Z" - }, - "users": { - "updated_at": "2217-06-26T21:20:07Z" - }, - "project_assignments": { - "updated_at": "2217-06-26T21:20:07Z" - }, - "expenses_clients": { - "to": "22170626" - }, - "expenses_projects": { - "to": "22170626" - }, - "expenses_categories": { - "to": "22170626" - }, - "expenses_team": { - "to": "22170626" - }, - "uninvoiced": { - "to": "22170626" - }, - "time_clients": { - "to": "22170626" - }, - "time_projects": { - "to": "22170626" - }, - "time_tasks": { - "to": "22170626" - }, - "time_team": { - "to": "22170626" +[ + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2217-06-26T21:20:07Z" }, + "stream_descriptor": { "name": "contacts" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2217-06-26T21:20:07Z" }, + "stream_descriptor": { "name": "clients" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2217-06-26T21:20:07Z" }, + "stream_descriptor": { "name": "invoices" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2217-06-26T21:20:07Z" }, + "stream_descriptor": { "name": "invoice_messages" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2217-06-26T21:20:07Z" }, + "stream_descriptor": { "name": "invoice_payments" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2217-06-26T21:20:07Z" }, + "stream_descriptor": { "name": "invoice_item_categories" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2217-06-26T21:20:07Z" }, + "stream_descriptor": { "name": "estimates" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2217-06-26T21:20:07Z" }, + "stream_descriptor": { "name": "estimate_messages" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2217-06-26T21:20:07Z" }, + "stream_descriptor": { "name": "estimate_item_categories" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2217-06-26T21:20:07Z" }, + "stream_descriptor": { "name": "expenses" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2217-06-26T21:20:07Z" }, + "stream_descriptor": { "name": "expense_categories" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2217-06-26T21:20:07Z" }, + "stream_descriptor": { "name": "tasks" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2217-06-26T21:20:07Z" }, + "stream_descriptor": { "name": "time_entries" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2217-06-26T21:20:07Z" }, + "stream_descriptor": { "name": "user_assignments" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2217-06-26T21:20:07Z" }, + "stream_descriptor": { "name": "task_assignments" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2217-06-26T21:20:07Z" }, + "stream_descriptor": { "name": "projects" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2217-06-26T21:20:07Z" }, + "stream_descriptor": { "name": "roles" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2217-06-26T21:20:07Z" }, + "stream_descriptor": { "name": "users" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2217-06-26T21:20:07Z" }, + "stream_descriptor": { "name": "project_assignments" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "to": "22170626" }, + "stream_descriptor": { "name": "expenses_clients" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "to": "22170626" }, + "stream_descriptor": { "name": "expenses_projects" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "to": "22170626" }, + "stream_descriptor": { "name": "expenses_categories" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "to": "22170626" }, + "stream_descriptor": { "name": "expenses_team" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "to": "22170626" }, + "stream_descriptor": { "name": "uninvoiced" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "to": "22170626" }, + "stream_descriptor": { "name": "time_clients" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "to": "22170626" }, + "stream_descriptor": { "name": "time_projects" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "to": "22170626" }, + "stream_descriptor": { "name": "time_tasks" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "to": "22170626" }, + "stream_descriptor": { "name": "time_team" } + } } -} +] diff --git a/airbyte-integrations/connectors/source-harvest/integration_tests/sample_state.json b/airbyte-integrations/connectors/source-harvest/integration_tests/sample_state.json index ae4bb37a212e..362ce52b0072 100644 --- a/airbyte-integrations/connectors/source-harvest/integration_tests/sample_state.json +++ b/airbyte-integrations/connectors/source-harvest/integration_tests/sample_state.json @@ -1,86 +1,198 @@ -{ - "contacts": { - "updated_at": "2021-01-01T00:00:00Z" - }, - "clients": { - "updated_at": "2021-01-01T00:00:00Z" - }, - "invoices": { - "updated_at": "2021-01-01T00:00:00Z" - }, - "invoice_messages": { - "updated_at": "2021-01-01T00:00:00Z" - }, - "invoice_payments": { - "updated_at": "2021-01-01T00:00:00Z" - }, - "invoice_item_categories": { - "updated_at": "2021-01-01T00:00:00Z" - }, - "estimates": { - "updated_at": "2021-01-01T00:00:00Z" - }, - "estimate_messages": { - "updated_at": "2021-01-01T00:00:00Z" - }, - "estimate_item_categories": { - "updated_at": "2021-01-01T00:00:00Z" - }, - "expenses": { - "updated_at": "2021-01-01T00:00:00Z" - }, - "expense_categories": { - "updated_at": "2021-01-01T00:00:00Z" - }, - "tasks": { - "updated_at": "2021-01-01T00:00:00Z" - }, - "time_entries": { - "updated_at": "2021-01-01T00:00:00Z" - }, - "user_assignments": { - "updated_at": "2021-01-01T00:00:00Z" - }, - "task_assignments": { - "updated_at": "2021-01-01T00:00:00Z" - }, - "projects": { - "updated_at": "2021-01-01T00:00:00Z" - }, - "roles": { - "updated_at": "2021-01-01T00:00:00Z" - }, - "users": { - "updated_at": "2021-01-01T00:00:00Z" - }, - "project_assignments": { - "updated_at": "2021-01-01T00:00:00Z" - }, - "expenses_clients": { - "to": "20210101" - }, - "expenses_projects": { - "to": "20210101" - }, - "expenses_categories": { - "to": "20210101" - }, - "expenses_team": { - "to": "20210101" - }, - "uninvoiced": { - "to": "20210101" - }, - "time_clients": { - "to": "20210101" - }, - "time_projects": { - "to": "20210101" - }, - "time_tasks": { - "to": "20210101" - }, - "time_team": { - "to": "20210101" +[ + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2021-01-01T00:00:00Z" }, + "stream_descriptor": { "name": "contacts" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2021-01-01T00:00:00Z" }, + "stream_descriptor": { "name": "clients" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2021-01-01T00:00:00Z" }, + "stream_descriptor": { "name": "invoices" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2021-01-01T00:00:00Z" }, + "stream_descriptor": { "name": "invoice_messages" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2021-01-01T00:00:00Z" }, + "stream_descriptor": { "name": "invoice_payments" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2021-01-01T00:00:00Z" }, + "stream_descriptor": { "name": "invoice_item_categories" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2021-01-01T00:00:00Z" }, + "stream_descriptor": { "name": "estimates" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2021-01-01T00:00:00Z" }, + "stream_descriptor": { "name": "estimate_messages" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2021-01-01T00:00:00Z" }, + "stream_descriptor": { "name": "estimate_item_categories" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2021-01-01T00:00:00Z" }, + "stream_descriptor": { "name": "expenses" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2021-01-01T00:00:00Z" }, + "stream_descriptor": { "name": "expense_categories" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2021-01-01T00:00:00Z" }, + "stream_descriptor": { "name": "tasks" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2021-01-01T00:00:00Z" }, + "stream_descriptor": { "name": "time_entries" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2021-01-01T00:00:00Z" }, + "stream_descriptor": { "name": "user_assignments" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2021-01-01T00:00:00Z" }, + "stream_descriptor": { "name": "task_assignments" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2021-01-01T00:00:00Z" }, + "stream_descriptor": { "name": "projects" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2021-01-01T00:00:00Z" }, + "stream_descriptor": { "name": "roles" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2021-01-01T00:00:00Z" }, + "stream_descriptor": { "name": "users" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2021-01-01T00:00:00Z" }, + "stream_descriptor": { "name": "project_assignments" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "to": "20210101" }, + "stream_descriptor": { "name": "expenses_clients" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "to": "20210101" }, + "stream_descriptor": { "name": "expenses_projects" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "to": "20210101" }, + "stream_descriptor": { "name": "expenses_categories" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "to": "20210101" }, + "stream_descriptor": { "name": "expenses_team" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "to": "20210101" }, + "stream_descriptor": { "name": "uninvoiced" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "to": "20210101" }, + "stream_descriptor": { "name": "time_clients" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "to": "20210101" }, + "stream_descriptor": { "name": "time_projects" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "to": "20210101" }, + "stream_descriptor": { "name": "time_tasks" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "to": "20210101" }, + "stream_descriptor": { "name": "time_team" } + } } -} +] diff --git a/airbyte-integrations/connectors/source-hubspot/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-hubspot/integration_tests/abnormal_state.json index 36b6029f0ecb..9af1bcca1868 100644 --- a/airbyte-integrations/connectors/source-hubspot/integration_tests/abnormal_state.json +++ b/airbyte-integrations/connectors/source-hubspot/integration_tests/abnormal_state.json @@ -1,53 +1,121 @@ -{ - "companies": { - "updatedAt": "2221-10-12T13:37:56.412000+00:00" - }, - "contact_lists": { - "updatedAt": "2221-10-12T13:37:56.412000+00:00" - }, - "contacts": { - "updatedAt": "2221-10-12T13:37:56.412000+00:00" - }, - "deals": { - "updatedAt": "2221-10-12T13:37:56.412000+00:00" - }, - "email_events": { - "created": "2221-10-12T13:37:56.412000+00:00" - }, - "engagements_calls": { - "updatedAt": "2221-10-12T13:37:56.412000+00:00" - }, - "engagements_emails": { - "updatedAt": "2221-10-12T13:37:56.412000+00:00" - }, - "engagements_meetings": { - "updatedAt": "2221-10-12T13:37:56.412000+00:00" - }, - "engagements_notes": { - "updatedAt": "2221-10-12T13:37:56.412000+00:00" - }, - "engagements_tasks": { - "updatedAt": "2221-10-12T13:37:56.412000+00:00" - }, - "engagements": { - "lastUpdated": 7945393076412 - }, - "line_items": { - "updatedAt": "2221-10-12T13:37:56.412000+00:00" - }, - "products": { - "updatedAt": "2221-10-12T13:37:56.412000+00:00" - }, - "quotes": { - "updatedAt": "2221-10-12T13:37:56.412000+00:00" - }, - "subscription_changes": { - "timestamp": "2221-10-12T13:37:56.412000+00:00" - }, - "tickets": { - "updatedAt": "2221-10-12T13:37:56.412000+00:00" - }, - "property_history": { - "timestamp": 7966012325000 +[ + { + "type": "STREAM", + "stream": { + "stream_state": { "updatedAt": "2221-10-12T13:37:56.412000+00:00" }, + "stream_descriptor": { "name": "companies" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updatedAt": "2221-10-12T13:37:56.412000+00:00" }, + "stream_descriptor": { "name": "contact_lists" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updatedAt": "2221-10-12T13:37:56.412000+00:00" }, + "stream_descriptor": { "name": "contacts" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updatedAt": "2221-10-12T13:37:56.412000+00:00" }, + "stream_descriptor": { "name": "deals" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "created": "2221-10-12T13:37:56.412000+00:00" }, + "stream_descriptor": { "name": "email_events" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updatedAt": "2221-10-12T13:37:56.412000+00:00" }, + "stream_descriptor": { "name": "engagements_calls" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updatedAt": "2221-10-12T13:37:56.412000+00:00" }, + "stream_descriptor": { "name": "engagements_emails" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updatedAt": "2221-10-12T13:37:56.412000+00:00" }, + "stream_descriptor": { "name": "engagements_meetings" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updatedAt": "2221-10-12T13:37:56.412000+00:00" }, + "stream_descriptor": { "name": "engagements_notes" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updatedAt": "2221-10-12T13:37:56.412000+00:00" }, + "stream_descriptor": { "name": "engagements_tasks" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "lastUpdated": 7945393076412 }, + "stream_descriptor": { "name": "engagements" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updatedAt": "2221-10-12T13:37:56.412000+00:00" }, + "stream_descriptor": { "name": "line_items" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updatedAt": "2221-10-12T13:37:56.412000+00:00" }, + "stream_descriptor": { "name": "products" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updatedAt": "2221-10-12T13:37:56.412000+00:00" }, + "stream_descriptor": { "name": "quotes" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "timestamp": "2221-10-12T13:37:56.412000+00:00" }, + "stream_descriptor": { "name": "subscription_changes" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "updatedAt": "2221-10-12T13:37:56.412000+00:00" }, + "stream_descriptor": { "name": "tickets" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "timestamp": 7966012325000 }, + "stream_descriptor": { "name": "property_history" } + } } -} +] diff --git a/airbyte-integrations/connectors/source-intercom/Dockerfile b/airbyte-integrations/connectors/source-intercom/Dockerfile index 88b1fd278778..8d46e345b891 100644 --- a/airbyte-integrations/connectors/source-intercom/Dockerfile +++ b/airbyte-integrations/connectors/source-intercom/Dockerfile @@ -35,5 +35,5 @@ COPY source_intercom ./source_intercom ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py" ENTRYPOINT ["python", "/airbyte/integration_code/main.py"] -LABEL io.airbyte.version=0.1.26 +LABEL io.airbyte.version=0.1.27 LABEL io.airbyte.name=airbyte/source-intercom diff --git a/airbyte-integrations/connectors/source-intercom/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-intercom/integration_tests/abnormal_state.json index 6ec574f009ce..1ce39f2acb3f 100755 --- a/airbyte-integrations/connectors/source-intercom/integration_tests/abnormal_state.json +++ b/airbyte-integrations/connectors/source-intercom/integration_tests/abnormal_state.json @@ -1,26 +1,50 @@ -{ - "companies": { - "updated_at": 7626086649 +[ + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": 7626086649 }, + "stream_descriptor": { "name": "companies" } + } }, - "company_segments": { - "updated_at": 7626086649, - "companies": { - "updated_at": 7626086649 + { + "type": "STREAM", + "stream": { + "stream_state": { + "updated_at": 7626086649, + "companies": { "updated_at": 7626086649 } + }, + "stream_descriptor": { "name": "company_segments" } } }, - "conversations": { - "updated_at": 7626086649 + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": 7626086649 }, + "stream_descriptor": { "name": "conversations" } + } }, - "conversation_parts": { - "updated_at": 7626086649, - "conversations": { - "updated_at": 7626086649 + { + "type": "STREAM", + "stream": { + "stream_state": { + "updated_at": 7626086649, + "conversations": { "updated_at": 7626086649 } + }, + "stream_descriptor": { "name": "conversation_parts" } } }, - "contacts": { - "updated_at": 7626086649 + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": 7626086649 }, + "stream_descriptor": { "name": "contacts" } + } }, - "segments": { - "updated_at": 7626086649 + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": 7626086649 }, + "stream_descriptor": { "name": "segments" } + } } -} +] diff --git a/airbyte-integrations/connectors/source-intercom/integration_tests/sample_state.json b/airbyte-integrations/connectors/source-intercom/integration_tests/sample_state.json index 95d0974f3d30..bc8f41c5edf0 100755 --- a/airbyte-integrations/connectors/source-intercom/integration_tests/sample_state.json +++ b/airbyte-integrations/connectors/source-intercom/integration_tests/sample_state.json @@ -1,26 +1,50 @@ -{ - "companies": { - "updated_at": 1626086649 +[ + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": 1626086649 }, + "stream_descriptor": { "name": "companies" } + } }, - "company_segments": { - "updated_at": 1648469610, - "companies": { - "updated_at": 1625749675 + { + "type": "STREAM", + "stream": { + "stream_state": { + "updated_at": 1648469610, + "companies": { "updated_at": 1625749675 } + }, + "stream_descriptor": { "name": "company_segments" } } }, - "conversations": { - "updated_at": 1632835061 + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": 1632835061 }, + "stream_descriptor": { "name": "conversations" } + } }, - "conversation_parts": { - "updated_at": 1632835061, - "conversations": { - "updated_at": 1632835061 + { + "type": "STREAM", + "stream": { + "stream_state": { + "updated_at": 1632835061, + "conversations": { "updated_at": 1632835061 } + }, + "stream_descriptor": { "name": "conversation_parts" } } }, - "contacts": { - "updated_at": 1626086649 + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": 1626086649 }, + "stream_descriptor": { "name": "contacts" } + } }, - "segments": { - "updated_at": 1626086649 + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": 1626086649 }, + "stream_descriptor": { "name": "segments" } + } } -} +] diff --git a/airbyte-integrations/connectors/source-linkedin-ads/Dockerfile b/airbyte-integrations/connectors/source-linkedin-ads/Dockerfile index 4f249aaf7cf3..66e0d7aca734 100644 --- a/airbyte-integrations/connectors/source-linkedin-ads/Dockerfile +++ b/airbyte-integrations/connectors/source-linkedin-ads/Dockerfile @@ -33,5 +33,5 @@ COPY source_linkedin_ads ./source_linkedin_ads ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py" ENTRYPOINT ["python", "/airbyte/integration_code/main.py"] -LABEL io.airbyte.version=0.1.9 +LABEL io.airbyte.version=0.1.10 LABEL io.airbyte.name=airbyte/source-linkedin-ads diff --git a/airbyte-integrations/connectors/source-linkedin-ads/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-linkedin-ads/integration_tests/abnormal_state.json index d29c225e2f8c..204168f1d2c6 100644 --- a/airbyte-integrations/connectors/source-linkedin-ads/integration_tests/abnormal_state.json +++ b/airbyte-integrations/connectors/source-linkedin-ads/integration_tests/abnormal_state.json @@ -1,23 +1,51 @@ -{ - "account_users": { - "lastModified": "2050-01-01" +[ + { + "type": "STREAM", + "stream": { + "stream_state": { "lastModified": "2050-01-01" }, + "stream_descriptor": { "name": "account_users" } + } }, - "campaign_groups": { - "lastModified": "2050-01-01" + { + "type": "STREAM", + "stream": { + "stream_state": { "lastModified": "2050-01-01" }, + "stream_descriptor": { "name": "campaign_groups" } + } }, - "campaigns": { - "lastModified": "2050-01-01" + { + "type": "STREAM", + "stream": { + "stream_state": { "lastModified": "2050-01-01" }, + "stream_descriptor": { "name": "campaigns" } + } }, - "creatives": { - "lastModified": "2050-01-01" + { + "type": "STREAM", + "stream": { + "stream_state": { "lastModified": "2050-01-01" }, + "stream_descriptor": { "name": "creatives" } + } }, - "ad_direct_sponsored_contents": { - "lastModified": "2050-01-01" + { + "type": "STREAM", + "stream": { + "stream_state": { "lastModified": "2050-01-01" }, + "stream_descriptor": { "name": "ad_direct_sponsored_contents" } + } }, - "ad_campaign_analytics": { - "end_date": "2050-01-01" + { + "type": "STREAM", + "stream": { + "stream_state": { "end_date": "2050-01-01" }, + "stream_descriptor": { "name": "ad_campaign_analytics" } + } }, - "ad_creative_analytics": { - "end_date": "2050-01-01" + { + "type": "STREAM", + "stream": { + "stream_state": { "end_date": "2050-01-01" }, + "stream_descriptor": { "name": "ad_creative_analytics" } + } } -} +] diff --git a/airbyte-integrations/connectors/source-mailchimp/Dockerfile b/airbyte-integrations/connectors/source-mailchimp/Dockerfile index dd7ef7e9f4e7..671746b197fd 100644 --- a/airbyte-integrations/connectors/source-mailchimp/Dockerfile +++ b/airbyte-integrations/connectors/source-mailchimp/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.2.14 +LABEL io.airbyte.version=0.2.15 LABEL io.airbyte.name=airbyte/source-mailchimp diff --git a/airbyte-integrations/connectors/source-mailchimp/integration_tests/state.json b/airbyte-integrations/connectors/source-mailchimp/integration_tests/state.json index 7fe6fa04915b..4abc78540212 100644 --- a/airbyte-integrations/connectors/source-mailchimp/integration_tests/state.json +++ b/airbyte-integrations/connectors/source-mailchimp/integration_tests/state.json @@ -1,7 +1,25 @@ -{ - "campaigns": { "create_time": "2020-11-23T05:42:11+00:00" }, - "lists": { "date_created": "2020-09-25T04:47:31+00:00" }, - "email_activity": { - "49d68626f3": { "timestamp": "2020-11-23T05:42:10+00:00" } +[ + { + "type": "STREAM", + "stream": { + "stream_state": { "create_time": "2020-11-23T05:42:11+00:00" }, + "stream_descriptor": { "name": "campaigns" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { "date_created": "2020-09-25T04:47:31+00:00" }, + "stream_descriptor": { "name": "lists" } + } + }, + { + "type": "STREAM", + "stream": { + "stream_state": { + "49d68626f3": { "timestamp": "2020-11-23T05:42:10+00:00" } + }, + "stream_descriptor": { "name": "email_activity" } + } } -} +] diff --git a/airbyte-integrations/connectors/source-surveymonkey/Dockerfile b/airbyte-integrations/connectors/source-surveymonkey/Dockerfile index 3e1d4e395cdd..b30aba08a303 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.10 +LABEL io.airbyte.version=0.1.11 LABEL io.airbyte.name=airbyte/source-surveymonkey diff --git a/airbyte-integrations/connectors/source-surveymonkey/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-surveymonkey/integration_tests/abnormal_state.json index 629a07a2805e..6f48fdeb56b9 100644 --- a/airbyte-integrations/connectors/source-surveymonkey/integration_tests/abnormal_state.json +++ b/airbyte-integrations/connectors/source-surveymonkey/integration_tests/abnormal_state.json @@ -1,46 +1,30 @@ -{ - "surveys": { - "date_modified": "2022-06-10T11:02:01" +[ + { + "type": "STREAM", + "stream": { + "stream_state": { "date_modified": "2022-06-10T11:02:01" }, + "stream_descriptor": { "name": "surveys" } + } }, - "survey_responses": { - "306079584": { - "date_modified": "2022-06-08T18:17:18+00:00" - }, - "307785429": { - "date_modified": "2022-06-10T10:59:43+00:00" - }, - "307785444": { - "date_modified": "2022-06-10T11:00:19+00:00" - }, - "307785394": { - "date_modified": "2022-06-10T11:00:59+00:00" - }, - "307785402": { - "date_modified": "2022-06-10T11:01:31+00:00" - }, - "307785408": { - "date_modified": "2022-06-10T11:02:08+00:00" - }, - "307785448": { - "date_modified": "2022-06-10T11:02:49+00:00" - }, - "307784834": { - "date_modified": "2022-06-10T11:03:45+00:00" - }, - "307784863": { - "date_modified": "2022-06-10T11:04:29+00:00" - }, - "307784846": { - "date_modified": "2022-06-10T11:05:05+00:00" - }, - "307784856": { - "date_modified": "2022-06-10T11:05:44+00:00" - }, - "307785388": { - "date_modified": "2022-06-10T11:06:20+00:00" - }, - "307785415": { - "date_modified": "2022-06-10T11:06:43+00:00" + { + "type": "STREAM", + "stream": { + "stream_state": { + "306079584": { "date_modified": "2022-06-08T18:17:18+00:00" }, + "307785429": { "date_modified": "2022-06-10T10:59:43+00:00" }, + "307785444": { "date_modified": "2022-06-10T11:00:19+00:00" }, + "307785394": { "date_modified": "2022-06-10T11:00:59+00:00" }, + "307785402": { "date_modified": "2022-06-10T11:01:31+00:00" }, + "307785408": { "date_modified": "2022-06-10T11:02:08+00:00" }, + "307785448": { "date_modified": "2022-06-10T11:02:49+00:00" }, + "307784834": { "date_modified": "2022-06-10T11:03:45+00:00" }, + "307784863": { "date_modified": "2022-06-10T11:04:29+00:00" }, + "307784846": { "date_modified": "2022-06-10T11:05:05+00:00" }, + "307784856": { "date_modified": "2022-06-10T11:05:44+00:00" }, + "307785388": { "date_modified": "2022-06-10T11:06:20+00:00" }, + "307785415": { "date_modified": "2022-06-10T11:06:43+00:00" } + }, + "stream_descriptor": { "name": "survey_responses" } } } -} +] diff --git a/airbyte-integrations/connectors/source-tiktok-marketing/Dockerfile b/airbyte-integrations/connectors/source-tiktok-marketing/Dockerfile index de930c15736c..67ad709b1674 100644 --- a/airbyte-integrations/connectors/source-tiktok-marketing/Dockerfile +++ b/airbyte-integrations/connectors/source-tiktok-marketing/Dockerfile @@ -32,5 +32,5 @@ COPY source_tiktok_marketing ./source_tiktok_marketing 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-tiktok-marketing diff --git a/airbyte-integrations/connectors/source-tiktok-marketing/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-tiktok-marketing/integration_tests/abnormal_state.json index 2ebacb3c5f07..a4cd2bd35c2e 100644 --- a/airbyte-integrations/connectors/source-tiktok-marketing/integration_tests/abnormal_state.json +++ b/airbyte-integrations/connectors/source-tiktok-marketing/integration_tests/abnormal_state.json @@ -1,61 +1,105 @@ -{ - "ads": { - "modify_time": "2030-08-30 09:16:10" +[ + { + "type": "STREAM", + "stream": { + "stream_state": { "modify_time": "2030-08-30 09:16:10" }, + "stream_descriptor": { "name": "ads" } + } }, - "ad_groups": { - "modify_time": "2030-08-30 09:16:10" + { + "type": "STREAM", + "stream": { + "stream_state": { "modify_time": "2030-08-30 09:16:10" }, + "stream_descriptor": { "name": "ad_groups" } + } }, - "campaigns": { - "modify_time": "2030-08-30 09:16:10" + { + "type": "STREAM", + "stream": { + "stream_state": { "modify_time": "2030-08-30 09:16:10" }, + "stream_descriptor": { "name": "campaigns" } + } }, - - "ads_reports_daily": { - "stat_time_day": "2030-01-01", - "dimensions": { - "stat_time_day": "2030-01-01" + { + "type": "STREAM", + "stream": { + "stream_state": { + "stat_time_day": "2030-01-01", + "dimensions": { "stat_time_day": "2030-01-01" } + }, + "stream_descriptor": { "name": "ads_reports_daily" } } }, - "advertisers_reports_daily": { - "stat_time_day": "2030-01-01", - "dimensions": { - "stat_time_day": "2030-01-01" + { + "type": "STREAM", + "stream": { + "stream_state": { + "stat_time_day": "2030-01-01", + "dimensions": { "stat_time_day": "2030-01-01" } + }, + "stream_descriptor": { "name": "advertisers_reports_daily" } } }, - "ad_groups_reports_daily": { - "stat_time_day": "2030-01-01", - "dimensions": { - "stat_time_day": "2030-01-01" + { + "type": "STREAM", + "stream": { + "stream_state": { + "stat_time_day": "2030-01-01", + "dimensions": { "stat_time_day": "2030-01-01" } + }, + "stream_descriptor": { "name": "ad_groups_reports_daily" } } }, - "campaigns_reports_daily": { - "stat_time_day": "2030-01-01", - "dimensions": { - "stat_time_day": "2030-01-01" + { + "type": "STREAM", + "stream": { + "stream_state": { + "stat_time_day": "2030-01-01", + "dimensions": { "stat_time_day": "2030-01-01" } + }, + "stream_descriptor": { "name": "campaigns_reports_daily" } } }, - - "ads_audience_reports_daily": { - "stat_time_day": "2030-01-01", - "dimensions": { - "stat_time_day": "2030-01-01" + { + "type": "STREAM", + "stream": { + "stream_state": { + "stat_time_day": "2030-01-01", + "dimensions": { "stat_time_day": "2030-01-01" } + }, + "stream_descriptor": { "name": "ads_audience_reports_daily" } } }, - "advertisers_audience_reports_daily": { - "stat_time_day": "2030-01-01", - "dimensions": { - "stat_time_day": "2030-01-01" + { + "type": "STREAM", + "stream": { + "stream_state": { + "stat_time_day": "2030-01-01", + "dimensions": { "stat_time_day": "2030-01-01" } + }, + "stream_descriptor": { "name": "advertisers_audience_reports_daily" } } }, - "ad_group_audience_reports_daily": { - "stat_time_day": "2030-01-01", - "dimensions": { - "stat_time_day": "2030-01-01" + { + "type": "STREAM", + "stream": { + "stream_state": { + "stat_time_day": "2030-01-01", + "dimensions": { "stat_time_day": "2030-01-01" } + }, + "stream_descriptor": { "name": "ad_group_audience_reports_daily" } } }, - "campaigns_audience_reports_by_country_daily": { - "stat_time_day": "2030-01-01", - "dimensions": { - "stat_time_day": "2030-01-01" + { + "type": "STREAM", + "stream": { + "stream_state": { + "stat_time_day": "2030-01-01", + "dimensions": { "stat_time_day": "2030-01-01" } + }, + "stream_descriptor": { + "name": "campaigns_audience_reports_by_country_daily" + } } } -} +] diff --git a/airbyte-integrations/connectors/source-tiktok-marketing/setup.py b/airbyte-integrations/connectors/source-tiktok-marketing/setup.py index 85924a996175..fd635e42316e 100644 --- a/airbyte-integrations/connectors/source-tiktok-marketing/setup.py +++ b/airbyte-integrations/connectors/source-tiktok-marketing/setup.py @@ -5,7 +5,7 @@ from setuptools import find_packages, setup -MAIN_REQUIREMENTS = ["airbyte-cdk~=0.1.42"] +MAIN_REQUIREMENTS = ["airbyte-cdk"] TEST_REQUIREMENTS = ["pytest~=6.1", "source-acceptance-test", "requests-mock==1.9.3", "timeout-decorator==0.5.0"] diff --git a/airbyte-integrations/connectors/source-zendesk-chat/Dockerfile b/airbyte-integrations/connectors/source-zendesk-chat/Dockerfile index 9efaf68d888f..ed53b3741602 100644 --- a/airbyte-integrations/connectors/source-zendesk-chat/Dockerfile +++ b/airbyte-integrations/connectors/source-zendesk-chat/Dockerfile @@ -16,5 +16,5 @@ RUN pip install . ENTRYPOINT ["python", "/airbyte/integration_code/main_dev.py"] -LABEL io.airbyte.version=0.1.9 +LABEL io.airbyte.version=0.1.10 LABEL io.airbyte.name=airbyte/source-zendesk-chat diff --git a/airbyte-integrations/connectors/source-zendesk-chat/unit_tests/test_source.py b/airbyte-integrations/connectors/source-zendesk-chat/unit_tests/test_source.py index eab78bbdc04c..29cd0ba33ab5 100644 --- a/airbyte-integrations/connectors/source-zendesk-chat/unit_tests/test_source.py +++ b/airbyte-integrations/connectors/source-zendesk-chat/unit_tests/test_source.py @@ -3,11 +3,12 @@ # +from unittest.mock import patch + import pytest import requests -from unittest.mock import patch from airbyte_cdk import AirbyteLogger -from source_zendesk_chat.source import ZendeskAuthentication, SourceZendeskChat +from source_zendesk_chat.source import SourceZendeskChat, ZendeskAuthentication from source_zendesk_chat.streams import ( Accounts, Agents, @@ -31,10 +32,11 @@ def test_get_auth(): - expected = {'Authorization': 'Bearer access_token'} + expected = {"Authorization": "Bearer access_token"} result = ZendeskAuthentication(TEST_CONFIG).get_auth().get_auth_header() assert expected == result - + + @pytest.mark.parametrize( "response, check_passed", [ @@ -48,7 +50,8 @@ def test_check(response, check_passed): result = TEST_INSTANCE.check_connection(logger=AirbyteLogger, config=TEST_CONFIG) mock_method.assert_called() assert check_passed == result[0] - + + @pytest.mark.parametrize( "stream_cls", [ @@ -71,5 +74,3 @@ def test_streams(stream_cls): for stream in streams: if stream_cls in streams: assert isinstance(stream, stream_cls) - - diff --git a/airbyte-integrations/connectors/source-zendesk-chat/unit_tests/test_streams.py b/airbyte-integrations/connectors/source-zendesk-chat/unit_tests/test_streams.py index 767bb232dd99..acfac7e8e675 100644 --- a/airbyte-integrations/connectors/source-zendesk-chat/unit_tests/test_streams.py +++ b/airbyte-integrations/connectors/source-zendesk-chat/unit_tests/test_streams.py @@ -29,7 +29,7 @@ class TestFullRefreshStreams: """ - STREAMS: + STREAMS: Accounts, Shortcuts, Triggers, Departments, Goals, Skills, Roles, RoutingSettings """ @@ -50,7 +50,7 @@ def test_request_kwargs(self, stream_cls): stream = stream_cls(TEST_CONFIG) expected = {"timeout": 60} assert expected == stream.request_kwargs(stream_state=None) - + @pytest.mark.parametrize( "stream_cls, expected", [ @@ -66,7 +66,7 @@ def test_request_kwargs(self, stream_cls): ) def test_backoff_time(self, requests_mock, stream_cls, expected): stream = stream_cls(TEST_CONFIG) - url =f"{stream.url_base}{stream.path()}" + url = f"{stream.url_base}{stream.path()}" test_headers = {"Retry-After": expected} requests_mock.get(url, headers=test_headers) response = requests.get(url) @@ -90,7 +90,7 @@ def test_path(self, stream_cls, expected): stream = stream_cls(TEST_CONFIG) result = stream.path() assert result == expected - + @pytest.mark.parametrize( "stream_cls, expected_cursor", [ @@ -113,25 +113,25 @@ def test_next_page_token(self, requests_mock, stream_cls, expected_cursor): response = requests.get(url) result = stream.next_page_token(response) assert result == {"cursor": [expected_cursor]} - + @pytest.mark.parametrize( "stream_cls, next_page_token, expected", [ - (Accounts, {"cursor": "MTU4MD"}, {'limit': 100, 'cursor': 'MTU4MD'}), - (Departments, {"cursor": "c1Mzc"}, {'limit': 100, 'cursor': 'c1Mzc'}), - (Goals, {"cursor": "wfHw0MzJ8"}, {'limit': 100, 'cursor': 'wfHw0MzJ8'}), - (Roles, {"cursor": "0MzJ8"}, {'limit': 100, 'cursor': '0MzJ8'}), - (RoutingSettings, {"cursor": "MTUC4wJ8"}, {'limit': 100, 'cursor': 'MTUC4wJ8'}), - (Shortcuts, {"cursor": "MTU4MD"}, {'limit': 100, 'cursor': 'MTU4MD'}), - (Skills, {"cursor": "c1Mzc"}, {'limit': 100, 'cursor': 'c1Mzc'}), - (Triggers, {"cursor": "0MzJ8"}, {'limit': 100, 'cursor': '0MzJ8'}), + (Accounts, {"cursor": "MTU4MD"}, {"limit": 100, "cursor": "MTU4MD"}), + (Departments, {"cursor": "c1Mzc"}, {"limit": 100, "cursor": "c1Mzc"}), + (Goals, {"cursor": "wfHw0MzJ8"}, {"limit": 100, "cursor": "wfHw0MzJ8"}), + (Roles, {"cursor": "0MzJ8"}, {"limit": 100, "cursor": "0MzJ8"}), + (RoutingSettings, {"cursor": "MTUC4wJ8"}, {"limit": 100, "cursor": "MTUC4wJ8"}), + (Shortcuts, {"cursor": "MTU4MD"}, {"limit": 100, "cursor": "MTU4MD"}), + (Skills, {"cursor": "c1Mzc"}, {"limit": 100, "cursor": "c1Mzc"}), + (Triggers, {"cursor": "0MzJ8"}, {"limit": 100, "cursor": "0MzJ8"}), ], ) def test_request_params(self, stream_cls, next_page_token, expected): stream = stream_cls(TEST_CONFIG) result = stream.request_params(stream_state=None, next_page_token=next_page_token) assert result == expected - + @pytest.mark.parametrize( "stream_cls, test_response, expected", [ @@ -152,11 +152,11 @@ def test_parse_response(self, requests_mock, stream_cls, test_response, expected response = requests.get(url) result = stream.parse_response(response) assert list(result) == expected - + class TestTimeIncrementalStreams: """ - STREAMS: + STREAMS: AgentTimelines, Chats """ @@ -171,7 +171,7 @@ def test_state_checkpoint_interval(self, stream_cls, expected): stream = stream_cls(start_date=TEST_CONFIG["start_date"]) result = stream.state_checkpoint_interval assert result == expected - + @pytest.mark.parametrize( "stream_cls, expected", [ @@ -183,14 +183,14 @@ def test_cursor_field(self, stream_cls, expected): stream = stream_cls(start_date=TEST_CONFIG["start_date"]) result = stream.cursor_field assert result == expected - + @pytest.mark.parametrize( "stream_cls, test_response, expected", [ - (AgentTimelines, {"end_time": "123"}, {'start_time': '123'}), - (Chats, {"end_time": "123"}, {'start_time': '123'}), + (AgentTimelines, {"end_time": "123"}, {"start_time": "123"}), + (Chats, {"end_time": "123"}, {"start_time": "123"}), ], - ) + ) def test_next_page_token(self, requests_mock, stream_cls, test_response, expected): stream = stream_cls(start_date=TEST_CONFIG["start_date"]) test_response.update(**{"count": stream.limit}) @@ -199,46 +199,46 @@ def test_next_page_token(self, requests_mock, stream_cls, test_response, expecte response = requests.get(url) result = stream.next_page_token(response) assert result == expected - + @pytest.mark.parametrize( "stream_cls, current_state, last_record, expected", [ - (AgentTimelines, {}, {'start_time': '2021-01-01'}, {'start_time': '2021-01-01T00:00:00Z'}), - (Chats, {"update_timestamp": "2022-02-02"}, {'update_timestamp': '2022-03-03'}, {'update_timestamp': '2022-03-03T00:00:00Z'}), + (AgentTimelines, {}, {"start_time": "2021-01-01"}, {"start_time": "2021-01-01T00:00:00Z"}), + (Chats, {"update_timestamp": "2022-02-02"}, {"update_timestamp": "2022-03-03"}, {"update_timestamp": "2022-03-03T00:00:00Z"}), ], - ) + ) def test_get_updated_state(self, stream_cls, current_state, last_record, expected): stream = stream_cls(start_date=TEST_CONFIG["start_date"]) result = stream.get_updated_state(current_state, last_record) assert result == expected - + @pytest.mark.parametrize( "stream_cls, stream_state, next_page_token, expected", [ - (AgentTimelines, {}, {'start_time': '123'}, {'limit': 1000, 'start_time': '123', 'fields': 'agent_timeline(*)'}), - (Chats, {"update_timestamp": "2022-02-02"}, {'start_time': '234'}, {'limit': 1000, 'start_time': '234', 'fields': 'chats(*)'}), + (AgentTimelines, {}, {"start_time": "123"}, {"limit": 1000, "start_time": "123", "fields": "agent_timeline(*)"}), + (Chats, {"update_timestamp": "2022-02-02"}, {"start_time": "234"}, {"limit": 1000, "start_time": "234", "fields": "chats(*)"}), ], ) def test_request_params(self, stream_cls, stream_state, next_page_token, expected): stream = stream_cls(start_date=TEST_CONFIG["start_date"]) result = stream.request_params(stream_state=stream_state, next_page_token=next_page_token) assert result == expected - + @pytest.mark.parametrize( "stream_cls, test_response, expected", [ ( AgentTimelines, - {"agent_timeline" : {"id": "123", "agent_id": "test_id", "start_time": "2021-01-01"}}, - [{'id': 'test_id|2021-01-01T00:00:00Z', 'agent_id': 'test_id', 'start_time': '2021-01-01T00:00:00Z'}], + {"agent_timeline": {"id": "123", "agent_id": "test_id", "start_time": "2021-01-01"}}, + [{"id": "test_id|2021-01-01T00:00:00Z", "agent_id": "test_id", "start_time": "2021-01-01T00:00:00Z"}], ), ( Chats, - {"chats" : {"id": "234", "agent_id": "test_id", "update_timestamp": "2022-01-01"}}, - [{'id': '234', 'agent_id': 'test_id', 'update_timestamp': '2022-01-01T00:00:00Z'}], + {"chats": {"id": "234", "agent_id": "test_id", "update_timestamp": "2022-01-01"}}, + [{"id": "234", "agent_id": "test_id", "update_timestamp": "2022-01-01T00:00:00Z"}], ), ], - ) + ) def test_parse_response(self, requests_mock, stream_cls, test_response, expected): stream = stream_cls(start_date=TEST_CONFIG["start_date"]) url = f"{stream.url_base}{stream.path()}" @@ -246,7 +246,6 @@ def test_parse_response(self, requests_mock, stream_cls, test_response, expected response = requests.get(url) result = stream.parse_response(response) assert list(result) == expected - @pytest.mark.parametrize( "stream_cls, expected", @@ -259,11 +258,11 @@ def test_path(self, stream_cls, expected): stream = stream_cls(start_date=TEST_CONFIG["start_date"]) result = stream.path() assert result == expected - + class TestIdIncrementalStreams: """ - STREAMS: + STREAMS: Agents, Bans """ @@ -278,7 +277,7 @@ def test_path(self, stream_cls, expected): stream = stream_cls(TEST_CONFIG) result = stream.path() assert result == expected - + @pytest.mark.parametrize( "stream_cls, expected", [ @@ -290,25 +289,25 @@ def test_cursor_field(self, stream_cls, expected): stream = stream_cls(TEST_CONFIG) result = stream.cursor_field assert result == expected - + @pytest.mark.parametrize( "stream_cls, current_state, last_record, expected", [ - (Agents, {}, {'id': '1'}, {'id': '1'}), - (Bans, {"id": "1"}, {'id': '2'}, {'id': '2'}), + (Agents, {}, {"id": "1"}, {"id": "1"}), + (Bans, {"id": "1"}, {"id": "2"}, {"id": "2"}), ], - ) + ) def test_get_updated_state(self, stream_cls, current_state, last_record, expected): stream = stream_cls(TEST_CONFIG) result = stream.get_updated_state(current_state, last_record) assert result == expected - + @pytest.mark.parametrize( "stream_cls, test_response, expected", [ - (Agents, [{"id": "2"}], {'since_id': '2'}), + (Agents, [{"id": "2"}], {"since_id": "2"}), ], - ) + ) def test_next_page_token(self, requests_mock, stream_cls, test_response, expected): stream = stream_cls(TEST_CONFIG) stream.limit = 1 @@ -317,13 +316,13 @@ def test_next_page_token(self, requests_mock, stream_cls, test_response, expecte response = requests.get(url) result = stream.next_page_token(response) assert result == expected - + @pytest.mark.parametrize( "stream_cls, test_response, expected", [ (Agents, {"id": "2"}, [{"id": "2"}]), ], - ) + ) def test_parse_response(self, requests_mock, stream_cls, test_response, expected): stream = stream_cls(TEST_CONFIG) url = f"{stream.url_base}{stream.path()}" @@ -331,16 +330,15 @@ def test_parse_response(self, requests_mock, stream_cls, test_response, expected response = requests.get(url) result = stream.parse_response(response) assert list(result) == expected - + @pytest.mark.parametrize( "stream_cls, stream_state, next_page_token, expected", [ - (Agents, {}, {'since_id': '1'}, {'limit': 100, 'since_id': '1'}), - (Bans, {"id": "1"}, {'since_id': '2'}, {'limit': 100, 'since_id': '2'}), + (Agents, {}, {"since_id": "1"}, {"limit": 100, "since_id": "1"}), + (Bans, {"id": "1"}, {"since_id": "2"}, {"limit": 100, "since_id": "2"}), ], ) def test_request_params(self, stream_cls, stream_state, next_page_token, expected): stream = stream_cls(TEST_CONFIG) result = stream.request_params(stream_state=stream_state, next_page_token=next_page_token) assert result == expected - diff --git a/airbyte-integrations/connectors/source-zendesk-support/Dockerfile b/airbyte-integrations/connectors/source-zendesk-support/Dockerfile index 76d0301dc991..6f8396d9e2f2 100644 --- a/airbyte-integrations/connectors/source-zendesk-support/Dockerfile +++ b/airbyte-integrations/connectors/source-zendesk-support/Dockerfile @@ -25,5 +25,5 @@ COPY source_zendesk_support ./source_zendesk_support ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py" ENTRYPOINT ["python", "/airbyte/integration_code/main.py"] -LABEL io.airbyte.version=0.2.15 +LABEL io.airbyte.version=0.2.16 LABEL io.airbyte.name=airbyte/source-zendesk-support diff --git a/airbyte-integrations/connectors/source-zendesk-support/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-zendesk-support/integration_tests/abnormal_state.json index 1d4e33a89834..00365044a1e7 100644 --- a/airbyte-integrations/connectors/source-zendesk-support/integration_tests/abnormal_state.json +++ b/airbyte-integrations/connectors/source-zendesk-support/integration_tests/abnormal_state.json @@ -1,41 +1,93 @@ -{ - "users": { - "updated_at": "2222-07-19T22:21:37Z" +[ + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2222-07-19T22:21:37Z" }, + "stream_descriptor": { "name": "users" } + } }, - "groups": { - "updated_at": "2222-07-15T22:19:01Z" + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2222-07-15T22:19:01Z" }, + "stream_descriptor": { "name": "groups" } + } }, - "organizations": { - "updated_at": "2222-07-15T19:29:14Z" + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2222-07-15T19:29:14Z" }, + "stream_descriptor": { "name": "organizations" } + } }, - "satisfaction_ratings": { - "updated_at": "2222-07-20T10:05:18Z" + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2222-07-20T10:05:18Z" }, + "stream_descriptor": { "name": "satisfaction_ratings" } + } }, - "tickets": { - "updated_at": "2222-07-20T10:05:18Z" + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2222-07-20T10:05:18Z" }, + "stream_descriptor": { "name": "tickets" } + } }, - "group_memberships": { - "updated_at": "2222-04-23T15:34:20Z" + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2222-04-23T15:34:20Z" }, + "stream_descriptor": { "name": "group_memberships" } + } }, - "ticket_fields": { - "updated_at": "2222-12-11T19:34:05Z" + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2222-12-11T19:34:05Z" }, + "stream_descriptor": { "name": "ticket_fields" } + } }, - "ticket_forms": { - "updated_at": "2222-12-11T20:34:37Z" + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2222-12-11T20:34:37Z" }, + "stream_descriptor": { "name": "ticket_forms" } + } }, - "ticket_metrics": { - "updated_at": "2222-07-19T22:21:26Z" + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2222-07-19T22:21:26Z" }, + "stream_descriptor": { "name": "ticket_metrics" } + } }, - "ticket_metric_events": { - "time": "2222-07-19T22:21:26Z" + { + "type": "STREAM", + "stream": { + "stream_state": { "time": "2222-07-19T22:21:26Z" }, + "stream_descriptor": { "name": "ticket_metric_events" } + } }, - "macros": { - "updated_at": "2222-12-11T19:34:06Z" + { + "type": "STREAM", + "stream": { + "stream_state": { "updated_at": "2222-12-11T19:34:06Z" }, + "stream_descriptor": { "name": "macros" } + } }, - "ticket_comments": { - "created_at": "2222-07-19T22:21:26Z" + { + "type": "STREAM", + "stream": { + "stream_state": { "created_at": "2222-07-19T22:21:26Z" }, + "stream_descriptor": { "name": "ticket_comments" } + } }, - "ticket_audits": { - "created_at": "2222-07-19T22:21:26Z" + { + "type": "STREAM", + "stream": { + "stream_state": { "created_at": "2222-07-19T22:21:26Z" }, + "stream_descriptor": { "name": "ticket_audits" } + } } -} +] diff --git a/docs/integrations/sources/amplitude.md b/docs/integrations/sources/amplitude.md index d9d5dbb72d53..01b8e0c4df4a 100644 --- a/docs/integrations/sources/amplitude.md +++ b/docs/integrations/sources/amplitude.md @@ -42,7 +42,8 @@ The Amplitude connector ideally should gracefully handle Amplitude API limitatio ## Changelog | Version | Date | Pull Request | Subject | -|:--------|:-----------|:---------------------------------------------------------|:------------------------------------------------------------------------------------------------| +| :------ | :--------- | :------------------------------------------------------- | :---------------------------------------------------------------------------------------------- | +| 0.1.14 | 2022-09-28 | [17326](https://github.com/airbytehq/airbyte/pull/17326) | Migrate to per-stream states. | | 0.1.13 | 2022-08-31 | [16185](https://github.com/airbytehq/airbyte/pull/16185) | Re-release on new `airbyte_cdk==0.1.81` | | 0.1.12 | 2022-08-11 | [15506](https://github.com/airbytehq/airbyte/pull/15506) | Changed slice day window to 1, instead of 3 for Events stream | | 0.1.11 | 2022-07-21 | [14924](https://github.com/airbytehq/airbyte/pull/14924) | Remove `additionalProperties` field from spec | diff --git a/docs/integrations/sources/bing-ads.md b/docs/integrations/sources/bing-ads.md index 1a87e7b408dd..9bfbf1736d8c 100644 --- a/docs/integrations/sources/bing-ads.md +++ b/docs/integrations/sources/bing-ads.md @@ -94,18 +94,18 @@ A report's aggregation window is indicated in its name. For example, `account_pe The Bing Ads API limits the number of requests for all Microsoft Advertising clients. You can find detailed info [here](https://docs.microsoft.com/en-us/advertising/guides/services-protocol?view=bingads-13#throttling). ## Changelog -| Version | Date | Pull Request | Subject | -| :------ | :--------- | :------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | -| 0.1.12 | 2022-09-05 | [16335](https://github.com/airbytehq/airbyte/pull/16335) | Added backoff for socket.timeout | -| 0.1.11 | 2022-08-25 | [15684](https://github.com/airbytehq/airbyte/pull/15684) (published in [15987](https://github.com/airbytehq/airbyte/pull/15987))| Fixed log messages being unreadable | -| 0.1.10 | 2022-08-12 | [15602](https://github.com/airbytehq/airbyte/pull/15602) | Fixed bug caused Hourly Reports to crash due to invalid fields set | -| 0.1.9 | 2022-08-02 | [14862](https://github.com/airbytehq/airbyte/pull/14862) | Added missing columns | -| 0.1.8 | 2022-06-15 | [13801](https://github.com/airbytehq/airbyte/pull/13801) | All reports `hourly/daily/weekly/monthly` will be generated by default, these options are removed from input configuration | -| 0.1.7 | 2022-05-17 | [12937](https://github.com/airbytehq/airbyte/pull/12937) | Added OAuth2.0 authentication method, removed `redirect_uri` from input configuration | -| 0.1.6 | 2022-04-30 | [12500](https://github.com/airbytehq/airbyte/pull/12500) | Improve input configuration copy | -| 0.1.5 | 2022-01-01 | [11652](https://github.com/airbytehq/airbyte/pull/11652) | Rebump attempt after DockerHub failure at registring the 0.1.4 | -| 0.1.4 | 2022-03-22 | [11311](https://github.com/airbytehq/airbyte/pull/11311) | Added optional Redirect URI & Tenant ID to spec | -| 0.1.3 | 2022-01-14 | [9510](https://github.com/airbytehq/airbyte/pull/9510) | Fixed broken dependency that blocked connector's operations | -| 0.1.2 | 2021-12-14 | [8429](https://github.com/airbytehq/airbyte/pull/8429) | Update titles and descriptions | -| 0.1.1 | 2021-08-31 | [5750](https://github.com/airbytehq/airbyte/pull/5750) | Added reporting streams\) | -| 0.1.0 | 2021-07-22 | [4911](https://github.com/airbytehq/airbyte/pull/4911) | Initial release supported core streams \(Accounts, Campaigns, Ads, AdGroups\) | +| Version | Date | Pull Request | Subject | +| :------ | :--------- | :------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | +| 0.1.12 | 2022-09-05 | [16335](https://github.com/airbytehq/airbyte/pull/16335) | Added backoff for socket.timeout | +| 0.1.11 | 2022-08-25 | [15684](https://github.com/airbytehq/airbyte/pull/15684) (published in [15987](https://github.com/airbytehq/airbyte/pull/15987)) | Fixed log messages being unreadable | +| 0.1.10 | 2022-08-12 | [15602](https://github.com/airbytehq/airbyte/pull/15602) | Fixed bug caused Hourly Reports to crash due to invalid fields set | +| 0.1.9 | 2022-08-02 | [14862](https://github.com/airbytehq/airbyte/pull/14862) | Added missing columns | +| 0.1.8 | 2022-06-15 | [13801](https://github.com/airbytehq/airbyte/pull/13801) | All reports `hourly/daily/weekly/monthly` will be generated by default, these options are removed from input configuration | +| 0.1.7 | 2022-05-17 | [12937](https://github.com/airbytehq/airbyte/pull/12937) | Added OAuth2.0 authentication method, removed `redirect_uri` from input configuration | +| 0.1.6 | 2022-04-30 | [12500](https://github.com/airbytehq/airbyte/pull/12500) | Improve input configuration copy | +| 0.1.5 | 2022-01-01 | [11652](https://github.com/airbytehq/airbyte/pull/11652) | Rebump attempt after DockerHub failure at registring the 0.1.4 | +| 0.1.4 | 2022-03-22 | [11311](https://github.com/airbytehq/airbyte/pull/11311) | Added optional Redirect URI & Tenant ID to spec | +| 0.1.3 | 2022-01-14 | [9510](https://github.com/airbytehq/airbyte/pull/9510) | Fixed broken dependency that blocked connector's operations | +| 0.1.2 | 2021-12-14 | [8429](https://github.com/airbytehq/airbyte/pull/8429) | Update titles and descriptions | +| 0.1.1 | 2021-08-31 | [5750](https://github.com/airbytehq/airbyte/pull/5750) | Added reporting streams\) | +| 0.1.0 | 2021-07-22 | [4911](https://github.com/airbytehq/airbyte/pull/4911) | Initial release supported core streams \(Accounts, Campaigns, Ads, AdGroups\) | diff --git a/docs/integrations/sources/google-ads.md b/docs/integrations/sources/google-ads.md index 8f9d409f099d..55f6baab4ceb 100644 --- a/docs/integrations/sources/google-ads.md +++ b/docs/integrations/sources/google-ads.md @@ -123,7 +123,7 @@ Due to a limitation in the Google Ads API which does not allow getting performan ## Changelog | Version | Date | Pull Request | Subject | -|:---------|:-----------|:---------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------| +| :------- | :--------- | :------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------- | | `0.2.0` | 2022-08-23 | [15858](https://github.com/airbytehq/airbyte/pull/15858) | Mark the `query` and `table_name` fields in `custom_queries` as required | | `0.1.44` | 2022-07-27 | [15084](https://github.com/airbytehq/airbyte/pull/15084) | Fix data type `ad_group_criterion.topic.path` in `display_topics_performance_report` and shifted `campaigns` to non-managers streams | | `0.1.43` | 2022-07-12 | [14614](https://github.com/airbytehq/airbyte/pull/14614) | Update API version to `v11`, update `google-ads` to 17.0.0 | diff --git a/docs/integrations/sources/google-analytics-universal-analytics.md b/docs/integrations/sources/google-analytics-universal-analytics.md index 5fb07e899ece..e57e2ac72fbe 100644 --- a/docs/integrations/sources/google-analytics-universal-analytics.md +++ b/docs/integrations/sources/google-analytics-universal-analytics.md @@ -50,19 +50,19 @@ The Google Analytics source connector supports the following [sync modes](https: The Google Analytics (Universal Analytics) source connector can sync the following tables: -| Stream name | Schema | -|:-----------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| website_overview | `{"ga_date":"2021-02-11","ga_users":1,"ga_newUsers":0,"ga_sessions":9,"ga_sessionsPerUser":9.0,"ga_avgSessionDuration":28.77777777777778,"ga_pageviews":63,"ga_pageviewsPerSession":7.0,"ga_avgTimeOnPage":4.685185185185185,"ga_bounceRate":0.0,"ga_exitRate":14.285714285714285,"view_id":"211669975"}` | -| traffic_sources | `{"ga_date":"2021-02-11","ga_source":"(direct)","ga_medium":"(none)","ga_socialNetwork":"(not set)","ga_users":1,"ga_newUsers":0,"ga_sessions":9,"ga_sessionsPerUser":9.0,"ga_avgSessionDuration":28.77777777777778,"ga_pageviews":63,"ga_pageviewsPerSession":7.0,"ga_avgTimeOnPage":4.685185185185185,"ga_bounceRate":0.0,"ga_exitRate":14.285714285714285,"view_id":"211669975"}` | -| pages | `{"ga_date":"2021-02-11","ga_hostname":"mydemo.com","ga_pagePath":"/home5","ga_pageviews":63,"ga_uniquePageviews":9,"ga_avgTimeOnPage":4.685185185185185,"ga_entrances":9,"ga_entranceRate":14.285714285714285,"ga_bounceRate":0.0,"ga_exits":9,"ga_exitRate":14.285714285714285,"view_id":"211669975"}` | -| locations | `{"ga_date":"2021-02-11","ga_continent":"Americas","ga_subContinent":"Northern America","ga_country":"United States","ga_region":"Iowa","ga_metro":"Des Moines-Ames IA","ga_city":"Des Moines","ga_users":1,"ga_newUsers":0,"ga_sessions":1,"ga_sessionsPerUser":1.0,"ga_avgSessionDuration":29.0,"ga_pageviews":7,"ga_pageviewsPerSession":7.0,"ga_avgTimeOnPage":4.666666666666667,"ga_bounceRate":0.0,"ga_exitRate":14.285714285714285,"view_id":"211669975"}` | -| monthly_active_users | `{"ga_date":"2021-02-11","ga_30dayUsers":1,"view_id":"211669975"}` | -| four_weekly_active_users | `{"ga_date":"2021-02-11","ga_28dayUsers":1,"view_id":"211669975"}` | -| two_weekly_active_users | `{"ga_date":"2021-02-11","ga_14dayUsers":1,"view_id":"211669975"}` | -| weekly_active_users | `{"ga_date":"2021-02-11","ga_7dayUsers":1,"view_id":"211669975"}` | -| daily_active_users | `{"ga_date":"2021-02-11","ga_1dayUsers":1,"view_id":"211669975"}` | -| devices | `{"ga_date":"2021-02-11","ga_deviceCategory":"desktop","ga_operatingSystem":"Macintosh","ga_browser":"Chrome","ga_users":1,"ga_newUsers":0,"ga_sessions":9,"ga_sessionsPerUser":9.0,"ga_avgSessionDuration":28.77777777777778,"ga_pageviews":63,"ga_pageviewsPerSession":7.0,"ga_avgTimeOnPage":4.685185185185185,"ga_bounceRate":0.0,"ga_exitRate":14.285714285714285,"view_id":"211669975"}` | -| Any custom reports | See [below](https://docs.airbyte.com/integrations/sources/google-analytics-v4#reading-custom-reports) for details. | +| Stream name | Schema | +| :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| website_overview | `{"ga_date":"2021-02-11","ga_users":1,"ga_newUsers":0,"ga_sessions":9,"ga_sessionsPerUser":9.0,"ga_avgSessionDuration":28.77777777777778,"ga_pageviews":63,"ga_pageviewsPerSession":7.0,"ga_avgTimeOnPage":4.685185185185185,"ga_bounceRate":0.0,"ga_exitRate":14.285714285714285,"view_id":"211669975"}` | +| traffic_sources | `{"ga_date":"2021-02-11","ga_source":"(direct)","ga_medium":"(none)","ga_socialNetwork":"(not set)","ga_users":1,"ga_newUsers":0,"ga_sessions":9,"ga_sessionsPerUser":9.0,"ga_avgSessionDuration":28.77777777777778,"ga_pageviews":63,"ga_pageviewsPerSession":7.0,"ga_avgTimeOnPage":4.685185185185185,"ga_bounceRate":0.0,"ga_exitRate":14.285714285714285,"view_id":"211669975"}` | +| pages | `{"ga_date":"2021-02-11","ga_hostname":"mydemo.com","ga_pagePath":"/home5","ga_pageviews":63,"ga_uniquePageviews":9,"ga_avgTimeOnPage":4.685185185185185,"ga_entrances":9,"ga_entranceRate":14.285714285714285,"ga_bounceRate":0.0,"ga_exits":9,"ga_exitRate":14.285714285714285,"view_id":"211669975"}` | +| locations | `{"ga_date":"2021-02-11","ga_continent":"Americas","ga_subContinent":"Northern America","ga_country":"United States","ga_region":"Iowa","ga_metro":"Des Moines-Ames IA","ga_city":"Des Moines","ga_users":1,"ga_newUsers":0,"ga_sessions":1,"ga_sessionsPerUser":1.0,"ga_avgSessionDuration":29.0,"ga_pageviews":7,"ga_pageviewsPerSession":7.0,"ga_avgTimeOnPage":4.666666666666667,"ga_bounceRate":0.0,"ga_exitRate":14.285714285714285,"view_id":"211669975"}` | +| monthly_active_users | `{"ga_date":"2021-02-11","ga_30dayUsers":1,"view_id":"211669975"}` | +| four_weekly_active_users | `{"ga_date":"2021-02-11","ga_28dayUsers":1,"view_id":"211669975"}` | +| two_weekly_active_users | `{"ga_date":"2021-02-11","ga_14dayUsers":1,"view_id":"211669975"}` | +| weekly_active_users | `{"ga_date":"2021-02-11","ga_7dayUsers":1,"view_id":"211669975"}` | +| daily_active_users | `{"ga_date":"2021-02-11","ga_1dayUsers":1,"view_id":"211669975"}` | +| devices | `{"ga_date":"2021-02-11","ga_deviceCategory":"desktop","ga_operatingSystem":"Macintosh","ga_browser":"Chrome","ga_users":1,"ga_newUsers":0,"ga_sessions":9,"ga_sessionsPerUser":9.0,"ga_avgSessionDuration":28.77777777777778,"ga_pageviews":63,"ga_pageviewsPerSession":7.0,"ga_avgTimeOnPage":4.685185185185185,"ga_bounceRate":0.0,"ga_exitRate":14.285714285714285,"view_id":"211669975"}` | +| Any custom reports | See [below](https://docs.airbyte.com/integrations/sources/google-analytics-v4#reading-custom-reports) for details. | Reach out to us on Slack or [create an issue](https://github.com/airbytehq/airbyte/issues) if you need to send custom Google Analytics report data with Airbyte. @@ -154,8 +154,9 @@ Incremental sync is supported only if you add `ga:date` dimension to your custom ## Changelog | Version | Date | Pull Request | Subject | -|:--------|:-----------|:---------------------------------------------------------|:---------------------------------------------------------------------------------------------| -| 0.1.25 | 2022-07-27 | [15087](https://github.com/airbytehq/airbyte/pull/15087) | Fix documentationUrl | +| :------ | :--------- | :------------------------------------------------------- | :------------------------------------------------------------------------------------------- | +| 0.1.26 | 2022-09-28 | [17326](https://github.com/airbytehq/airbyte/pull/15087) | Migrate to per-stream states. | +| 0.1.25 | 2022-07-27 | [15087](https://github.com/airbytehq/airbyte/pull/15087) | Fix documentationUrl | | 0.1.24 | 2022-07-26 | [15042](https://github.com/airbytehq/airbyte/pull/15042) | Update `additionalProperties` field to true from schemas | | 0.1.23 | 2022-07-22 | [14949](https://github.com/airbytehq/airbyte/pull/14949) | Add handle request daily quota error | | 0.1.22 | 2022-06-30 | [14298](https://github.com/airbytehq/airbyte/pull/14298) | Specify integer type for ga:dateHourMinute dimension | diff --git a/docs/integrations/sources/google-sheets.md b/docs/integrations/sources/google-sheets.md index 720b63f1cebd..490e9c8abf70 100644 --- a/docs/integrations/sources/google-sheets.md +++ b/docs/integrations/sources/google-sheets.md @@ -58,8 +58,8 @@ The Google Sheets source connector supports the following sync modes: ## Data type mapping | Integration Type | Airbyte Type | Notes | -| :--- | :--- | :--- | -| any type | `string` | | +| :--------------- | :----------- | :---- | +| any type | `string` | | ## Performance consideration @@ -69,25 +69,26 @@ The [Google API rate limit](https://developers.google.com/sheets/api/limits) is ## Changelog -| Version | Date | Pull Request | Subject | -|---------|------------|------------------------------------------------------------|-------------------------------------------------------------------------------| -| 0.2.17 | 2022-08-03 | [15107](https://github.com/airbytehq/airbyte/pull/15107) | Expose Row Batch Size in Connector Specification | -| 0.2.16 | 2022-07-07 | [13729](https://github.com/airbytehq/airbyte/pull/13729) | Improve configuration field description | -| 0.2.15 | 2022-06-02 | [13446](https://github.com/airbytehq/airbyte/pull/13446) | Retry requests resulting in a server error | -| 0.2.13 | 2022-05-06 | [12685](https://github.com/airbytehq/airbyte/pull/12685) | Update CDK to v0.1.56 to emit an `AirbyeTraceMessage` on uncaught exceptions | -| 0.2.12 | 2022-04-20 | [12230](https://github.com/airbytehq/airbyte/pull/12230) | Update connector to use a `spec.yaml` | -| 0.2.11 | 2022-04-13 | [11977](https://github.com/airbytehq/airbyte/pull/11977) | Replace leftover print statement with airbyte logger | -| 0.2.10 | 2022-03-25 | [11404](https://github.com/airbytehq/airbyte/pull/11404) | Allow using Spreadsheet Link/URL instead of Spreadsheet ID | -| 0.2.9 | 2022-01-25 | [9208](https://github.com/airbytehq/airbyte/pull/9208) | Update title and descriptions | -| 0.2.7 | 2021-09-27 | [8470](https://github.com/airbytehq/airbyte/pull/8470) | Migrate to the CDK | -| 0.2.6 | 2021-09-27 | [6354](https://github.com/airbytehq/airbyte/pull/6354) | Support connecting via Oauth webflow | -| 0.2.5 | 2021-09-12 | [5972](https://github.com/airbytehq/airbyte/pull/5972) | Fix full_refresh test by adding supported_sync_modes to Stream initialization | -| 0.2.4 | 2021-08-05 | [5233](https://github.com/airbytehq/airbyte/pull/5233) | Fix error during listing sheets with diagram only | -| 0.2.3 | 2021-06-09 | [3973](https://github.com/airbytehq/airbyte/pull/3973) | Add AIRBYTE_ENTRYPOINT for Kubernetes support | -| 0.2.2 | 2021-04-20 | [2994](https://github.com/airbytehq/airbyte/pull/2994) | Formatting spec | -| 0.2.1 | 2021-04-03 | [2726](https://github.com/airbytehq/airbyte/pull/2726) | Fix base connector versioning | -| 0.2.0 | 2021-03-09 | [2238](https://github.com/airbytehq/airbyte/pull/2238) | Protocol allows future/unknown properties | -| 0.1.7 | 2021-01-21 | [1762](https://github.com/airbytehq/airbyte/pull/1762) | Fix issue large spreadsheet | -| 0.1.6 | 2021-01-27 | [1668](https://github.com/airbytehq/airbyte/pull/1668) | Adopt connector best practices | -| 0.1.5 | 2020-12-30 | [1438](https://github.com/airbytehq/airbyte/pull/1438) | Implement backoff | -| 0.1.4 | 2020-11-30 | [1046](https://github.com/airbytehq/airbyte/pull/1046) | Add connectors using an index YAML file | +| Version | Date | Pull Request | Subject | +| ------- | ---------- | -------------------------------------------------------- | ----------------------------------------------------------------------------- | +| 0.2.18 | 2022-09-28 | [17326](https://github.com/airbytehq/airbyte/pull/17326) | Migrate to per-stream states. | +| 0.2.17 | 2022-08-03 | [15107](https://github.com/airbytehq/airbyte/pull/15107) | Expose Row Batch Size in Connector Specification | +| 0.2.16 | 2022-07-07 | [13729](https://github.com/airbytehq/airbyte/pull/13729) | Improve configuration field description | +| 0.2.15 | 2022-06-02 | [13446](https://github.com/airbytehq/airbyte/pull/13446) | Retry requests resulting in a server error | +| 0.2.13 | 2022-05-06 | [12685](https://github.com/airbytehq/airbyte/pull/12685) | Update CDK to v0.1.56 to emit an `AirbyeTraceMessage` on uncaught exceptions | +| 0.2.12 | 2022-04-20 | [12230](https://github.com/airbytehq/airbyte/pull/12230) | Update connector to use a `spec.yaml` | +| 0.2.11 | 2022-04-13 | [11977](https://github.com/airbytehq/airbyte/pull/11977) | Replace leftover print statement with airbyte logger | +| 0.2.10 | 2022-03-25 | [11404](https://github.com/airbytehq/airbyte/pull/11404) | Allow using Spreadsheet Link/URL instead of Spreadsheet ID | +| 0.2.9 | 2022-01-25 | [9208](https://github.com/airbytehq/airbyte/pull/9208) | Update title and descriptions | +| 0.2.7 | 2021-09-27 | [8470](https://github.com/airbytehq/airbyte/pull/8470) | Migrate to the CDK | +| 0.2.6 | 2021-09-27 | [6354](https://github.com/airbytehq/airbyte/pull/6354) | Support connecting via Oauth webflow | +| 0.2.5 | 2021-09-12 | [5972](https://github.com/airbytehq/airbyte/pull/5972) | Fix full_refresh test by adding supported_sync_modes to Stream initialization | +| 0.2.4 | 2021-08-05 | [5233](https://github.com/airbytehq/airbyte/pull/5233) | Fix error during listing sheets with diagram only | +| 0.2.3 | 2021-06-09 | [3973](https://github.com/airbytehq/airbyte/pull/3973) | Add AIRBYTE_ENTRYPOINT for Kubernetes support | +| 0.2.2 | 2021-04-20 | [2994](https://github.com/airbytehq/airbyte/pull/2994) | Formatting spec | +| 0.2.1 | 2021-04-03 | [2726](https://github.com/airbytehq/airbyte/pull/2726) | Fix base connector versioning | +| 0.2.0 | 2021-03-09 | [2238](https://github.com/airbytehq/airbyte/pull/2238) | Protocol allows future/unknown properties | +| 0.1.7 | 2021-01-21 | [1762](https://github.com/airbytehq/airbyte/pull/1762) | Fix issue large spreadsheet | +| 0.1.6 | 2021-01-27 | [1668](https://github.com/airbytehq/airbyte/pull/1668) | Adopt connector best practices | +| 0.1.5 | 2020-12-30 | [1438](https://github.com/airbytehq/airbyte/pull/1438) | Implement backoff | +| 0.1.4 | 2020-11-30 | [1046](https://github.com/airbytehq/airbyte/pull/1046) | Add connectors using an index YAML file | diff --git a/docs/integrations/sources/harvest.md b/docs/integrations/sources/harvest.md index 0d34308821bd..d6c33f9e01ee 100644 --- a/docs/integrations/sources/harvest.md +++ b/docs/integrations/sources/harvest.md @@ -28,13 +28,13 @@ This connector supports only authentication with API Key. To obtain API key foll The Harvest 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 | +| Feature | Supported? | +| :---------------------------- | :--------- | +| Full Refresh Sync | Yes | +| Incremental Sync | Yes | +| Replicate Incremental Deletes | No | +| SSL connection | Yes | +| Namespaces | No | ## Supported Streams @@ -71,15 +71,16 @@ The Harvest connector will gracefully handle rate limits. For more information, ## Changelog -| Version | Date | Pull Request | Subject | -| :--- | :--- | :--- | :--- | -| 0.1.10 | 2022-08-08 | [15221](https://github.com/airbytehq/airbyte/pull/15221) | Added `parent_id` for all streams which have parent stream | -| 0.1.9 | 2022-08-04 | [15312](https://github.com/airbytehq/airbyte/pull/15312) | Fix `started_time` and `ended_time` format schema error and updated report slicing | -| 0.1.8 | 2021-12-14 | [8429](https://github.com/airbytehq/airbyte/pull/8429) | Update titles and descriptions | -| 0.1.6 | 2021-11-14 | [7952](https://github.com/airbytehq/airbyte/pull/7952) | Implement OAuth 2.0 support | -| 0.1.5 | 2021-09-28 | [5747](https://github.com/airbytehq/airbyte/pull/5747) | Update schema date-time fields | -| 0.1.4 | 2021-06-22 | [5701](https://github.com/airbytehq/airbyte/pull/5071) | Harvest normalization failure: fixing the schemas | -| 0.1.3 | 2021-06-22 | [4274](https://github.com/airbytehq/airbyte/pull/4274) | Fix wrong data type on `statement_key` in `clients` stream | -| 0.1.2 | 2021-06-07 | [4222](https://github.com/airbytehq/airbyte/pull/4222) | Correct specification parameter name | -| 0.1.1 | 2021-06-09 | [3973](https://github.com/airbytehq/airbyte/pull/3973) | Add `AIRBYTE_ENTRYPOINT` for Kubernetes support | -| 0.1.0 | 2021-06-07 | [3709](https://github.com/airbytehq/airbyte/pull/3709) | Release Harvest connector! | +| Version | Date | Pull Request | Subject | +| :------ | :--------- | :------------------------------------------------------- | :--------------------------------------------------------------------------------- | +| 0.1.11 | 2022-09-28 | [17326](https://github.com/airbytehq/airbyte/pull/17326) | Migrate to per-stream states. | +| 0.1.10 | 2022-08-08 | [15221](https://github.com/airbytehq/airbyte/pull/15221) | Added `parent_id` for all streams which have parent stream | +| 0.1.9 | 2022-08-04 | [15312](https://github.com/airbytehq/airbyte/pull/15312) | Fix `started_time` and `ended_time` format schema error and updated report slicing | +| 0.1.8 | 2021-12-14 | [8429](https://github.com/airbytehq/airbyte/pull/8429) | Update titles and descriptions | +| 0.1.6 | 2021-11-14 | [7952](https://github.com/airbytehq/airbyte/pull/7952) | Implement OAuth 2.0 support | +| 0.1.5 | 2021-09-28 | [5747](https://github.com/airbytehq/airbyte/pull/5747) | Update schema date-time fields | +| 0.1.4 | 2021-06-22 | [5701](https://github.com/airbytehq/airbyte/pull/5071) | Harvest normalization failure: fixing the schemas | +| 0.1.3 | 2021-06-22 | [4274](https://github.com/airbytehq/airbyte/pull/4274) | Fix wrong data type on `statement_key` in `clients` stream | +| 0.1.2 | 2021-06-07 | [4222](https://github.com/airbytehq/airbyte/pull/4222) | Correct specification parameter name | +| 0.1.1 | 2021-06-09 | [3973](https://github.com/airbytehq/airbyte/pull/3973) | Add `AIRBYTE_ENTRYPOINT` for Kubernetes support | +| 0.1.0 | 2021-06-07 | [3709](https://github.com/airbytehq/airbyte/pull/3709) | Release Harvest connector! | diff --git a/docs/integrations/sources/intercom.md b/docs/integrations/sources/intercom.md index 66eda878e227..96e70483c350 100644 --- a/docs/integrations/sources/intercom.md +++ b/docs/integrations/sources/intercom.md @@ -47,32 +47,33 @@ The Intercom connector should not run into Intercom API limitations under normal ## Changelog -| Version | Date | Pull Request | Subject | -|:--------|:-----------| :--- | :--- | -| 0.1.26 | 2022-08-18 | [16540](https://github.com/airbytehq/airbyte/pull/16540) | Fix JSON schema | -| 0.1.25 | 2022-08-18 | [15681](https://github.com/airbytehq/airbyte/pull/15681) | Update Intercom API to v 2.5 | -| 0.1.24 | 2022-07-21 | [14924](https://github.com/airbytehq/airbyte/pull/14924) | Remove `additionalProperties` field from schemas | -| 0.1.23 | 2022-07-19 | [14830](https://github.com/airbytehq/airbyte/pull/14830) | Added `checkpoint_interval` for Incremental streams | -| 0.1.22 | 2022-07-09 | [14554](https://github.com/airbytehq/airbyte/pull/14554) | Fixed `conversation_parts` stream schema definition | -| 0.1.21 | 2022-07-05 | [14403](https://github.com/airbytehq/airbyte/pull/14403) | Refactored `Conversations`, `Conversation Parts`, `Company Segments` to increase performance | -| 0.1.20 | 2022-06-24 | [14099](https://github.com/airbytehq/airbyte/pull/14099) | Extended `Contacts` stream schema with `sms_consent`,`unsubscribe_from_sms` properties | -| 0.1.19 | 2022-05-25 | [13204](https://github.com/airbytehq/airbyte/pull/13204) | Fixed `conversation_parts` stream schema definition | -| 0.1.18 | 2022-05-04 | [12482](https://github.com/airbytehq/airbyte/pull/12482) | Update input configuration copy | -| 0.1.17 | 2022-04-29 | [12374](https://github.com/airbytehq/airbyte/pull/12374) | Fixed filtering of conversation_parts | -| 0.1.16 | 2022-03-23 | [11206](https://github.com/airbytehq/airbyte/pull/11206) | Added conversation_id field to conversation_part records | -| 0.1.15 | 2022-03-22 | [11176](https://github.com/airbytehq/airbyte/pull/11176) | Correct `check_connection` URL | -| 0.1.14 | 2022-03-16 | [11208](https://github.com/airbytehq/airbyte/pull/11208) | Improve 'conversations' incremental sync speed | -| 0.1.13 | 2022-01-14 | [9513](https://github.com/airbytehq/airbyte/pull/9513) | Added handling of scroll param when it expired | -| 0.1.12 | 2021-12-14 | [8429](https://github.com/airbytehq/airbyte/pull/8429) | Updated fields and descriptions | -| 0.1.11 | 2021-12-13 | [8685](https://github.com/airbytehq/airbyte/pull/8685) | Remove time.sleep for rate limit | -| 0.1.10 | 2021-12-10 | [8637](https://github.com/airbytehq/airbyte/pull/8637) | Fix 'conversations' order and sorting. Correction of the companies stream | -| 0.1.9 | 2021-12-03 | [8395](https://github.com/airbytehq/airbyte/pull/8395) | Fix backoff of 'companies' stream | -| 0.1.8 | 2021-11-09 | [7060](https://github.com/airbytehq/airbyte/pull/7060) | Added oauth support | -| 0.1.7 | 2021-11-08 | [7499](https://github.com/airbytehq/airbyte/pull/7499) | Remove base-python dependencies | -| 0.1.6 | 2021-10-07 | [6879](https://github.com/airbytehq/airbyte/pull/6879) | Corrected pagination for contacts | -| 0.1.5 | 2021-09-28 | [6082](https://github.com/airbytehq/airbyte/pull/6082) | Corrected android\_last\_seen\_at field data type in schemas | -| 0.1.4 | 2021-09-20 | [6087](https://github.com/airbytehq/airbyte/pull/6087) | Corrected updated\_at field data type in schemas | -| 0.1.3 | 2021-09-08 | [5908](https://github.com/airbytehq/airbyte/pull/5908) | Corrected timestamp and arrays in schemas | -| 0.1.2 | 2021-08-19 | [5531](https://github.com/airbytehq/airbyte/pull/5531) | Corrected pagination | -| 0.1.1 | 2021-07-31 | [5123](https://github.com/airbytehq/airbyte/pull/5123) | Corrected rate limit | -| 0.1.0 | 2021-07-19 | [4676](https://github.com/airbytehq/airbyte/pull/4676) | Release Intercom CDK Connector | +| Version | Date | Pull Request | Subject | +| :------ | :--------- | :------------------------------------------------------- | :-------------------------------------------------------------------------------------------- | +| 0.1.27 | 2022-08-28 | [17326](https://github.com/airbytehq/airbyte/pull/17326) | Migrate to per-stream states. | +| 0.1.26 | 2022-08-18 | [16540](https://github.com/airbytehq/airbyte/pull/16540) | Fix JSON schema | +| 0.1.25 | 2022-08-18 | [15681](https://github.com/airbytehq/airbyte/pull/15681) | Update Intercom API to v 2.5 | +| 0.1.24 | 2022-07-21 | [14924](https://github.com/airbytehq/airbyte/pull/14924) | Remove `additionalProperties` field from schemas | +| 0.1.23 | 2022-07-19 | [14830](https://github.com/airbytehq/airbyte/pull/14830) | Added `checkpoint_interval` for Incremental streams | +| 0.1.22 | 2022-07-09 | [14554](https://github.com/airbytehq/airbyte/pull/14554) | Fixed `conversation_parts` stream schema definition | +| 0.1.21 | 2022-07-05 | [14403](https://github.com/airbytehq/airbyte/pull/14403) | Refactored `Conversations`, `Conversation Parts`, `Company Segments` to increase performance | +| 0.1.20 | 2022-06-24 | [14099](https://github.com/airbytehq/airbyte/pull/14099) | Extended `Contacts` stream schema with `sms_consent`,`unsubscribe_from_sms` properties | +| 0.1.19 | 2022-05-25 | [13204](https://github.com/airbytehq/airbyte/pull/13204) | Fixed `conversation_parts` stream schema definition | +| 0.1.18 | 2022-05-04 | [12482](https://github.com/airbytehq/airbyte/pull/12482) | Update input configuration copy | +| 0.1.17 | 2022-04-29 | [12374](https://github.com/airbytehq/airbyte/pull/12374) | Fixed filtering of conversation_parts | +| 0.1.16 | 2022-03-23 | [11206](https://github.com/airbytehq/airbyte/pull/11206) | Added conversation_id field to conversation_part records | +| 0.1.15 | 2022-03-22 | [11176](https://github.com/airbytehq/airbyte/pull/11176) | Correct `check_connection` URL | +| 0.1.14 | 2022-03-16 | [11208](https://github.com/airbytehq/airbyte/pull/11208) | Improve 'conversations' incremental sync speed | +| 0.1.13 | 2022-01-14 | [9513](https://github.com/airbytehq/airbyte/pull/9513) | Added handling of scroll param when it expired | +| 0.1.12 | 2021-12-14 | [8429](https://github.com/airbytehq/airbyte/pull/8429) | Updated fields and descriptions | +| 0.1.11 | 2021-12-13 | [8685](https://github.com/airbytehq/airbyte/pull/8685) | Remove time.sleep for rate limit | +| 0.1.10 | 2021-12-10 | [8637](https://github.com/airbytehq/airbyte/pull/8637) | Fix 'conversations' order and sorting. Correction of the companies stream | +| 0.1.9 | 2021-12-03 | [8395](https://github.com/airbytehq/airbyte/pull/8395) | Fix backoff of 'companies' stream | +| 0.1.8 | 2021-11-09 | [7060](https://github.com/airbytehq/airbyte/pull/7060) | Added oauth support | +| 0.1.7 | 2021-11-08 | [7499](https://github.com/airbytehq/airbyte/pull/7499) | Remove base-python dependencies | +| 0.1.6 | 2021-10-07 | [6879](https://github.com/airbytehq/airbyte/pull/6879) | Corrected pagination for contacts | +| 0.1.5 | 2021-09-28 | [6082](https://github.com/airbytehq/airbyte/pull/6082) | Corrected android\_last\_seen\_at field data type in schemas | +| 0.1.4 | 2021-09-20 | [6087](https://github.com/airbytehq/airbyte/pull/6087) | Corrected updated\_at field data type in schemas | +| 0.1.3 | 2021-09-08 | [5908](https://github.com/airbytehq/airbyte/pull/5908) | Corrected timestamp and arrays in schemas | +| 0.1.2 | 2021-08-19 | [5531](https://github.com/airbytehq/airbyte/pull/5531) | Corrected pagination | +| 0.1.1 | 2021-07-31 | [5123](https://github.com/airbytehq/airbyte/pull/5123) | Corrected rate limit | +| 0.1.0 | 2021-07-19 | [4676](https://github.com/airbytehq/airbyte/pull/4676) | Release Intercom CDK Connector | diff --git a/docs/integrations/sources/linkedin-ads.md b/docs/integrations/sources/linkedin-ads.md index 4f45ee2807a9..cf4048c25e04 100644 --- a/docs/integrations/sources/linkedin-ads.md +++ b/docs/integrations/sources/linkedin-ads.md @@ -134,12 +134,12 @@ This Source is capable of syncing the following data as streams: * [Ad Analytics by Creative](https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ads-reporting?tabs=curl#ad-analytics) -| Sync Mode | Supported?\(Yes/No\) | +| Sync Mode | Supported?\(Yes/No\) | | :---------------------------------------- | :------------------- | -| Full Refresh Overwrite Sync | Yes | -| Full Refresh Append Sync | Yes | -| Incremental - Append Sync | Yes | -| Incremental - Append + Deduplication Sync | Yes | +| Full Refresh Overwrite Sync | Yes | +| Full Refresh Append Sync | Yes | +| Incremental - Append Sync | Yes | +| Incremental - Append + Deduplication Sync | Yes | ### NOTE: @@ -181,8 +181,9 @@ After 5 unsuccessful attempts - the connector will stop the sync operation. In s ## Changelog | Version | Date | Pull Request | Subject | -|:--------| :--------- | :----------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------- | -| 0.1.9 | 2022-07-21 | [14924](https://github.com/airbytehq/airbyte/pull/14924) | Remove `additionalProperties` field from schemas | +| :------ | :--------- | :------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------- | +| 0.1.10 | 2022-09-28 | [17326](https://github.com/airbytehq/airbyte/pull/17326) | Migrate to per-stream states. | +| 0.1.9 | 2022-07-21 | [14924](https://github.com/airbytehq/airbyte/pull/14924) | Remove `additionalProperties` field from schemas | | 0.1.8 | 2022-06-07 | [13495](https://github.com/airbytehq/airbyte/pull/13495) | Fixed `base-normalization` issue on `Destination Redshift` caused by wrong casting of `pivot` column | | 0.1.7 | 2022-05-04 | [12482](https://github.com/airbytehq/airbyte/pull/12482) | Update input configuration copy | | 0.1.6 | 2022-04-04 | [11690](https://github.com/airbytehq/airbyte/pull/11690) | Small documenation corrections | diff --git a/docs/integrations/sources/mailchimp.md b/docs/integrations/sources/mailchimp.md index 881662376102..d41da58980a4 100644 --- a/docs/integrations/sources/mailchimp.md +++ b/docs/integrations/sources/mailchimp.md @@ -230,6 +230,7 @@ Now that you have set up the Mailchimp source connector, check out the following | Version | Date | Pull Request | Subject | |:--------|:-----------|:---------------------------------------------------------|:-------------------------------------------------------------------------| +| 0.2.15 | 2022-09-28 | [17326](https://github.com/airbytehq/airbyte/pull/17326) | Migrate to per-stream states. | | 0.2.14 | 2022-04-12 | [11352](https://github.com/airbytehq/airbyte/pull/11352) | Update documentation | | 0.2.13 | 2022-04-11 | [11632](https://github.com/airbytehq/airbyte/pull/11632) | Add unit tests | | 0.2.12 | 2022-03-17 | [10975](https://github.com/airbytehq/airbyte/pull/10975) | Fix campaign's stream normalization | diff --git a/docs/integrations/sources/surveymonkey.md b/docs/integrations/sources/surveymonkey.md index 0d4eaa114260..29df833ea184 100644 --- a/docs/integrations/sources/surveymonkey.md +++ b/docs/integrations/sources/surveymonkey.md @@ -50,17 +50,18 @@ To cover more data from this source we use caching. ## Changelog -| Version | Date | Pull Request | Subject | -|:--------|:-----------|:---------------------------------------------------------|:-------------------------------------------------------------------------| +| Version | Date | Pull Request | Subject | +| :------ | :--------- | :------------------------------------------------------- | :--------------------------------------------------------------------- | +| 0.1.11 | 2022-09-28 | [17326](https://github.com/airbytehq/airbyte/pull/17326) | Migrate to per-stream states. | | 0.1.10 | 2022-09-14 | [16706](https://github.com/airbytehq/airbyte/pull/16706) | Fix 404 error when handling nonexistent surveys | | 0.1.9 | 2022-07-28 | [13046](https://github.com/airbytehq/airbyte/pull/14998) | Fix state for response stream, fixed backoff behaviour, added unittest | -| 0.1.8 | 2022-05-20 | [13046](https://github.com/airbytehq/airbyte/pull/13046) | Fix incremental streams | -| 0.1.7 | 2022-02-24 | [8768](https://github.com/airbytehq/airbyte/pull/8768) | Add custom survey IDs to limit API calls | -| 0.1.6 | 2022-01-14 | [9508](https://github.com/airbytehq/airbyte/pull/9508) | Scopes change | -| 0.1.5 | 2021-12-28 | [8628](https://github.com/airbytehq/airbyte/pull/8628) | Update fields in source-connectors specifications | -| 0.1.4 | 2021-11-11 | [7868](https://github.com/airbytehq/airbyte/pull/7868) | Improve 'check' using '/users/me' API call | -| 0.1.3 | 2021-11-01 | [7433](https://github.com/airbytehq/airbyte/pull/7433) | Remove unsused oAuth flow parameters | -| 0.1.2 | 2021-10-27 | [7433](https://github.com/airbytehq/airbyte/pull/7433) | Add OAuth support | -| 0.1.1 | 2021-09-10 | [5983](https://github.com/airbytehq/airbyte/pull/5983) | Fix caching for gzip compressed http response | -| 0.1.0 | 2021-07-06 | [4097](https://github.com/airbytehq/airbyte/pull/4097) | Initial Release | +| 0.1.8 | 2022-05-20 | [13046](https://github.com/airbytehq/airbyte/pull/13046) | Fix incremental streams | +| 0.1.7 | 2022-02-24 | [8768](https://github.com/airbytehq/airbyte/pull/8768) | Add custom survey IDs to limit API calls | +| 0.1.6 | 2022-01-14 | [9508](https://github.com/airbytehq/airbyte/pull/9508) | Scopes change | +| 0.1.5 | 2021-12-28 | [8628](https://github.com/airbytehq/airbyte/pull/8628) | Update fields in source-connectors specifications | +| 0.1.4 | 2021-11-11 | [7868](https://github.com/airbytehq/airbyte/pull/7868) | Improve 'check' using '/users/me' API call | +| 0.1.3 | 2021-11-01 | [7433](https://github.com/airbytehq/airbyte/pull/7433) | Remove unsused oAuth flow parameters | +| 0.1.2 | 2021-10-27 | [7433](https://github.com/airbytehq/airbyte/pull/7433) | Add OAuth support | +| 0.1.1 | 2021-09-10 | [5983](https://github.com/airbytehq/airbyte/pull/5983) | Fix caching for gzip compressed http response | +| 0.1.0 | 2021-07-06 | [4097](https://github.com/airbytehq/airbyte/pull/4097) | Initial Release | diff --git a/docs/integrations/sources/tiktok-marketing.md b/docs/integrations/sources/tiktok-marketing.md index 8352d0bfc604..3f64914edcfb 100644 --- a/docs/integrations/sources/tiktok-marketing.md +++ b/docs/integrations/sources/tiktok-marketing.md @@ -45,7 +45,7 @@ To access the Sandbox environment: ## Supported streams and sync modes | Stream | Environment | Key | Incremental | -|:----------------------------------------|--------------|-------------|:------------| +| :-------------------------------------- | ------------ | ----------- | :---------- | | Advertisers | Prod,Sandbox | id | No | | AdGroups | Prod,Sandbox | adgroup_id | Yes | | Ads | Prod,Sandbox | ad_id | Yes | @@ -536,10 +536,11 @@ The connector is restricted by [requests limitation](https://ads.tiktok.com/mark ## Changelog | Version | Date | Pull Request | Subject | -|:--------|:-----------|:---------------------------------------------------------|:----------------------------------------------------------------------------------------------| -| 0.1.15 | 2022-08-30 | [16137](https://github.com/airbytehq/airbyte/pull/16137) | Fixed bug with normalization caused by unsupported nested cursor field | | -| 0.1.14 | 2022-06-29 | [13890](https://github.com/airbytehq/airbyte/pull/13890) | Removed granularity config option | | -| 0.1.13 | 2022-06-28 | [13650](https://github.com/airbytehq/airbyte/pull/13650) | Added video metrics to report streams | | +| :------ | :--------- | :------------------------------------------------------- | :-------------------------------------------------------------------------------------------- | +| 0.1.16 | 2022-09-28 | [17326](https://github.com/airbytehq/airbyte/pull/17326) | Migrate to per-stream state | +| 0.1.15 | 2022-08-30 | [16137](https://github.com/airbytehq/airbyte/pull/16137) | Fixed bug with normalization caused by unsupported nested cursor field | +| 0.1.14 | 2022-06-29 | [13890](https://github.com/airbytehq/airbyte/pull/13890) | Removed granularity config option | +| 0.1.13 | 2022-06-28 | [13650](https://github.com/airbytehq/airbyte/pull/13650) | Added video metrics to report streams | | 0.1.12 | 2022-05-24 | [13127](https://github.com/airbytehq/airbyte/pull/13127) | Fixed integration test | | 0.1.11 | 2022-04-27 | [12838](https://github.com/airbytehq/airbyte/pull/12838) | Added end date configuration for tiktok | | 0.1.10 | 2022-05-07 | [12545](https://github.com/airbytehq/airbyte/pull/12545) | Removed odd production authenication method | diff --git a/docs/integrations/sources/zendesk-chat.md b/docs/integrations/sources/zendesk-chat.md index d572f839a36d..a277fb8df640 100644 --- a/docs/integrations/sources/zendesk-chat.md +++ b/docs/integrations/sources/zendesk-chat.md @@ -78,7 +78,8 @@ The connector is restricted by normal Zendesk [requests limitation](https://deve | Version | Date | Pull Request | Subject | | :------ | :--------- | :------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------- | -| 0.1.9 | 2022-08-23 | [15879](https://github.com/airbytehq/airbyte/pull/15879) | Corrected specification and stream schemas to support backward capability | +| 0.1.10 | 2022-09-28 | [17326](https://github.com/airbytehq/airbyte/pull/17326) | Migrate to per-stream states. | +| 0.1.9 | 2022-08-23 | [15879](https://github.com/airbytehq/airbyte/pull/15879) | Corrected specification and stream schemas to support backward capability | | 0.1.8 | 2022-06-28 | [13387](https://github.com/airbytehq/airbyte/pull/13387) | Add state checkpoint to allow long runs | | 0.1.7 | 2022-05-25 | [12883](https://github.com/airbytehq/airbyte/pull/12883) | Pass timeout in request to prevent a stuck connection | | 0.1.6 | 2021-12-15 | [7313](https://github.com/airbytehq/airbyte/pull/7313) | Add support of `OAuth 2.0` authentication. Fixed the issue with `created_at` can now be `null` for `bans` stream | diff --git a/docs/integrations/sources/zendesk-support.md b/docs/integrations/sources/zendesk-support.md index f24a534f5952..da30c73bea38 100644 --- a/docs/integrations/sources/zendesk-support.md +++ b/docs/integrations/sources/zendesk-support.md @@ -59,32 +59,33 @@ The Zendesk connector ideally should not run into Zendesk API limitations under ## Changelog | Version | Date | Pull Request | Subject | -|:---------|:-----------|:---------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `0.2.15` | 2022-08-03 | [15233](https://github.com/airbytehq/airbyte/pull/15233) | Added `subscription plan` check on `streams discovery` step to remove streams that are not accessible for fetch due to subscription plan restrictions | -| `0.2.14` | 2022-07-27 | [15036](https://github.com/airbytehq/airbyte/pull/15036) | Convert `ticket_audits.previous_value` values to string | -| `0.2.13` | 2022-07-21 | [14829](https://github.com/airbytehq/airbyte/pull/14829) | Convert `tickets.custom_fields` values to string | -| `0.2.12` | 2022-06-30 | [14304](https://github.com/airbytehq/airbyte/pull/14304) | Fixed Pagination for Group Membership stream | -| `0.2.11` | 2022-06-24 | [14112](https://github.com/airbytehq/airbyte/pull/14112) | Fixed "Retry-After" non integer value | -| `0.2.10` | 2022-06-14 | [13757](https://github.com/airbytehq/airbyte/pull/13757) | Fixed the bug with `TicketMetrics` stream, HTTP Error 429, caused by lots of API requests | -| `0.2.9` | 2022-05-27 | [13261](https://github.com/airbytehq/airbyte/pull/13261) | Bugfix for the unhandled [ChunkedEncodingError](https://github.com/airbytehq/airbyte/issues/12591) and [ConnectionError](https://github.com/airbytehq/airbyte/issues/12155)| -| `0.2.8` | 2022-05-20 | [13055](https://github.com/airbytehq/airbyte/pull/13055) | Fixed minor issue for stream `ticket_audits` schema | -| `0.2.7` | 2022-04-27 | [12335](https://github.com/airbytehq/airbyte/pull/12335) | Adding fixtures to mock time.sleep for connectors that explicitly sleep | +| :------- | :--------- | :------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `0.2.16` | 2022-09-28 | [17326](https://github.com/airbytehq/airbyte/pull/17326) | Migrate to per-stream states. | +| `0.2.15` | 2022-08-03 | [15233](https://github.com/airbytehq/airbyte/pull/15233) | Added `subscription plan` check on `streams discovery` step to remove streams that are not accessible for fetch due to subscription plan restrictions | +| `0.2.14` | 2022-07-27 | [15036](https://github.com/airbytehq/airbyte/pull/15036) | Convert `ticket_audits.previous_value` values to string | +| `0.2.13` | 2022-07-21 | [14829](https://github.com/airbytehq/airbyte/pull/14829) | Convert `tickets.custom_fields` values to string | +| `0.2.12` | 2022-06-30 | [14304](https://github.com/airbytehq/airbyte/pull/14304) | Fixed Pagination for Group Membership stream | +| `0.2.11` | 2022-06-24 | [14112](https://github.com/airbytehq/airbyte/pull/14112) | Fixed "Retry-After" non integer value | +| `0.2.10` | 2022-06-14 | [13757](https://github.com/airbytehq/airbyte/pull/13757) | Fixed the bug with `TicketMetrics` stream, HTTP Error 429, caused by lots of API requests | +| `0.2.9` | 2022-05-27 | [13261](https://github.com/airbytehq/airbyte/pull/13261) | Bugfix for the unhandled [ChunkedEncodingError](https://github.com/airbytehq/airbyte/issues/12591) and [ConnectionError](https://github.com/airbytehq/airbyte/issues/12155) | +| `0.2.8` | 2022-05-20 | [13055](https://github.com/airbytehq/airbyte/pull/13055) | Fixed minor issue for stream `ticket_audits` schema | +| `0.2.7` | 2022-04-27 | [12335](https://github.com/airbytehq/airbyte/pull/12335) | Adding fixtures to mock time.sleep for connectors that explicitly sleep | | `0.2.6` | 2022-04-19 | [12122](https://github.com/airbytehq/airbyte/pull/12122) | Fixed the bug when only 100,000 Users are synced [11895](https://github.com/airbytehq/airbyte/issues/11895) and fixed bug when `start_date` is not used on user stream [12059](https://github.com/airbytehq/airbyte/issues/12059). | -| `0.2.5` | 2022-04-05 | [11727](https://github.com/airbytehq/airbyte/pull/11727) | Fixed the bug when state was not parsed correctly | -| `0.2.4` | 2022-04-04 | [11688](https://github.com/airbytehq/airbyte/pull/11688) | Small documentation corrections | -| `0.2.3` | 2022-03-23 | [11349](https://github.com/airbytehq/airbyte/pull/11349) | Fixed the bug when Tickets stream didn't return deleted records | -| `0.2.2` | 2022-03-17 | [11237](https://github.com/airbytehq/airbyte/pull/11237) | Fixed the bug when TicketComments stream didn't return all records | -| `0.2.1` | 2022-03-15 | [11162](https://github.com/airbytehq/airbyte/pull/11162) | Added support of OAuth2.0 authentication method | -| `0.2.0` | 2022-03-01 | [9456](https://github.com/airbytehq/airbyte/pull/9456) | Update source to use future requests | -| `0.1.12` | 2022-01-25 | [9785](https://github.com/airbytehq/airbyte/pull/9785) | Add additional log messages | -| `0.1.11` | 2021-12-21 | [8987](https://github.com/airbytehq/airbyte/pull/8987) | Update connector fields title/description | -| `0.1.9` | 2021-12-16 | [8616](https://github.com/airbytehq/airbyte/pull/8616) | Adds Brands, CustomRoles and Schedules streams | -| `0.1.8` | 2021-11-23 | [8050](https://github.com/airbytehq/airbyte/pull/8168) | Adds TicketMetricEvents stream | -| `0.1.7` | 2021-11-23 | [8058](https://github.com/airbytehq/airbyte/pull/8058) | Added support of AccessToken authentication | -| `0.1.6` | 2021-11-18 | [8050](https://github.com/airbytehq/airbyte/pull/8050) | Fix wrong types for schemas, add TypeTransformer | -| `0.1.5` | 2021-10-26 | [7679](https://github.com/airbytehq/airbyte/pull/7679) | Add ticket_id and ticket_comments | -| `0.1.4` | 2021-10-26 | [7377](https://github.com/airbytehq/airbyte/pull/7377) | Fix initially_assigned_at type in ticket metrics | -| `0.1.3` | 2021-10-17 | [7097](https://github.com/airbytehq/airbyte/pull/7097) | Corrected the connector's specification | -| `0.1.2` | 2021-10-16 | [6513](https://github.com/airbytehq/airbyte/pull/6513) | Fixed TicketComments stream | -| `0.1.1` | 2021-09-02 | [5787](https://github.com/airbytehq/airbyte/pull/5787) | Fixed incremental logic for the ticket_comments stream | -| `0.1.0` | 2021-07-21 | [4861](https://github.com/airbytehq/airbyte/pull/4861) | Created CDK native zendesk connector | +| `0.2.5` | 2022-04-05 | [11727](https://github.com/airbytehq/airbyte/pull/11727) | Fixed the bug when state was not parsed correctly | +| `0.2.4` | 2022-04-04 | [11688](https://github.com/airbytehq/airbyte/pull/11688) | Small documentation corrections | +| `0.2.3` | 2022-03-23 | [11349](https://github.com/airbytehq/airbyte/pull/11349) | Fixed the bug when Tickets stream didn't return deleted records | +| `0.2.2` | 2022-03-17 | [11237](https://github.com/airbytehq/airbyte/pull/11237) | Fixed the bug when TicketComments stream didn't return all records | +| `0.2.1` | 2022-03-15 | [11162](https://github.com/airbytehq/airbyte/pull/11162) | Added support of OAuth2.0 authentication method | +| `0.2.0` | 2022-03-01 | [9456](https://github.com/airbytehq/airbyte/pull/9456) | Update source to use future requests | +| `0.1.12` | 2022-01-25 | [9785](https://github.com/airbytehq/airbyte/pull/9785) | Add additional log messages | +| `0.1.11` | 2021-12-21 | [8987](https://github.com/airbytehq/airbyte/pull/8987) | Update connector fields title/description | +| `0.1.9` | 2021-12-16 | [8616](https://github.com/airbytehq/airbyte/pull/8616) | Adds Brands, CustomRoles and Schedules streams | +| `0.1.8` | 2021-11-23 | [8050](https://github.com/airbytehq/airbyte/pull/8168) | Adds TicketMetricEvents stream | +| `0.1.7` | 2021-11-23 | [8058](https://github.com/airbytehq/airbyte/pull/8058) | Added support of AccessToken authentication | +| `0.1.6` | 2021-11-18 | [8050](https://github.com/airbytehq/airbyte/pull/8050) | Fix wrong types for schemas, add TypeTransformer | +| `0.1.5` | 2021-10-26 | [7679](https://github.com/airbytehq/airbyte/pull/7679) | Add ticket_id and ticket_comments | +| `0.1.4` | 2021-10-26 | [7377](https://github.com/airbytehq/airbyte/pull/7377) | Fix initially_assigned_at type in ticket metrics | +| `0.1.3` | 2021-10-17 | [7097](https://github.com/airbytehq/airbyte/pull/7097) | Corrected the connector's specification | +| `0.1.2` | 2021-10-16 | [6513](https://github.com/airbytehq/airbyte/pull/6513) | Fixed TicketComments stream | +| `0.1.1` | 2021-09-02 | [5787](https://github.com/airbytehq/airbyte/pull/5787) | Fixed incremental logic for the ticket_comments stream | +| `0.1.0` | 2021-07-21 | [4861](https://github.com/airbytehq/airbyte/pull/4861) | Created CDK native zendesk connector |