From 59adbe846479fca044c7157bd04bda26427aa91f Mon Sep 17 00:00:00 2001 From: Brian Leonard Date: Tue, 7 May 2024 05:14:29 -0700 Subject: [PATCH] source-amplitude: ensure inline schemas, updated cdk, poetry (where possible) (#36631) Co-authored-by: Serhii Lazebnyi <53845333+lazebnyi@users.noreply.github.com> --- .../connectors/source-amplitude/metadata.yaml | 2 +- .../connectors/source-amplitude/poetry.lock | 35 ++- .../source-amplitude/pyproject.toml | 4 +- .../source_amplitude/manifest.yaml | 223 +++++++++++++++++- .../schemas/active_users.json | 13 - .../source_amplitude/schemas/annotations.json | 19 -- .../schemas/average_session_length.json | 13 - .../source_amplitude/schemas/cohorts.json | 96 -------- .../source_amplitude/schemas/events.json | 58 +++++ docs/integrations/sources/amplitude.md | 2 + 10 files changed, 299 insertions(+), 166 deletions(-) delete mode 100644 airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/active_users.json delete mode 100644 airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/annotations.json delete mode 100644 airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/average_session_length.json delete mode 100644 airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/cohorts.json diff --git a/airbyte-integrations/connectors/source-amplitude/metadata.yaml b/airbyte-integrations/connectors/source-amplitude/metadata.yaml index 9a175d6a31b3..1b4a43a12a7f 100644 --- a/airbyte-integrations/connectors/source-amplitude/metadata.yaml +++ b/airbyte-integrations/connectors/source-amplitude/metadata.yaml @@ -11,7 +11,7 @@ data: connectorSubtype: api connectorType: source definitionId: fa9f58c6-2d03-4237-aaa4-07d75e0c1396 - dockerImageTag: 0.3.8 + dockerImageTag: 0.3.10 dockerRepository: airbyte/source-amplitude documentationUrl: https://docs.airbyte.com/integrations/sources/amplitude githubIssueLabel: source-amplitude diff --git a/airbyte-integrations/connectors/source-amplitude/poetry.lock b/airbyte-integrations/connectors/source-amplitude/poetry.lock index 47a96853cf9f..1f6c33864f5f 100644 --- a/airbyte-integrations/connectors/source-amplitude/poetry.lock +++ b/airbyte-integrations/connectors/source-amplitude/poetry.lock @@ -1,40 +1,39 @@ -# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. [[package]] name = "airbyte-cdk" -version = "0.69.1" +version = "0.80.0" description = "A framework for writing Airbyte Connectors." optional = false -python-versions = ">=3.8" +python-versions = "<4.0,>=3.9" files = [ - {file = "airbyte-cdk-0.69.1.tar.gz", hash = "sha256:f30fc6d3756b43b5fc1e50f076861de42f032efde803df07083d1e17b94ca0d8"}, - {file = "airbyte_cdk-0.69.1-py3-none-any.whl", hash = "sha256:dfb3008cbf609c907f8a03c4625de3540812734d8570dec83eae8940929ead4e"}, + {file = "airbyte_cdk-0.80.0-py3-none-any.whl", hash = "sha256:060e92323a73674fa4e9e2e4a1eb312b9b9d072c9bbe5fa28f54ef21cb4974f3"}, + {file = "airbyte_cdk-0.80.0.tar.gz", hash = "sha256:1383512a83917fecca5b24cea4c72aa5c561cf96dd464485fbcefda48fe574c5"}, ] [package.dependencies] airbyte-protocol-models = "0.5.1" backoff = "*" cachetools = "*" -Deprecated = ">=1.2,<2.0" +Deprecated = ">=1.2,<1.3" dpath = ">=2.0.1,<2.1.0" genson = "1.2.2" isodate = ">=0.6.1,<0.7.0" Jinja2 = ">=3.1.2,<3.2.0" -jsonref = ">=0.2,<1.0" +jsonref = ">=0.2,<0.3" jsonschema = ">=3.2.0,<3.3.0" pendulum = "<3.0.0" pydantic = ">=1.10.8,<2.0.0" pyrate-limiter = ">=3.1.0,<3.2.0" python-dateutil = "*" -PyYAML = ">=6.0.1" +PyYAML = ">=6.0.1,<7.0.0" requests = "*" -requests-cache = "*" +requests_cache = "*" wcmatch = "8.4" [package.extras] -dev = ["avro (>=1.11.2,<1.12.0)", "cohere (==4.21)", "fastavro (>=1.8.0,<1.9.0)", "freezegun", "langchain (==0.0.271)", "markdown", "mypy", "openai[embeddings] (==0.27.9)", "pandas (==2.0.3)", "pdf2image (==1.16.3)", "pdfminer.six (==20221105)", "pyarrow (>=15.0.0,<15.1.0)", "pytesseract (==0.3.10)", "pytest", "pytest-cov", "pytest-httpserver", "pytest-mock", "requests-mock", "tiktoken (==0.4.0)", "unstructured (==0.10.27)", "unstructured.pytesseract (>=0.3.12)", "unstructured[docx,pptx] (==0.10.27)"] -file-based = ["avro (>=1.11.2,<1.12.0)", "fastavro (>=1.8.0,<1.9.0)", "markdown", "pdf2image (==1.16.3)", "pdfminer.six (==20221105)", "pyarrow (>=15.0.0,<15.1.0)", "pytesseract (==0.3.10)", "unstructured (==0.10.27)", "unstructured.pytesseract (>=0.3.12)", "unstructured[docx,pptx] (==0.10.27)"] -sphinx-docs = ["Sphinx (>=4.2,<5.0)", "sphinx-rtd-theme (>=1.0,<2.0)"] +file-based = ["avro (>=1.11.2,<1.12.0)", "fastavro (>=1.8.0,<1.9.0)", "markdown", "pdf2image (==1.16.3)", "pdfminer.six (==20221105)", "pyarrow (>=15.0.0,<15.1.0)", "pytesseract (==0.3.10)", "unstructured.pytesseract (>=0.3.12)", "unstructured[docx,pptx] (==0.10.27)"] +sphinx-docs = ["Sphinx (>=4.2,<4.3)", "sphinx-rtd-theme (>=1.0,<1.1)"] vector-db-based = ["cohere (==4.21)", "langchain (==0.0.271)", "openai[embeddings] (==0.27.9)", "tiktoken (==0.4.0)"] [[package]] @@ -366,13 +365,13 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsonref" -version = "0.3.0" -description = "jsonref is a library for automatic dereferencing of JSON Reference objects for Python." +version = "0.2" +description = "An implementation of JSON Reference for Python" optional = false -python-versions = ">=3.3,<4.0" +python-versions = "*" files = [ - {file = "jsonref-0.3.0-py3-none-any.whl", hash = "sha256:9480ad1b500f7e795daeb0ef29f9c55ae3a9ab38fb8d6659b6f4868acb5a5bc8"}, - {file = "jsonref-0.3.0.tar.gz", hash = "sha256:68b330c6815dc0d490dbb3d65ccda265ddde9f7856fd2f3322f971d456ea7549"}, + {file = "jsonref-0.2-py3-none-any.whl", hash = "sha256:b1e82fa0b62e2c2796a13e5401fe51790b248f6d9bf9d7212a3e31a3501b291f"}, + {file = "jsonref-0.2.tar.gz", hash = "sha256:f3c45b121cf6257eafabdc3a8008763aed1cd7da06dbabc59a9e4d2a5e4e6697"}, ] [[package]] @@ -1031,4 +1030,4 @@ files = [ [metadata] lock-version = "2.0" python-versions = "^3.9,<3.12" -content-hash = "a7a96e2b3330d2b39e398d386ac5724f0ddb92f7862e5029789b59942d9ba36d" +content-hash = "990042bd8aff2361370f7cea38b2dffbadb5bd28397a241166061ec2619f6426" diff --git a/airbyte-integrations/connectors/source-amplitude/pyproject.toml b/airbyte-integrations/connectors/source-amplitude/pyproject.toml index 65d9582863d7..47da489663e9 100644 --- a/airbyte-integrations/connectors/source-amplitude/pyproject.toml +++ b/airbyte-integrations/connectors/source-amplitude/pyproject.toml @@ -3,7 +3,7 @@ requires = [ "poetry-core>=1.0.0",] build-backend = "poetry.core.masonry.api" [tool.poetry] -version = "0.3.8" +version = "0.3.10" name = "source-amplitude" description = "Source implementation for Amplitude." authors = [ "Airbyte ",] @@ -17,7 +17,7 @@ include = "source_amplitude" [tool.poetry.dependencies] python = "^3.9,<3.12" -airbyte-cdk = "^0" +airbyte-cdk = "0.80.0" [tool.poetry.scripts] source-amplitude = "source_amplitude.run:run" diff --git a/airbyte-integrations/connectors/source-amplitude/source_amplitude/manifest.yaml b/airbyte-integrations/connectors/source-amplitude/source_amplitude/manifest.yaml index e2a7dd1083f2..78f16e7a135d 100644 --- a/airbyte-integrations/connectors/source-amplitude/source_amplitude/manifest.yaml +++ b/airbyte-integrations/connectors/source-amplitude/source_amplitude/manifest.yaml @@ -8,7 +8,9 @@ definitions: field_path: ["{{ parameters.get('data_field') }}"] requester: type: HttpRequester - url_base: "https://{{'analytics.eu.' if config['data_region'] == 'EU Residency Server' else '' }}amplitude.com/api" + url_base: + "https://{{'analytics.eu.' if config['data_region'] == 'EU Residency + Server' else '' }}amplitude.com/api" http_method: "GET" authenticator: type: BasicHttpAuthenticator @@ -19,16 +21,22 @@ definitions: response_filters: - http_codes: [400] action: FAIL - error_message: The file size of the exported data is too large. Shorten the time ranges and try again. The limit size is 4GB. + error_message: + The file size of the exported data is too large. Shorten the + time ranges and try again. The limit size is 4GB. - http_codes: [403] action: FAIL - error_message: Access denied due to lack of permission or invalid API/Secret key or wrong data region. + error_message: + Access denied due to lack of permission or invalid API/Secret + key or wrong data region. - http_codes: [404] action: IGNORE error_message: No data collected - http_codes: [504] action: FAIL - error_message: The amount of data is large causing a timeout. For large amounts of data, the Amazon S3 destination is recommended. + error_message: + The amount of data is large causing a timeout. For large amounts + of data, the Amazon S3 destination is recommended. retriever: type: SimpleRetriever @@ -65,6 +73,33 @@ definitions: path: "/2/annotations" data_field: "data" + schema_loader: + type: InlineSchemaLoader + schema: + $schema: https://json-schema.org/draft-07/schema# + type: object + properties: + date: + description: The date when the annotation was made + type: + - "null" + - string + format: date + details: + description: Additional details or information related to the annotation + type: + - "null" + - string + id: + description: The unique identifier for the annotation + type: + - "null" + - integer + label: + description: The label assigned to the annotation + type: + - "null" + - string cohorts_stream: $ref: "#/definitions/base_stream" $parameters: @@ -73,6 +108,150 @@ definitions: path: "/3/cohorts" data_field: "cohorts" + schema_loader: + type: InlineSchemaLoader + schema: + $schema: https://json-schema.org/draft-07/schema# + type: object + properties: + appId: + description: The unique identifier of the application. + type: + - "null" + - integer + archived: + description: Indicates if the cohort data is archived or not. + type: + - "null" + - boolean + definition: + description: The specific definition or criteria for the cohort. + type: + - "null" + - object + description: + description: A brief explanation or summary of the cohort data. + type: + - "null" + - string + finished: + description: Indicates if the cohort data has been finalized. + type: + - "null" + - boolean + id: + description: The unique identifier for the cohort. + type: + - "null" + - string + name: + description: The name or title of the cohort. + type: + - "null" + - string + owners: + description: The owners or administrators of the cohort. + type: + - "null" + - array + items: + type: string + published: + description: Status indicating if the cohort data is published or not. + type: + - "null" + - boolean + size: + description: Size or scale of the cohort data. + type: + - "null" + - integer + type: + description: The type or category of the cohort. + type: + - "null" + - string + lastMod: + description: Timestamp of the last modification made to the cohort. + type: + - "null" + - integer + lastComputed: + description: Timestamp of the last computation of cohort data. + type: + - "null" + - integer + hidden: + description: Flag to determine if the cohort is hidden from view. + type: + - "null" + - boolean + is_predictive: + description: Flag to indicate if the cohort is predictive in nature. + type: + - "null" + - boolean + is_official_content: + description: Indicates if the cohort data is official content. + type: + - "null" + - boolean + chart_id: + description: The identifier of the chart associated with the cohort. + type: + - "null" + - string + createdAt: + description: The timestamp when the cohort was created. + type: + - "null" + - integer + edit_id: + description: The ID for editing purposes or version control. + type: + - "null" + - string + last_viewed: + description: Timestamp when the cohort was last viewed. + type: + - "null" + - integer + location_id: + description: Identifier of the location associated with the cohort. + type: + - "null" + - string + metadata: + description: Additional information or data related to the cohort. + type: + - "null" + - array + items: + type: string + popularity: + description: Popularity rank or score of the cohort. + type: + - "null" + - integer + shortcut_ids: + description: Identifiers of any shortcuts associated with the cohort. + type: + - "null" + - array + items: + type: string + view_count: + description: The total count of views on the cohort data. + type: + - "null" + - integer + viewers: + description: Users or viewers who have access to the cohort data. + type: + - "null" + - array + items: + type: string base_incremental_stream: retriever: $ref: "#/definitions/retriever" @@ -99,6 +278,23 @@ definitions: path: "/2/sessions/average" stream_cursor_field: "date" + schema_loader: + type: InlineSchemaLoader + schema: + $schema: https://json-schema.org/draft-07/schema# + type: object + properties: + date: + description: The date on which the session occurred + type: + - "null" + - string + format: date-time + length: + description: The duration of the session in seconds + type: + - "null" + - number active_users_stream: $ref: "#/definitions/base_incremental_stream" retriever: @@ -125,6 +321,25 @@ definitions: primary_key: "date" path: "/2/users" + schema_loader: + type: InlineSchemaLoader + schema: + $schema: https://json-schema.org/draft-07/schema# + type: object + properties: + date: + description: The date for which the active user data is reported + type: + - "null" + - string + format: date + statistics: + description: + The statistics related to the active users for the given + date + type: + - "null" + - object streams: - "#/definitions/annotations_stream" - "#/definitions/cohorts_stream" diff --git a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/active_users.json b/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/active_users.json deleted file mode 100644 index 0bbda9452bd2..000000000000 --- a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/active_users.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft-07/schema#", - "type": "object", - "properties": { - "date": { - "type": ["null", "string"], - "format": "date" - }, - "statistics": { - "type": ["null", "object"] - } - } -} diff --git a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/annotations.json b/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/annotations.json deleted file mode 100644 index 420e65bc4412..000000000000 --- a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/annotations.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft-07/schema#", - "type": "object", - "properties": { - "date": { - "type": ["null", "string"], - "format": "date" - }, - "details": { - "type": ["null", "string"] - }, - "id": { - "type": ["null", "integer"] - }, - "label": { - "type": ["null", "string"] - } - } -} diff --git a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/average_session_length.json b/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/average_session_length.json deleted file mode 100644 index 8cc4ceb15384..000000000000 --- a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/average_session_length.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft-07/schema#", - "type": "object", - "properties": { - "date": { - "type": ["null", "string"], - "format": "date-time" - }, - "length": { - "type": ["null", "number"] - } - } -} diff --git a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/cohorts.json b/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/cohorts.json deleted file mode 100644 index 3d270da94f12..000000000000 --- a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/cohorts.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft-07/schema#", - "type": "object", - "properties": { - "appId": { - "type": ["null", "integer"] - }, - "archived": { - "type": ["null", "boolean"] - }, - "definition": { - "type": ["null", "object"] - }, - "description": { - "type": ["null", "string"] - }, - "finished": { - "type": ["null", "boolean"] - }, - "id": { - "type": ["null", "string"] - }, - "name": { - "type": ["null", "string"] - }, - "owners": { - "type": ["null", "array"], - "items": { - "type": "string" - } - }, - "published": { - "type": ["null", "boolean"] - }, - "size": { - "type": ["null", "integer"] - }, - "type": { - "type": ["null", "string"] - }, - "lastMod": { - "type": ["null", "integer"] - }, - "lastComputed": { - "type": ["null", "integer"] - }, - "hidden": { - "type": ["null", "boolean"] - }, - "is_predictive": { - "type": ["null", "boolean"] - }, - "is_official_content": { - "type": ["null", "boolean"] - }, - "chart_id": { - "type": ["null", "string"] - }, - "createdAt": { - "type": ["null", "integer"] - }, - "edit_id": { - "type": ["null", "string"] - }, - "last_viewed": { - "type": ["null", "integer"] - }, - "location_id": { - "type": ["null", "string"] - }, - "metadata": { - "type": ["null", "array"], - "items": { - "type": "string" - } - }, - "popularity": { - "type": ["null", "integer"] - }, - "shortcut_ids": { - "type": ["null", "array"], - "items": { - "type": "string" - } - }, - "view_count": { - "type": ["null", "integer"] - }, - "viewers": { - "type": ["null", "array"], - "items": { - "type": "string" - } - } - } -} diff --git a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/events.json b/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/events.json index 0f7eca978653..d06f0fa0e204 100644 --- a/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/events.json +++ b/airbyte-integrations/connectors/source-amplitude/source_amplitude/schemas/events.json @@ -3,186 +3,244 @@ "type": "object", "properties": { "server_received_time": { + "description": "The timestamp when the event data was received by the server", "type": ["null", "string"], "format": "date-time" }, "app": { + "description": "Information related to the application where the event originated", "type": ["null", "integer"] }, "device_carrier": { + "description": "The mobile carrier used by the device", "type": ["null", "string"] }, "$schema": { + "description": "The schema version used for the event data", "type": ["null", "integer"] }, "city": { + "description": "The city where the event occurred", "type": ["null", "string"] }, "user_id": { + "description": "The unique identifier for the user", "type": ["null", "string"] }, "uuid": { + "description": "The universally unique identifier for the event", "type": ["null", "string"] }, "event_time": { + "description": "The timestamp when the event occurred", "type": ["null", "string"], "format": "date-time" }, "platform": { + "description": "The platform where the event occurred (e.g., iOS, Android)", "type": ["null", "string"] }, "os_version": { + "description": "The version of the operating system on the user's device", "type": ["null", "string"] }, "amplitude_id": { + "description": "The unique identifier assigned by Amplitude for the event", "type": ["null", "integer"] }, "processed_time": { + "description": "The timestamp when the event data was processed", "type": ["null", "string"], "format": "date-time" }, "user_creation_time": { + "description": "The timestamp when the user account was created", "type": ["null", "string"], "format": "date-time" }, "version_name": { + "description": "The name or label of the version associated with the event", "type": ["null", "string"] }, "ip_address": { + "description": "The IP address from which the event was triggered", "type": ["null", "string"] }, "paying": { + "description": "Flag indicating if the user is a paying customer", "type": ["null", "boolean"] }, "dma": { + "description": "The Designated Market Area where the event occurred", "type": ["null", "string"] }, "group_properties": { + "description": "Properties related to grouping events", "type": ["null", "object"] }, "user_properties": { + "description": "Additional properties associated with the user", "type": ["null", "object"] }, "client_upload_time": { + "description": "The timestamp when the event data was uploaded from the client to the server", "type": ["null", "string"], "format": "date-time" }, "$insert_id": { + "description": "The unique identifier assigned by Amplitude for each event insertion", "type": ["null", "string"] }, "event_type": { + "description": "The type/category of the event", "type": ["null", "string"] }, "library": { + "description": "Information about the library/version used for event tracking", "type": ["null", "string"] }, "amplitude_attribution_ids": { + "description": "IDs that Amplitude uses for attributing conversions to various ad networks", "type": ["null", "string"] }, "device_type": { + "description": "The type of device (e.g., smartphone, tablet)", "type": ["null", "string"] }, "device_manufacturer": { + "description": "The manufacturer of the device", "type": ["null", "string"] }, "start_version": { + "description": "The version at which the user started using the application", "type": ["null", "string"] }, "location_lng": { + "description": "Longitude coordinate of the event location", "type": ["null", "number"] }, "server_upload_time": { + "description": "The timestamp when the event data was uploaded to the server", "type": ["null", "string"], "format": "date-time" }, "event_id": { + "description": "The unique identifier assigned to the event", "type": ["null", "integer"] }, "location_lat": { + "description": "Latitude coordinate of the event location", "type": ["null", "number"] }, "os_name": { + "description": "The name of the operating system on the user's device", "type": ["null", "string"] }, "amplitude_event_type": { + "description": "The specific type of event tracked by Amplitude", "type": ["null", "string"] }, "device_brand": { + "description": "The brand of the user's device", "type": ["null", "string"] }, "groups": { + "description": "Groups to which the event belongs", "type": ["null", "object"] }, "event_properties": { + "description": "Additional properties associated with the event", "type": ["null", "object"] }, "data": { + "description": "Custom data associated with the event", "type": ["null", "object"] }, "device_id": { + "description": "The unique identifier assigned to the device", "type": ["null", "string"] }, "language": { + "description": "The language set on the user's device", "type": ["null", "string"] }, "device_model": { + "description": "The model of the device", "type": ["null", "string"] }, "country": { + "description": "The country where the event occurred", "type": ["null", "string"] }, "region": { + "description": "The region where the event occurred", "type": ["null", "string"] }, "is_attribution_event": { + "description": "Flag indicating if the event is an attribution event", "type": ["null", "boolean"] }, "adid": { + "description": "The advertising identifier associated with the user's device", "type": ["null", "string"] }, "session_id": { + "description": "The unique identifier for the user session", "type": ["null", "number"] }, "device_family": { + "description": "The family of the device model", "type": ["null", "string"] }, "sample_rate": { + "description": "The sampling rate used for the event data", "type": ["null", "string", "number"] }, "idfa": { + "description": "The Identifier for Advertisers associated with the user's device", "type": ["null", "string"] }, "client_event_time": { + "description": "The timestamp when the event occurred on the client side", "type": ["null", "string"], "format": "date-time" }, "$insert_key": { + "description": "The key used for identifying the event insertion", "type": ["null", "string"] }, "data_type": { + "description": "The type of data associated with the event", "type": ["null", "string"] }, "plan": { + "description": "Information related to the user's plan", "type": ["null", "object"], "properties": { "branch": { + "description": "The branch of the user's plan", "type": ["null", "string"] }, "source": { + "description": "The source of the user's plan", "type": ["null", "string"] }, "version": { + "description": "The version of the user's plan", "type": ["null", "string"] } } }, "source_id": { + "description": "The unique identifier for the event source", "type": ["null", "string"] }, "partner_id": { + "description": "The unique identifier for a partner associated with the event", "type": ["null", "string"] }, "global_user_properties": { + "description": "Global properties associated with the user", "type": ["null", "object"] } } diff --git a/docs/integrations/sources/amplitude.md b/docs/integrations/sources/amplitude.md index d47212f08ab4..5fa611b4e3bb 100644 --- a/docs/integrations/sources/amplitude.md +++ b/docs/integrations/sources/amplitude.md @@ -52,6 +52,8 @@ The Amplitude connector ideally should gracefully handle Amplitude API limitatio | Version | Date | Pull Request | Subject | |:--------|:-----------|:---------------------------------------------------------|:----------------------------------------------------------------------------------------------------------| +| 0.3.10 | 2024-04-19 | [36631](https://github.com/airbytehq/airbyte/pull/36631) | Updating to 0.80.0 CDK | +| 0.3.9 | 2024-04-12 | [36631](https://github.com/airbytehq/airbyte/pull/36631) | schema descriptions | | 0.3.8 | 2024-03-12 | [35987](https://github.com/airbytehq/airbyte/pull/35987) | Unpin CDK version | | 0.3.7 | 2024-02-12 | [35162](https://github.com/airbytehq/airbyte/pull/35162) | Manage dependencies with Poetry. | | 0.3.6 | 2023-10-23 | [31702](https://github.com/airbytehq/airbyte/pull/31702) | Base image migration: remove Dockerfile and use the python-connector-base image |