From 3b7bbb72abb7243948cd56f66f5eac7d108a409a Mon Sep 17 00:00:00 2001 From: "Roman Yermilov [GL]" <86300758+roman-yermilov-gl@users.noreply.github.com> Date: Mon, 27 Feb 2023 21:47:37 +0400 Subject: [PATCH] Source Zendesk Support: handle 400 error for tickets stream (#23246) * Source Zendesk Support: increase recent start time for ticket stream * Source Zendesk Support: added more comments * auto-bump connector version --------- Co-authored-by: Octavia Squidington III --- .../init/src/main/resources/seed/source_definitions.yaml | 2 +- .../init/src/main/resources/seed/source_specs.yaml | 2 +- .../connectors/source-zendesk-support/Dockerfile | 2 +- .../source-zendesk-support/acceptance-test-config.yml | 3 +++ .../source-zendesk-support/acceptance-test-docker.sh | 0 .../source_zendesk_support/streams.py | 8 ++++++++ connectors.md | 2 +- docs/integrations/sources/zendesk-support.md | 1 + 8 files changed, 16 insertions(+), 4 deletions(-) mode change 100644 => 100755 airbyte-integrations/connectors/source-zendesk-support/acceptance-test-docker.sh 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 3657098070780..a4de2e10c2793 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -2125,7 +2125,7 @@ - name: Zendesk Support sourceDefinitionId: 79c1aa37-dae3-42ae-b333-d1c105477715 dockerRepository: airbyte/source-zendesk-support - dockerImageTag: 0.2.23 + dockerImageTag: 0.2.24 documentationUrl: https://docs.airbyte.com/integrations/sources/zendesk-support icon: zendesk-support.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 dbe95d7b7659a..cbc25a6f93509 100644 --- a/airbyte-config/init/src/main/resources/seed/source_specs.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_specs.yaml @@ -16508,7 +16508,7 @@ path_in_connector_config: - "credentials" - "client_secret" -- dockerImage: "airbyte/source-zendesk-support:0.2.23" +- dockerImage: "airbyte/source-zendesk-support:0.2.24" spec: documentationUrl: "https://docs.airbyte.com/integrations/sources/zendesk-support" connectionSpecification: diff --git a/airbyte-integrations/connectors/source-zendesk-support/Dockerfile b/airbyte-integrations/connectors/source-zendesk-support/Dockerfile index a329d8582ca67..70745525127c7 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.23 +LABEL io.airbyte.version=0.2.24 LABEL io.airbyte.name=airbyte/source-zendesk-support diff --git a/airbyte-integrations/connectors/source-zendesk-support/acceptance-test-config.yml b/airbyte-integrations/connectors/source-zendesk-support/acceptance-test-config.yml index 7eec3cf010dd6..decdb1a12314c 100644 --- a/airbyte-integrations/connectors/source-zendesk-support/acceptance-test-config.yml +++ b/airbyte-integrations/connectors/source-zendesk-support/acceptance-test-config.yml @@ -23,6 +23,9 @@ acceptance_tests: - config_path: "secrets/config.json" expect_records: path: "integration_tests/expected_records.jsonl" + extra_fields: no + exact_order: no + extra_records: yes incremental: tests: - config_path: "secrets/config.json" diff --git a/airbyte-integrations/connectors/source-zendesk-support/acceptance-test-docker.sh b/airbyte-integrations/connectors/source-zendesk-support/acceptance-test-docker.sh old mode 100644 new mode 100755 diff --git a/airbyte-integrations/connectors/source-zendesk-support/source_zendesk_support/streams.py b/airbyte-integrations/connectors/source-zendesk-support/source_zendesk_support/streams.py index ce81a696f0b76..31541fecbe7aa 100644 --- a/airbyte-integrations/connectors/source-zendesk-support/source_zendesk_support/streams.py +++ b/airbyte-integrations/connectors/source-zendesk-support/source_zendesk_support/streams.py @@ -544,6 +544,14 @@ class Tickets(SourceZendeskIncrementalExportStream): response_list_name: str = "tickets" transformer: TypeTransformer = TypeTransformer(TransformConfig.DefaultSchemaNormalization) + @staticmethod + def check_start_time_param(requested_start_time: int, value: int = 1): + """ + The stream returns 400 Bad Request StartTimeTooRecent when requesting tasks 1 second before now. + Figured out during experiments that the most recent time needed for request to be successful is 3 seconds before now. + """ + return SourceZendeskIncrementalExportStream.check_start_time_param(requested_start_time, value=3) + class TicketComments(SourceZendeskSupportTicketEventsExportStream): """ diff --git a/connectors.md b/connectors.md index 303ed7cae58f3..35f18a0346723 100644 --- a/connectors.md +++ b/connectors.md @@ -265,7 +265,7 @@ | **Zendesk Chat** | Zendesk Chat icon | Source | airbyte/source-zendesk-chat:0.1.12 | generally_available | [link](https://docs.airbyte.com/integrations/sources/zendesk-chat) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zendesk-chat) | `40d24d0f-b8f9-4fe0-9e6c-b06c0f3f45e4` | | **Zendesk Sell** | Zendesk Sell icon | Source | airbyte/source-zendesk-sell:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/zendesk-sell) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zendesk-sell) | `982eaa4c-bba1-4cce-a971-06a41f700b8c` | | **Zendesk Sunshine** | Zendesk Sunshine icon | Source | airbyte/source-zendesk-sunshine:0.1.1 | alpha | [link](https://docs.airbyte.com/integrations/sources/zendesk-sunshine) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zendesk-sunshine) | `325e0640-e7b3-4e24-b823-3361008f603f` | -| **Zendesk Support** | Zendesk Support icon | Source | airbyte/source-zendesk-support:0.2.23 | generally_available | [link](https://docs.airbyte.com/integrations/sources/zendesk-support) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zendesk-support) | `79c1aa37-dae3-42ae-b333-d1c105477715` | +| **Zendesk Support** | Zendesk Support icon | Source | airbyte/source-zendesk-support:0.2.24 | generally_available | [link](https://docs.airbyte.com/integrations/sources/zendesk-support) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zendesk-support) | `79c1aa37-dae3-42ae-b333-d1c105477715` | | **Zendesk Talk** | Zendesk Talk icon | Source | airbyte/source-zendesk-talk:0.1.6 | generally_available | [link](https://docs.airbyte.com/integrations/sources/zendesk-talk) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zendesk-talk) | `c8630570-086d-4a40-99ae-ea5b18673071` | | **Zenefits** | Zenefits icon | Source | airbyte/source-zenefits:0.1.0 | alpha | [link](https://docs.airbyte.com/integrations/sources/zenefits) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zenefits) | `8baba53d-2fe3-4e33-bc85-210d0eb62884` | | **Zenloop** | Zenloop icon | Source | airbyte/source-zenloop:0.1.5 | beta | [link](https://docs.airbyte.com/integrations/sources/zenloop) | [code](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-zenloop) | `f1e4c7f6-db5c-4035-981f-d35ab4998794` | diff --git a/docs/integrations/sources/zendesk-support.md b/docs/integrations/sources/zendesk-support.md index 8fe640bb4f490..5edb42132a4e5 100644 --- a/docs/integrations/sources/zendesk-support.md +++ b/docs/integrations/sources/zendesk-support.md @@ -60,6 +60,7 @@ The Zendesk connector ideally should not run into Zendesk API limitations under | Version | Date | Pull Request | Subject | |:---------|:-----------|:---------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `0.2.24` | 2023-02-17 | [23246](https://github.com/airbytehq/airbyte/pull/23246) | Handle `StartTimeTooRecent` error for Tickets stream | | `0.2.23` | 2023-02-15 | [23035](https://github.com/airbytehq/airbyte/pull/23035) | Handle 403 Error | | `0.2.22` | 2023-02-14 | [22483](https://github.com/airbytehq/airbyte/pull/22483) | Fix test; handle 400 error | | `0.2.21` | 2023-01-27 | [22027](https://github.com/airbytehq/airbyte/pull/22027) | Set `AvailabilityStrategy` for streams explicitly to `None` |