From f8aa131cdcf0eb366a3bea52376980f5586eae81 Mon Sep 17 00:00:00 2001 From: askarpets Date: Tue, 7 May 2024 11:49:15 +0300 Subject: [PATCH 1/4] Source Klaviyo: add error handler for 5XX status codes --- .../connectors/source-klaviyo/metadata.yaml | 2 +- .../connectors/source-klaviyo/pyproject.toml | 2 +- .../source_klaviyo/manifest.yaml | 27 ++++++++++--------- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/airbyte-integrations/connectors/source-klaviyo/metadata.yaml b/airbyte-integrations/connectors/source-klaviyo/metadata.yaml index f4dc2db796b7d..1017dfe0f3f56 100644 --- a/airbyte-integrations/connectors/source-klaviyo/metadata.yaml +++ b/airbyte-integrations/connectors/source-klaviyo/metadata.yaml @@ -8,7 +8,7 @@ data: definitionId: 95e8cffd-b8c4-4039-968e-d32fb4a69bde connectorBuildOptions: baseImage: docker.io/airbyte/python-connector-base:1.2.0@sha256:c22a9d97464b69d6ef01898edf3f8612dc11614f05a84984451dde195f337db9 - dockerImageTag: 2.6.0 + dockerImageTag: 2.6.1 dockerRepository: airbyte/source-klaviyo githubIssueLabel: source-klaviyo icon: klaviyo.svg diff --git a/airbyte-integrations/connectors/source-klaviyo/pyproject.toml b/airbyte-integrations/connectors/source-klaviyo/pyproject.toml index 6ce74b1519012..bf0c063801dff 100644 --- a/airbyte-integrations/connectors/source-klaviyo/pyproject.toml +++ b/airbyte-integrations/connectors/source-klaviyo/pyproject.toml @@ -3,7 +3,7 @@ requires = [ "poetry-core>=1.0.0",] build-backend = "poetry.core.masonry.api" [tool.poetry] -version = "2.6.0" +version = "2.6.1" name = "source-klaviyo" description = "Source implementation for Klaviyo." authors = [ "Airbyte ",] diff --git a/airbyte-integrations/connectors/source-klaviyo/source_klaviyo/manifest.yaml b/airbyte-integrations/connectors/source-klaviyo/source_klaviyo/manifest.yaml index 192b74c7e57be..5392d06987e38 100644 --- a/airbyte-integrations/connectors/source-klaviyo/source_klaviyo/manifest.yaml +++ b/airbyte-integrations/connectors/source-klaviyo/source_klaviyo/manifest.yaml @@ -18,18 +18,21 @@ definitions: authenticator: "#/definitions/authenticator" http_method: GET error_handler: - type: DefaultErrorHandler - backoff_strategies: - - type: WaitTimeFromHeader - header: "Retry-After" - response_filters: - - type: HttpResponseFilter - action: FAIL - http_codes: [401, 403] - error_message: Please provide a valid API key and make sure it has permissions to read specified streams. - - type: HttpResponseFilter - action: RETRY - http_codes: [429] + type: CompositeErrorHandler + error_handlers: + - type: DefaultErrorHandler + backoff_strategies: + - type: WaitTimeFromHeader + header: "Retry-After" + response_filters: + - type: HttpResponseFilter + action: FAIL + http_codes: [401, 403] + error_message: Please provide a valid API key and make sure it has permissions to read specified streams. + - type: HttpResponseFilter + action: RETRY + http_codes: [429] + - type: DefaultErrorHandler # adding this DefaultErrorHandler for 5XX error codes request_headers: Accept: "application/json" Revision: "2023-10-15" From 7cf64b4763644b0c1e50484f4aa4d52840793cba Mon Sep 17 00:00:00 2001 From: askarpets Date: Tue, 7 May 2024 11:54:10 +0300 Subject: [PATCH 2/4] Update docs --- docs/integrations/sources/klaviyo.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/integrations/sources/klaviyo.md b/docs/integrations/sources/klaviyo.md index b5ef7d25a3626..86e22272664f0 100644 --- a/docs/integrations/sources/klaviyo.md +++ b/docs/integrations/sources/klaviyo.md @@ -69,6 +69,7 @@ Stream `Lists Detailed` contains field `profile_count` in addition to info from | Version | Date | Pull Request | Subject | |:---------|:-----------|:-----------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------| +| `2.6.1` | 2024-05-07 | [38010](https://github.com/airbytehq/airbyte/pull/38010) | Add error handler for `5XX` status codes | | `2.6.0` | 2024-04-19 | [37370](https://github.com/airbytehq/airbyte/pull/37370) | Add streams `campaigns_detailed` and `lists_detailed` | | `2.5.0` | 2024-04-15 | [36264](https://github.com/airbytehq/airbyte/pull/36264) | Migrate to low-code | | `2.4.0` | 2024-04-11 | [36989](https://github.com/airbytehq/airbyte/pull/36989) | Update `Campaigns` schema | From ffbadf9d14caee757d7ea0c89b90efde4b65a312 Mon Sep 17 00:00:00 2001 From: askarpets Date: Tue, 7 May 2024 12:39:05 +0300 Subject: [PATCH 3/4] Fix order of handlers --- .../connectors/source-klaviyo/source_klaviyo/manifest.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airbyte-integrations/connectors/source-klaviyo/source_klaviyo/manifest.yaml b/airbyte-integrations/connectors/source-klaviyo/source_klaviyo/manifest.yaml index 5392d06987e38..e59537f63fde9 100644 --- a/airbyte-integrations/connectors/source-klaviyo/source_klaviyo/manifest.yaml +++ b/airbyte-integrations/connectors/source-klaviyo/source_klaviyo/manifest.yaml @@ -20,6 +20,7 @@ definitions: error_handler: type: CompositeErrorHandler error_handlers: + - type: DefaultErrorHandler # adding this DefaultErrorHandler for 5XX error codes - type: DefaultErrorHandler backoff_strategies: - type: WaitTimeFromHeader @@ -32,7 +33,6 @@ definitions: - type: HttpResponseFilter action: RETRY http_codes: [429] - - type: DefaultErrorHandler # adding this DefaultErrorHandler for 5XX error codes request_headers: Accept: "application/json" Revision: "2023-10-15" From 8fbebff43bc4b8d36fb1c63591551afe23d25de3 Mon Sep 17 00:00:00 2001 From: askarpets Date: Tue, 7 May 2024 13:57:46 +0300 Subject: [PATCH 4/4] Add separate 429 handler --- .../source-klaviyo/source_klaviyo/manifest.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/airbyte-integrations/connectors/source-klaviyo/source_klaviyo/manifest.yaml b/airbyte-integrations/connectors/source-klaviyo/source_klaviyo/manifest.yaml index e59537f63fde9..fedad74c0c481 100644 --- a/airbyte-integrations/connectors/source-klaviyo/source_klaviyo/manifest.yaml +++ b/airbyte-integrations/connectors/source-klaviyo/source_klaviyo/manifest.yaml @@ -20,19 +20,21 @@ definitions: error_handler: type: CompositeErrorHandler error_handlers: - - type: DefaultErrorHandler # adding this DefaultErrorHandler for 5XX error codes - type: DefaultErrorHandler backoff_strategies: - type: WaitTimeFromHeader header: "Retry-After" + response_filters: + - type: HttpResponseFilter + action: RETRY + http_codes: [429] + - type: DefaultErrorHandler # adding this DefaultErrorHandler for 5XX error codes + - type: DefaultErrorHandler response_filters: - type: HttpResponseFilter action: FAIL http_codes: [401, 403] error_message: Please provide a valid API key and make sure it has permissions to read specified streams. - - type: HttpResponseFilter - action: RETRY - http_codes: [429] request_headers: Accept: "application/json" Revision: "2023-10-15"